public abstract class ElementInfo extends Object
Modifier and Type | Field and Description |
---|---|
protected String |
name |
protected ElementInfo |
parent |
Modifier | Constructor and Description |
---|---|
protected |
ElementInfo(String name) |
Modifier and Type | Method and Description |
---|---|
abstract void |
accept(InfoTreeVisitor visitor) |
protected <T extends ElementInfo> |
adoptChild(T newChild) |
protected void |
adoptChildren(Collection<? extends ElementInfo> newChildren) |
abstract Object |
getAnnotatedElement() |
List<ElementInfo> |
getChildren() |
String |
getName() |
ElementInfo |
getParent() |
String |
getUniqueID()
Returns a unique identifier string for this element iif this element is a leaf node.
|
void |
mergeChildrenAndDelete(ElementInfo target) |
String |
toString() |
protected final String name
protected ElementInfo parent
protected ElementInfo(String name)
public String getName()
public ElementInfo getParent()
public List<ElementInfo> getChildren()
protected <T extends ElementInfo> T adoptChild(T newChild)
protected void adoptChildren(Collection<? extends ElementInfo> newChildren)
public void mergeChildrenAndDelete(ElementInfo target)
public final String getUniqueID()
Note: This identifier is not unique for intermediate nodes. For example the following enum infos:
NativeCodeInfo:PosixDirectives:EnumInfo:int:EnumConstantInfo:SIGPOLL
NativeCodeInfo:PosixDirectives:EnumInfo:int:EnumConstantInfo:SIGABRT
NativeCodeInfo:PosixDirectives:EnumInfo
which actually refers to a different EnumInfo
object, originating from different
annotated classes:
com.oracle.svm.core.posix.headers.Signal.LinuxSignalEnum
com.oracle.svm.core.posix.headers.Signal.SignalEnum
public abstract Object getAnnotatedElement()
public abstract void accept(InfoTreeVisitor visitor)