The Meta-Environment API

org.eclipse.imp.pdb.facts.impl.fast
Class Node

java.lang.Object
  extended by org.eclipse.imp.pdb.facts.impl.fast.Node
All Implemented Interfaces:
java.lang.Iterable<org.eclipse.imp.pdb.facts.IValue>, org.eclipse.imp.pdb.facts.INode, org.eclipse.imp.pdb.facts.IValue
Direct Known Subclasses:
AnnotatedNode, SharedNode

public class Node
extends java.lang.Object
implements org.eclipse.imp.pdb.facts.INode

Implementation of INode.

Author:
Arnold Lankamp

Field Summary
protected  org.eclipse.imp.pdb.facts.IValue[] children
           
protected  java.lang.String name
           
protected static org.eclipse.imp.pdb.facts.type.Type NODE_TYPE
           
 
Constructor Summary
protected Node(java.lang.String name, org.eclipse.imp.pdb.facts.IValue[] children)
           
 
Method Summary
<T> T
accept(org.eclipse.imp.pdb.facts.visitors.IValueVisitor<T> v)
           
 int arity()
           
 boolean equals(java.lang.Object o)
           
 org.eclipse.imp.pdb.facts.IValue get(int i)
           
 org.eclipse.imp.pdb.facts.IValue getAnnotation(java.lang.String label)
           
 java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getAnnotations()
           
 java.lang.Iterable<org.eclipse.imp.pdb.facts.IValue> getChildren()
           
 java.lang.String getName()
           
protected  ShareableHashMap<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getSetAnnotations(java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> newAnnos)
           
 org.eclipse.imp.pdb.facts.type.Type getType()
           
protected  ShareableHashMap<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getUpdatedAnnotations(java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> newAnnos)
           
protected  ShareableHashMap<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getUpdatedAnnotations(java.lang.String label)
           
protected  ShareableHashMap<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getUpdatedAnnotations(java.lang.String label, org.eclipse.imp.pdb.facts.IValue value)
           
 boolean hasAnnotation(java.lang.String label)
           
 boolean hasAnnotations()
           
 int hashCode()
           
 boolean isEqual(org.eclipse.imp.pdb.facts.IValue value)
           
 java.util.Iterator<org.eclipse.imp.pdb.facts.IValue> iterator()
           
 org.eclipse.imp.pdb.facts.INode joinAnnotations(java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> newAnnos)
           
 org.eclipse.imp.pdb.facts.INode removeAnnotation(java.lang.String label)
           
 org.eclipse.imp.pdb.facts.INode removeAnnotations()
           
 org.eclipse.imp.pdb.facts.INode set(int i, org.eclipse.imp.pdb.facts.IValue arg)
           
 org.eclipse.imp.pdb.facts.INode setAnnotation(java.lang.String label, org.eclipse.imp.pdb.facts.IValue value)
           
 org.eclipse.imp.pdb.facts.INode setAnnotations(java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> newAnnos)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NODE_TYPE

protected static final org.eclipse.imp.pdb.facts.type.Type NODE_TYPE

name

protected final java.lang.String name

children

protected final org.eclipse.imp.pdb.facts.IValue[] children
Constructor Detail

Node

protected Node(java.lang.String name,
               org.eclipse.imp.pdb.facts.IValue[] children)
Method Detail

getType

public org.eclipse.imp.pdb.facts.type.Type getType()
Specified by:
getType in interface org.eclipse.imp.pdb.facts.IValue

arity

public int arity()
Specified by:
arity in interface org.eclipse.imp.pdb.facts.INode

get

public org.eclipse.imp.pdb.facts.IValue get(int i)
Specified by:
get in interface org.eclipse.imp.pdb.facts.INode

getName

public java.lang.String getName()
Specified by:
getName in interface org.eclipse.imp.pdb.facts.INode

iterator

