This commit is contained in:
Alexey Kudravtsev
2018-07-13 13:18:52 +03:00
parent 4ae62fbc02
commit 998cbd4227
4 changed files with 20 additions and 2 deletions
@@ -1212,7 +1212,7 @@ public final class PsiUtil extends PsiUtilCore {
return expression;
}
public static PsiElement skipParenthesizedExprUp(PsiElement parent) {
public static PsiElement skipParenthesizedExprUp(@Nullable PsiElement parent) {
while (parent instanceof PsiParenthesizedExpression) {
parent = parent.getParent();
}
@@ -42,6 +42,7 @@ public class PrefixBasedPropertyReference extends PropertyReference {
super(key, element, bundleName, soft);
}
@Override
@NotNull
protected String getKeyText() {
String keyText = super.getKeyText();
@@ -50,6 +51,7 @@ public class PrefixBasedPropertyReference extends PropertyReference {
return keyText;
}
@Override
protected void addKey(Object property, Set<Object> variants) {
String key = ((IProperty)property).getUnescapedKey();
final String keyPrefix = getKeyPrefix();
@@ -42,6 +42,7 @@ public class PropertyReference extends PropertyReferenceBase implements LocalQui
myBundleName = bundleName;
}
@Override
@Nullable
protected List<PropertiesFile> getPropertiesFiles() {
if (myBundleName == null) {
@@ -54,6 +55,7 @@ public class PropertyReference extends PropertyReferenceBase implements LocalQui
return I18nUtil.propertiesFilesByBundleName(bundleName, element);
}
@Override
public LocalQuickFix[] getQuickFixes() {
List<PropertiesFile> propertiesFiles = retrievePropertyFilesByBundleName(myBundleName, getElement());
LocalQuickFix fix = PropertiesQuickFixFactory.getInstance().createCreatePropertyFix(myElement, myKey, propertiesFiles);
@@ -60,6 +60,7 @@ public abstract class PropertyReferenceBase implements PsiPolyVariantReference,
myTextRange = range;
}
@Override
public PsiElement resolve() {
ResolveResult[] resolveResults = multiResolve(false);
return resolveResults.length == 1 ? resolveResults[0].getElement() : null;
@@ -70,6 +71,7 @@ public abstract class PropertyReferenceBase implements PsiPolyVariantReference,
return myKey;
}
@Override
public boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
@@ -78,25 +80,30 @@ public abstract class PropertyReferenceBase implements PsiPolyVariantReference,
return getElement() == other.getElement() && getKeyText().equals(other.getKeyText());
}
@Override
public int hashCode() {
return getKeyText().hashCode();
}
@Override
@NotNull
public PsiElement getElement() {
return myElement;
}
@Override
@NotNull
public TextRange getRangeInElement() {
return myTextRange;
}
@Override
@NotNull
public String getCanonicalText() {
return myKey;
}
@Override
public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException {
/*PsiElementFactory factory = JavaPsiFacade.getInstance(myElement.getProject()).getElementFactory();
@@ -114,10 +121,12 @@ public abstract class PropertyReferenceBase implements PsiPolyVariantReference,
/*}*/
}
@Override
public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException {
throw new IncorrectOperationException("not implemented");
}
@Override
public boolean isReferenceTo(PsiElement element) {
if (!isProperty(element)) return false;
for (ResolveResult result : multiResolve(false)) {
@@ -135,15 +144,18 @@ public abstract class PropertyReferenceBase implements PsiPolyVariantReference,
mySoft = soft;
}
@Override
public boolean isSoft() {
return mySoft;
}
@Override
@NotNull
public String getUnresolvedMessagePattern() {
return PropertiesBundle.message("unresolved.property.key");
}
@Override
@NotNull
public ResolveResult[] multiResolve(final boolean incompleteCode) {
final String key = getKeyText();
@@ -168,7 +180,8 @@ public abstract class PropertyReferenceBase implements PsiPolyVariantReference,
return getResolveResults(properties);
}
protected static ResolveResult[] getResolveResults(List<IProperty> properties) {
@NotNull
private static ResolveResult[] getResolveResults(List<? extends IProperty> properties) {
if (properties.isEmpty()) return ResolveResult.EMPTY_ARRAY;
final ResolveResult[] results = new ResolveResult[properties.size()];
@@ -183,6 +196,7 @@ public abstract class PropertyReferenceBase implements PsiPolyVariantReference,
@Nullable
protected abstract List<PropertiesFile> getPropertiesFiles();
@Override
@NotNull
public Object[] getVariants() {
return ArrayUtil.EMPTY_OBJECT_ARRAY;