public class EmptyXmlTag extends java.lang.Object implements XmlTag
Iconable.IconFlags, Iconable.LastComputedIcon
Modifier and Type | Field and Description |
---|---|
static XmlTag |
INSTANCE |
EMPTY_ARRAY
EMPTY_ARRAY
DEPENDING_ELEMENT, DO_NOT_VALIDATE, INCLUDING_ELEMENT
ARRAY_FACTORY
ICON_FLAG_IGNORE_MASK, ICON_FLAG_OPEN, ICON_FLAG_READ_STATUS, ICON_FLAG_VISIBILITY
Constructor and Description |
---|
EmptyXmlTag() |
Modifier and Type | Method and Description |
---|---|
void |
accept(PsiElementVisitor visitor)
Passes the element to the specified visitor.
|
void |
acceptChildren(PsiElementVisitor visitor)
Passes the children of the element to the specified visitor.
|
PsiElement |
add(PsiElement element)
Adds a child to this PSI element.
|
PsiElement |
addAfter(PsiElement element,
PsiElement anchor)
Adds a child to this PSI element, after the specified anchor element.
|
PsiElement |
addBefore(PsiElement element,
PsiElement anchor)
Adds a child to this PSI element, before the specified anchor element.
|
PsiElement |
addRange(PsiElement first,
PsiElement last)
Adds a range of elements as children to this PSI element.
|
PsiElement |
addRangeAfter(PsiElement first,
PsiElement last,
PsiElement anchor)
Adds a range of elements as children to this PSI element, after the specified anchor element.
|
PsiElement |
addRangeBefore(PsiElement first,
PsiElement last,
PsiElement anchor)
Adds a range of elements as children to this PSI element, before the specified anchor element.
|
XmlTag |
addSubTag(XmlTag subTag,
boolean first) |
void |
checkAdd(PsiElement element)
Checks if it is possible to add the specified element as a child to this element,
and throws an exception if the add is not possible.
|
void |
checkDelete()
Checks if it is possible to delete the specified element from the tree,
and throws an exception if the add is not possible.
|
void |
collapseIfEmpty() |
PsiElement |
copy()
Creates a copy of the file containing the PSI element and returns the corresponding
element in the created copy.
|
XmlTag |
createChildTag(java.lang.String localName,
java.lang.String namespace,
java.lang.String bodyText,
boolean enforceNamespacesDeep)
Creates a new child tag
|
void |
delete()
Deletes this PSI element from the tree.
|
void |
deleteChildRange(PsiElement first,
PsiElement last)
Deletes a range of children of this PSI element from the tree.
|
PsiElement |
findElementAt(int offset)
Finds a leaf PSI element at the specified offset from the start of the text range of this node.
|
XmlTag |
findFirstSubTag(java.lang.String qname) |
PsiReference |
findReferenceAt(int offset)
Finds a reference at the specified offset from the start of the text range of this node.
|
XmlTag [] |
findSubTags(java.lang.String qname) |
XmlTag [] |
findSubTags(java.lang.String localName,
java.lang.String namespace) |
XmlAttribute |
getAttribute(java.lang.String qname)
Returns a tag attribute by qualified name.
|
XmlAttribute |
getAttribute(java.lang.String name,
java.lang.String namespace) |
XmlAttribute [] |
getAttributes() |
java.lang.String |
getAttributeValue(java.lang.String qname)
Returns a tag attribute value by qualified name.
|
java.lang.String |
getAttributeValue(java.lang.String name,
java.lang.String namespace) |
PsiElement [] |
getChildren()
Returns the array of children for the PSI element.
|
PsiFile |
getContainingFile()
Returns the file containing the PSI element.
|
PsiElement |
getContext()
Returns the element which should be used as the parent of this element in a tree up
walk during a resolve operation.
|
<T> T |
getCopyableUserData(Key<T> key)
Returns a copyable user data object attached to this element.
|
XmlElementDescriptor |
getDescriptor() |
PsiElement |
getFirstChild()
Returns the first child of the PSI element.
|
javax.swing.Icon |
getIcon(int flags) |
Language |
getLanguage()
Returns the language of the PSI element.
|
PsiElement |
getLastChild()
Returns the last child of the PSI element.
|
java.lang.String |
getLocalName() |
java.util.Map<java.lang.String,java.lang.String> |
getLocalNamespaceDeclarations() |
PsiManager |
getManager()
Returns the PSI manager for the project to which the PSI element belongs.
|
PsiMetaData |
getMetaData() |
java.lang.String |
getName()
Returns the name of the element.
|
java.lang.String |
getNamespace() |
java.lang.String |
getNamespaceByPrefix(java.lang.String prefix) |
java.lang.String |
getNamespacePrefix() |
PsiElement |
getNavigationElement()
Returns the PSI element which should be used as a navigation target
when navigation to this PSI element is requested.
|
PsiElement |
getNextSibling()
Returns the next sibling of the PSI element.
|
XmlTagChild |
getNextSiblingInTag() |
ASTNode |
getNode()
Returns the AST node corresponding to the element.
|
XmlNSDescriptor |
getNSDescriptor(java.lang.String namespace,
boolean strict) |
PsiElement |
getOriginalElement()
Returns the PSI element which corresponds to this element and belongs to
either the project source path or class path.
|
PsiElement |
getParent()
Returns the parent of the PSI element.
|
XmlTag |
getParentTag() |
java.lang.String |
getPrefixByNamespace(java.lang.String namespace) |
PsiElement |
getPrevSibling()
Returns the previous sibling of the PSI element.
|
XmlTagChild |
getPrevSiblingInTag() |
Project |
getProject()
Returns the project to which the PSI element belongs.
|
PsiReference |
getReference()
Returns the reference from this PSI element to another PSI element (or elements), if one exists.
|
PsiReference [] |
getReferences()
Returns all references from this PSI element to other PSI elements.
|
GlobalSearchScope |
getResolveScope()
Returns the scope in which the declarations for the references in this PSI element are searched.
|
int |
getStartOffsetInParent()
Returns the text offset of the PSI element relative to its parent.
|
XmlTag [] |
getSubTags() |
java.lang.String |
getSubTagText(java.lang.String qname) |
java.lang.String |
getText()
Returns the text of the PSI element.
|
int |
getTextLength()
Returns the length of text of the PSI element.
|
int |
getTextOffset()
Returns the offset in the file to which the caret should be placed
when performing the navigation to the element.
|
TextRange |
getTextRange()
Returns the text range in the document occupied by the PSI element.
|
<T> T |
getUserData(Key<T> key) |
SearchScope |
getUseScope()
Returns the scope in which references to this element are searched.
|
XmlTagValue |
getValue() |
boolean |
hasNamespaceDeclarations() |
boolean |
isEmpty() |
boolean |
isEquivalentTo(PsiElement another)
This method shouldn't be called by clients directly, because there are no guarantees of it being symmetric.
|
boolean |
isPhysical()
Checks if an actual source or class file corresponds to the element.
|
boolean |
isValid()
Checks if this PSI element is valid.
|
boolean |
isWritable()
Checks if the contents of the element can be modified (if it belongs to a
non-read-only source file.)
|
java.lang.String[] |
knownNamespaces() |
boolean |
processDeclarations(PsiScopeProcessor processor,
ResolveState state,
PsiElement lastParent,
PsiElement place)
Passes the declarations contained in this PSI element and its children
for processing to the specified scope processor.
|
boolean |
processElements(PsiElementProcessor processor,
PsiElement place) |
<T> void |
putCopyableUserData(Key<T> key,
T value)
Attaches a copyable user data object to this element.
|
<T> void |
putUserData(Key<T> key,
T value)
Add a new user data value to this object.
|
PsiElement |
replace(PsiElement newElement)
Replaces this PSI element (along with all its children) with another element
(along with the children).
|
XmlAttribute |
setAttribute(java.lang.String qname,
java.lang.String value) |
XmlAttribute |
setAttribute(java.lang.String name,
java.lang.String namespace,
java.lang.String value) |
PsiElement |
setName(java.lang.String name)
Renames the element.
|
boolean |
textContains(char c)
Checks if the text of this element contains the specified character.
|
boolean |
textMatches(java.lang.CharSequence text)
Checks if the text of this PSI element is equal to the specified character sequence.
|
boolean |
textMatches(PsiElement element)
Checks if the text of this PSI element is equal to the text of the specified PSI element.
|
char [] |
textToCharArray()
Returns the text of the PSI element as a character array.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getHostName, getRealNs, isCaseSensitive
skipValidation
getOwnReferences, getTextRangeInParent, toString
public static XmlTag INSTANCE
public java.lang.String getName()
PsiNamedElement
getName
in interface PsiNamedElement
getName
in interface XmlTag
public PsiElement setName(java.lang.String name) throws IncorrectOperationException
PsiNamedElement
setName
in interface PsiNamedElement
name
- the new element name.this
or a different element if the rename caused the element to be replaced).IncorrectOperationException
- if the modification is not supported or not possible for some reason.public java.lang.String getNamespace()
getNamespace
in interface XmlTag
public java.lang.String getLocalName()
getLocalName
in interface XmlTag
public XmlElementDescriptor getDescriptor()
getDescriptor
in interface XmlTag
public XmlAttribute [] getAttributes()
getAttributes
in interface XmlTag
public XmlAttribute getAttribute(java.lang.String name, java.lang.String namespace)
getAttribute
in interface XmlTag
public XmlAttribute getAttribute(java.lang.String qname)
XmlTag
getAttribute
in interface XmlTag
qname
- qualified attribute name, like "ns:name" or "name".XmlTag.getAttribute(String, String)
public java.lang.String getAttributeValue(java.lang.String name, java.lang.String namespace)
getAttributeValue
in interface XmlTag
public java.lang.String getAttributeValue(java.lang.String qname)
XmlTag
getAttributeValue
in interface XmlTag
qname
- qualified attribute name, like "ns:name" or "name".XmlTag.getAttributeValue(String, String)
public XmlAttribute setAttribute(java.lang.String name, java.lang.String namespace, java.lang.String value) throws IncorrectOperationException
setAttribute
in interface XmlTag
IncorrectOperationException
public XmlAttribute setAttribute(java.lang.String qname, java.lang.String value) throws IncorrectOperationException
setAttribute
in interface XmlTag
IncorrectOperationException
public XmlTag createChildTag(java.lang.String localName, java.lang.String namespace, java.lang.String bodyText, boolean enforceNamespacesDeep)
XmlTag
createChildTag
in interface XmlTag
localName
- new tag's namenamespace
- new tag's namespacebodyText
- pass null to create collapsed tag, empty string means creating expanded oneenforceNamespacesDeep
- if you pass some xml tags to bodyText
parameter, this flag sets namespace prefixes for themXmlTag.addSubTag(XmlTag, boolean)
} to add it to parentpublic XmlTag [] getSubTags()
getSubTags
in interface XmlTag
public XmlTag [] findSubTags(java.lang.String qname)
findSubTags
in interface XmlTag
public XmlTag [] findSubTags(java.lang.String localName, java.lang.String namespace)
findSubTags
in interface XmlTag
localName
- non-qualified tag name.namespace
- if null, name treated as qualified name to find.public XmlTag findFirstSubTag(java.lang.String qname)
findFirstSubTag
in interface XmlTag
public java.lang.String getNamespacePrefix()
getNamespacePrefix
in interface XmlTag
public java.lang.String getNamespaceByPrefix(java.lang.String prefix)
getNamespaceByPrefix
in interface XmlTag
public java.lang.String getPrefixByNamespace(java.lang.String namespace)
getPrefixByNamespace
in interface XmlTag
public java.lang.String[] knownNamespaces()
knownNamespaces
in interface XmlTag
public boolean hasNamespaceDeclarations()
hasNamespaceDeclarations
in interface XmlTag
public java.util.Map<java.lang.String,java.lang.String> getLocalNamespaceDeclarations()
getLocalNamespaceDeclarations
in interface XmlTag
public XmlTagValue getValue()
public XmlNSDescriptor getNSDescriptor(java.lang.String namespace, boolean strict)
getNSDescriptor
in interface XmlTag
public void collapseIfEmpty()
collapseIfEmpty
in interface XmlTag
public java.lang.String getSubTagText(java.lang.String qname)
getSubTagText
in interface XmlTag
public XmlTag getParentTag()
getParentTag
in interface XmlTagChild
public XmlTagChild getNextSiblingInTag()
getNextSiblingInTag
in interface XmlTagChild
public XmlTagChild getPrevSiblingInTag()
getPrevSiblingInTag
in interface XmlTagChild
public boolean processElements(PsiElementProcessor processor, PsiElement place)
processElements
in interface XmlElement
public Project getProject() throws PsiInvalidElementAccessException
PsiElement
getProject
in interface PsiElement
PsiInvalidElementAccessException
- if this element is invalidpublic Language getLanguage()
PsiElement
getLanguage
in interface PsiElement
public PsiManager getManager()
PsiElement
getManager
in interface PsiElement
public PsiElement [] getChildren()
PsiElement
getChildren
in interface PsiElement
public PsiElement getParent()
PsiElement
getParent
in interface PsiElement
public PsiElement getFirstChild()
PsiElement
getFirstChild
in interface PsiElement
public PsiElement getLastChild()
PsiElement
getLastChild
in interface PsiElement
public PsiElement getNextSibling()
PsiElement
getNextSibling
in interface PsiElement
public PsiElement getPrevSibling()
PsiElement
getPrevSibling
in interface PsiElement
public PsiFile getContainingFile() throws PsiInvalidElementAccessException
PsiElement
getContainingFile
in interface PsiElement
PsiInvalidElementAccessException
- if this element is invalidpublic TextRange getTextRange()
PsiElement
getTextRange
in interface PsiElement
public int getStartOffsetInParent()
PsiElement
getStartOffsetInParent
in interface PsiElement
public int getTextLength()
PsiElement
getTextLength
in interface PsiElement
public PsiElement findElementAt(int offset)
PsiElement
findElementAt
in interface PsiElement
offset
- the relative offset for which the PSI element is requested.public PsiReference findReferenceAt(int offset)
PsiElement
findReferenceAt
in interface PsiElement
offset
- the relative offset for which the reference is requested.public int getTextOffset()
PsiElement
PsiNamedElement
, this should return the offset in the file of the
name identifier.)getTextOffset
in interface PsiElement
public java.lang.String getText()
PsiElement
getText
in interface PsiElement
PsiElement.textMatches(java.lang.CharSequence)
,
PsiElement.textContains(char)
public char [] textToCharArray()
PsiElement
textToCharArray
in interface PsiElement
public PsiElement getNavigationElement()
PsiElement
this
or substitute a different element if this element
does not have an associated file and offset. (For example, if the source code
of a library is attached to a project, the navigation element for a compiled
library class is its source class.)getNavigationElement
in interface PsiElement
public PsiElement getOriginalElement()
PsiElement
this
or substitute a different element if this element does
not belong to the source path or class path. (For example, the original
element for a library source file is the corresponding compiled class file.)getOriginalElement
in interface PsiElement
public boolean textMatches(java.lang.CharSequence text)
PsiElement
textMatches
in interface PsiElement
text
- the character sequence to compare with.public boolean textMatches(PsiElement element)
PsiElement
textMatches
in interface PsiElement
element
- the element to compare the text with.public boolean textContains(char c)
PsiElement
textContains
in interface PsiElement
c
- the character to search for.public void accept(PsiElementVisitor visitor)
PsiElement
accept
in interface PsiElement
visitor
- the visitor to pass the element to.public void acceptChildren(PsiElementVisitor visitor)
PsiElement
acceptChildren
in interface PsiElement
visitor
- the visitor to pass the children to.public PsiElement copy()
PsiElement
copy
in interface PsiElement
public PsiElement add(PsiElement element) throws IncorrectOperationException
PsiElement
add
in interface PsiElement
element
- the child element to add.element
or its copy).IncorrectOperationException
- if the modification is not supported or not possible for some reason.public PsiElement addBefore(PsiElement element, PsiElement anchor) throws IncorrectOperationException
PsiElement
addBefore
in interface PsiElement
element
- the child element to add.anchor
- the anchor before which the child element is inserted (must be a child of this PSI element)element
or its copy).IncorrectOperationException
- if the modification is not supported or not possible for some reason.public PsiElement addAfter(PsiElement element, PsiElement anchor) throws IncorrectOperationException
PsiElement
addAfter
in interface PsiElement
element
- the child element to add.anchor
- the anchor after which the child element is inserted (must be a child of this PSI element)element
or its copy).IncorrectOperationException
- if the modification is not supported or not possible for some reason.public void checkAdd(PsiElement element) throws IncorrectOperationException
PsiElement
checkAdd
in interface PsiElement
element
- the child element to check the add possibility.IncorrectOperationException
- if the modification is not supported or not possible for some reason.public PsiElement addRange(PsiElement first, PsiElement last) throws IncorrectOperationException
PsiElement
addRange
in interface PsiElement
first
- the first child element to add.last
- the last child element to add (must have the same parent as first
)first
or its copy).IncorrectOperationException
- if the modification is not supported or not possible for some reason.public PsiElement addRangeBefore(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException
PsiElement
addRangeBefore
in interface PsiElement
first
- the first child element to add.last
- the last child element to add (must have the same parent as first
)anchor
- the anchor before which the child element is inserted (must be a child of this PSI element)first
or its copy).IncorrectOperationException
- if the modification is not supported or not possible for some reason.public PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException
PsiElement
addRangeAfter
in interface PsiElement
first
- the first child element to add.last
- the last child element to add (must have the same parent as first
)anchor
- the anchor after which the child element is inserted (must be a child of this PSI element)first
or its copy).IncorrectOperationException
- if the modification is not supported or not possible for some reason.public void delete() throws IncorrectOperationException
PsiElement
delete
in interface PsiElement
IncorrectOperationException
- if the modification is not supported
or not possible for some reason (for example, the file containing the element is read-only).public void checkDelete() throws IncorrectOperationException
PsiElement
checkDelete
in interface PsiElement
IncorrectOperationException
- if the modification is not supported or not possible for some reason.public void deleteChildRange(PsiElement first, PsiElement last) throws IncorrectOperationException
PsiElement
deleteChildRange
in interface PsiElement
first
- the first child to delete (must be a child of this PSI element)last
- the last child to delete (must be a child of this PSI element)IncorrectOperationException
- if the modification is not supported or not possible for some reason.public PsiElement replace(PsiElement newElement) throws IncorrectOperationException
PsiElement
replace
in interface PsiElement
newElement
- the element to replace this element with.newElement
or its copy)IncorrectOperationException
- if the modification is not supported or not possible for some reason.public boolean isValid()
PsiElement
PsiDocumentManager.commitDocument(com.intellij.openapi.editor.Document)
).
(In this case an attempt to change PSI will result in an exception).
Any access to invalid elements results in PsiInvalidElementAccessException
.
Once invalid, elements can't become valid again.
Elements become invalid in following cases:
PsiElement.delete()
)isValid
in interface PsiElement
PsiUtilCore.ensureValid(PsiElement)
public boolean isWritable()
PsiElement
isWritable
in interface PsiElement
public PsiReference getReference()
PsiElement
PsiElement.getReferences()
for an example), returns the first associated reference.getReference
in interface PsiElement
ReferencesSearch
public PsiReference [] getReferences()
PsiElement
PsiPolyVariantReference
should be used instead
of returning multiple references.
Actually, it's preferable to call PsiReferenceService.getReferences(com.intellij.psi.PsiElement, com.intellij.psi.PsiReferenceService.Hints)
instead
as it allows adding references by plugins when the element implements ContributedReferenceHost
.getReferences
in interface PsiElement
PsiReferenceService.getReferences(com.intellij.psi.PsiElement, com.intellij.psi.PsiReferenceService.Hints)
,
ReferencesSearch
public <T> T getCopyableUserData(Key<T> key)
PsiElement
getCopyableUserData
in interface PsiElement
key
- the key for accessing the user data object.PsiElement.putCopyableUserData(Key, Object)
public <T> void putCopyableUserData(Key<T> key, T value)
PsiElement
putCopyableUserData
in interface PsiElement
key
- the key for accessing the user data object.value
- the user data object to attach.PsiElement.getCopyableUserData(Key)
public boolean processDeclarations(PsiScopeProcessor processor, ResolveState state, PsiElement lastParent, PsiElement place)
PsiElement
processDeclarations
in interface PsiElement
processor
- the processor receiving the declarations.lastParent
- the child of this element has been processed during the previous
step of the tree up walk (declarations under this element do not need
to be processed again)place
- the original element from which the tree up walk was initiated.public PsiElement getContext()
PsiElement
getParent()
,
but the context can be overridden for some elements like code fragments (see
JavaCodeFragmentFactory.createCodeBlockCodeFragment(String, PsiElement, boolean)
).getContext
in interface PsiElement
public boolean isPhysical()
PsiElement
PsiDocumentManager.getDocument(PsiFile)
returns null for non-physical elements.
Not to be confused with FileViewProvider.isPhysical()
.isPhysical
in interface PsiElement
public GlobalSearchScope getResolveScope()
PsiElement
getResolveScope
in interface PsiElement
public SearchScope getUseScope()
PsiElement
getUseScope
in interface PsiElement
PsiSearchHelper.getUseScope(PsiElement)
public ASTNode getNode()
PsiElement
getNode
in interface PsiElement
public boolean isEquivalentTo(PsiElement another)
PsiElement
PsiManager.areElementsEquivalent(PsiElement, PsiElement)
internally, which clients should invoke instead.
Implementations of this method should return true
if the parameter is resolve-equivalent to this
, i.e. it represents
the same entity from the language perspective. See also PsiManager.areElementsEquivalent(PsiElement, PsiElement)
documentation.isEquivalentTo
in interface PsiElement
public PsiMetaData getMetaData()
getMetaData
in interface PsiMetaOwner
public <T> T getUserData(Key<T> key)
getUserData
in interface UserDataHolder
public <T> void putUserData(Key<T> key, T value)
UserDataHolder
putUserData
in interface UserDataHolder