public java.util.Iterator<org.eclipse.imp.pdb.facts.IValue> iterator()
Specified by:
iterator in interface java.lang.Iterable<org.eclipse.imp.pdb.facts.IValue>
Specified by:
iterator in interface org.eclipse.imp.pdb.facts.INode

getChildren

public java.lang.Iterable<org.eclipse.imp.pdb.facts.IValue> getChildren()
Specified by:
getChildren in interface org.eclipse.imp.pdb.facts.INode

set

public org.eclipse.imp.pdb.facts.INode set(int i,
                                           org.eclipse.imp.pdb.facts.IValue arg)
Specified by:
set in interface org.eclipse.imp.pdb.facts.INode

accept

public <T> T accept(org.eclipse.imp.pdb.facts.visitors.IValueVisitor<T> v)
         throws org.eclipse.imp.pdb.facts.visitors.VisitorException
Specified by:
accept in interface org.eclipse.imp.pdb.facts.IValue
Throws:
org.eclipse.imp.pdb.facts.visitors.VisitorException

hasAnnotation

public boolean hasAnnotation(java.lang.String label)
Specified by:
hasAnnotation in interface org.eclipse.imp.pdb.facts.INode

hasAnnotations

public boolean hasAnnotations()
Specified by:
hasAnnotations in interface org.eclipse.imp.pdb.facts.INode

getAnnotation

public org.eclipse.imp.pdb.facts.IValue getAnnotation(java.lang.String label)
Specified by:
getAnnotation in interface org.eclipse.imp.pdb.facts.INode

getAnnotations

public java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getAnnotations()
Specified by:
getAnnotations in interface org.eclipse.imp.pdb.facts.INode

setAnnotation

public org.eclipse.imp.pdb.facts.INode setAnnotation(java.lang.String label,
                                                     org.eclipse.imp.pdb.facts.IValue value)
Specified by:
setAnnotation in interface org.eclipse.imp.pdb.facts.INode

setAnnotations

public org.eclipse.imp.pdb.facts.INode setAnnotations(java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> newAnnos)
Specified by:
setAnnotations in interface org.eclipse.imp.pdb.facts.INode

joinAnnotations

public org.eclipse.imp.pdb.facts.INode joinAnnotations(java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> newAnnos)
Specified by:
joinAnnotations in interface org.eclipse.imp.pdb.facts.INode

removeAnnotation

public org.eclipse.imp.pdb.facts.INode removeAnnotation(java.lang.String label)
Specified by:
removeAnnotation in interface org.eclipse.imp.pdb.facts.INode

removeAnnotations

public org.eclipse.imp.pdb.facts.INode removeAnnotations()
Specified by:
removeAnnotations in interface org.eclipse.imp.pdb.facts.INode

getUpdatedAnnotations

protected ShareableHashMap<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getUpdatedAnnotations(java.lang.String label,
                                                                                                    org.eclipse.imp.pdb.facts.IValue value)

getUpdatedAnnotations

protected ShareableHashMap<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getUpdatedAnnotations(java.lang.String label)

getUpdatedAnnotations

protected ShareableHashMap<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getUpdatedAnnotations(java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> newAnnos)

getSetAnnotations

protected ShareableHashMap<java.lang.String,org.eclipse.imp.pdb.facts.IValue> getSetAnnotations(java.util.Map<java.lang.String,org.eclipse.imp.pdb.facts.IValue> newAnnos)

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

equals

public boolean equals(java.lang.Object o)
Specified by:
equals in interface org.eclipse.imp.pdb.facts.IValue
Overrides:
equals in class java.lang.Object

isEqual

public boolean isEqual(org.eclipse.imp.pdb.facts.IValue value)
Specified by:
isEqual in interface org.eclipse.imp.pdb.facts.IValue

toString

public java.lang.String toString()
Specified by:
toString in interface org.eclipse.imp.pdb.facts.IValue
Overrides:
toString in class java.lang.Object

The Meta-Environment API