public class GenericDomValueReference<T> extends PsiReferenceBase<XmlElement> implements EmptyResolveMessageProvider, ResolvingHint
PsiReferenceBase.Immediate<T extends PsiElement>, PsiReferenceBase.Poly<T extends PsiElement>
myElement, mySoft
ARRAY_FACTORY, EMPTY_ARRAY
Constructor and Description |
---|
GenericDomValueReference(GenericDomValue<T> domValue) |
Modifier and Type | Method and Description |
---|---|
PsiElement |
bindToElement(PsiElement element)
Changes the reference so that it starts to point to the specified element.
|
boolean |
canResolveTo(java.lang.Class<? extends PsiElement> elementClass) |
protected TextRange |
createTextRange() |
java.lang.String |
getCanonicalText()
Returns the name of the reference target element which does not depend on import statements
and other context (for example, the full-qualified name of the class if the reference targets
a Java class).
|
ConvertContext |
getConvertContext() |
Converter<T> |
getConverter() |
protected GenericDomValue<T> |
getGenericValue() |
protected PsiManager |
getPsiManager() |
java.lang.String |
getUnresolvedMessagePattern()
Returns custom unresolved message pattern.
|
java.lang.Object [] |
getVariants()
Returns the array of String,
PsiElement and/or LookupElement
instances representing all identifiers that are visible at the location of the reference. |
PsiElement |
handleElementRename(java.lang.String newElementName)
Called when the reference target element has been renamed, in order to change the reference
text according to the new name.
|
boolean |
isReferenceTo(PsiElement element)
Checks if the reference targets the specified element.
|
boolean |
isSoft()
Returns
false if the underlying element is guaranteed to be a reference, or true
if the underlying element is a possible reference which should not be reported as
an error if it fails to resolve. |
PsiElement |
resolve()
Returns the element which is the target of the reference.
|
protected PsiElement |
resolveInner(T o) |
calculateDefaultRangeInElement, createSelfReference, createSelfReference, getElement, getRangeInElement, getValue, setRangeInElement, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
resolveReference, resolvesTo
getAbsoluteRange
public GenericDomValueReference(GenericDomValue<T> domValue)
protected final PsiManager getPsiManager()
protected TextRange createTextRange()
protected final GenericDomValue<T> getGenericValue()
public boolean isSoft()
PsiReference
false
if the underlying element is guaranteed to be a reference, or true
if the underlying element is a possible reference which should not be reported as
an error if it fails to resolve. For example, a text in an XML file which looks
like a full-qualified Java class name is a soft reference.isSoft
in interface PsiReference
isSoft
in class PsiReferenceBase<XmlElement>
true
if the reference is soft, false
otherwise.protected PsiElement resolveInner(T o)
public boolean isReferenceTo(PsiElement element)
PsiReference
isReferenceTo
in interface PsiReference
isReferenceTo
in class PsiReferenceBase<XmlElement>
element
- the element to check target for.true
if the reference targets that element, false
otherwise.public PsiElement resolve()
PsiReference
resolve
in interface PsiReference
null
if it was not possible to resolve the reference to a valid target.PsiPolyVariantReference.multiResolve(boolean)
public java.lang.String getCanonicalText()
PsiReference
getCanonicalText
in interface PsiReference
getCanonicalText
in class PsiReferenceBase<XmlElement>
public java.lang.String getUnresolvedMessagePattern()
EmptyResolveMessageProvider
MessageFormat.format()
call.
If the call fails, returned value is used as is.
Resulting text should have Sentence capitalization.getUnresolvedMessagePattern
in interface EmptyResolveMessageProvider
public final ConvertContext getConvertContext()
public PsiElement handleElementRename(java.lang.String newElementName) throws IncorrectOperationException
PsiReference
handleElementRename
in interface PsiReference
handleElementRename
in class PsiReferenceBase<XmlElement>
newElementName
- the new name of the target element.IncorrectOperationException
- if the rename cannot be handled for some reason.public PsiElement bindToElement(PsiElement element) throws IncorrectOperationException
PsiReference
bindToElement
in interface PsiReference
bindToElement
in class PsiReferenceBase<XmlElement>
element
- the element which should become the target of the reference.IncorrectOperationException
- if the rebind cannot be handled for some reason.public java.lang.Object [] getVariants()
PsiReference
PsiElement
and/or LookupElement
instances representing all identifiers that are visible at the location of the reference. The contents
of the returned array is used to build the lookup list for basic code completion. (The list
of visible identifiers may not be filtered by the completion prefix string - the
filtering is performed later by the IDE.)
This method is default since 2018.3.
getVariants
in interface PsiReference
public boolean canResolveTo(java.lang.Class<? extends PsiElement> elementClass)
canResolveTo
in interface ResolvingHint