scale.annot
Interface AnnotationInterface
- All Known Implementing Classes:
- AbsoluteValueExpr, AbsoluteValueOp, AdditionAssignmentOp, AdditionExpr, AdditionOp, AddressLiteral, AddressOp, AggregateOp, AggregateType, AggregationElements, AllocArrayType, AllocateExpr, AllocatePlacementOp, AllocateSettingFieldsOp, AltCase, AndConditionalOp, AndExpr, AndOp, ArithmeticIfStmt, ArrayIndexExpr, ArrayType, AssignedGotoStmt, AssignLabelStmt, AssignmentOp, AssignSimpleOp, AtomicType, BeginChord, BinaryExpr, BitAndAssignmentOp, BitAndExpr, BitAndOp, BitComplementExpr, BitComplementOp, BitOrAssignmentOp, BitOrExpr, BitOrOp, BitShiftAssignmentOp, BitShiftExpr, BitShiftOp, BitXorAssignmentOp, BitXorExpr, BitXorOp, BlockStmt, BooleanLiteral, BooleanType, Bound, BranchChord, BreakStmt, CallExpr, CallFunctionExpr, CallFunctionOp, CallMethodExpr, CallOp, CaseLabelDecl, CaseStmt, CharacterType, CharLiteral, Chord, CompareExpr, ComplexLiteral, ComplexOp, ComplexType, ComplexValueExpr, CompositeType, CompoundAssignmentOp, ComputedGotoStmt, ConditionalExpr, ContinueStmt, ConversionExpr, DecisionChord, Declaration, DeclStmt, DefOp, DeleteArrayOp, DeleteOp, DereferenceOp, DivisionAssignmentOp, DivisionExpr, DivisionOp, DoLoopStmt, Domination, DualExpr, DyadicOp, EndChord, EnumElementDecl, EnumerationType, EqualityExpr, EqualityOp, EquivalenceDecl, EvalStmt, ExceptionDecl, ExitChord, ExitStmt, ExponentiationExpr, ExponentiationOp, Expr, ExprChord, Expression, ExpressionIfOp, ExprPhiExpr, FieldDecl, FieldExpr, FileDecl, FixedArrayType, FloatArrayLiteral, FloatLiteral, FloatType, ForLoopStmt, FormalDecl, FortranCharType, ForwardProcedureDecl, GotoChord, GotoStmt, GreaterEqualExpr, GreaterEqualOp, GreaterExpr, GreaterOp, HeapOp, Hyperblock, IdAddressOp, IdReferenceOp, IdValueOp, IfStmt, IfThenElseChord, IfThenElseStmt, IncompleteType, IncrementOp, IntArrayLiteral, IntegerType, IntLiteral, LabelDecl, LabelStmt, LeaveChord, LessEqualExpr, LessEqualOp, LessExpr, LessOp, Literal, LiteralExpr, LoadDeclAddressExpr, LoadDeclValueExpr, LoadExpr, LoadFieldAddressExpr, LoadFieldValueExpr, LoadValueIndirectExpr, LoopExitChord, LoopHeaderChord, LoopInitChord, LoopPreHeaderChord, LoopStmt, LoopTailChord, MarkerChord, MatchExpr, MaxExpr, MaximumOp, MinExpr, MinimumOp, ModulusOp, MonadicOp, MultiBranchStmt, MultiplicationAssignmentOp, MultiplicationExpr, MultiplicationOp, NaryExpr, NegativeExpr, NegativeOp, NilExpr, NilOp, Node, Node, Note, NotEqualExpr, NotEqualOp, NotExpr, NotOp, NullChord, NullStmt, NumericType, OrConditionalOp, OrExpr, OrOp, ParenthesesOp, PhiExpr, PhiExprChord, PointerType, PositiveOp, PostDecrementOp, PostIncrementOp, PPBlock, PPCfg, PPEdge, PPSupergraphBlock, PreDecrementOp, PredicateBlock, PreIncrementOp, ProcedureDecl, ProcedureType, Raise, RaiseWithObject, RaiseWithType, RealType, RecordType, RefType, RemainderAssignmentOp, RemainderExpr, RemainderOp, RenamedVariableDecl, RepeatUntilLoopStmt, RepeatWhileLoopStmt, ReturnChord, ReturnStmt, Root, RoutineDecl, Scribble, SelectIndirectOp, SelectOp, SequentialChord, SeriesOp, SignedIntegerType, SizeofLiteral, Statement, StatementOp, StmtFtnDecl, StringLiteral, SubscriptAddressOp, SubscriptExpr, SubscriptOp, SubscriptValueOp, SubstringOp, SubtractionAssignmentOp, SubtractionExpr, SubtractionOp, SubVirtualVar, Suite, SuperVirtualVar, SwitchChord, SwitchStmt, TernaryExpr, TernaryOp, TestLoopStmt, ThisOp, Transcendental2Expr, Transcendental2Op, TranscendentalExpr, TranscendentalOp, Type, TypeConversionOp, TypeDecl, TypeName, UnaryExpr, UnionType, UnknownFormals, UnsignedIntegerType, VaArgExpr, VaArgOp, VaCopyOp, VaEndExpr, VaEndOp, ValueDecl, ValueExpr, VarArgExpr, VarArgOp, VariableDecl, VaStartExpr, VaStartOp, VectorExpr, VirtualVar, VoidType, WhileLoopStmt
public interface AnnotationInterface
Defins the operations required of a class in order to use annotations.
$Id: AnnotationInterface.java,v 1.19 2007-08-13 12:32:02 burrill Exp $
Copyright 2007 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
Each node contains a container of annotations that have been
associated with it. For the key to retrieve annotations, we use
the value returned by the static method Annotation.annotationKey()
.
The goal of this interface is to make sure that details about how
annotations are actually managed stay hidden. The interface
provides only very general container operations, plus a few
specialized routines unique to annotations.
- See Also:
Annotation
addAnnotation
void addAnnotation(Annotation a)
- Adds an annotation to this node's annotation list.
Redundant annotations are permitted.
removeAnnotation
void removeAnnotation(Annotation annotation)
- Delete all annotations which match the key of the given
Annotation.
getAnnotation
Annotation getAnnotation(java.lang.Object annotationKey)
- Returns a single instance of the annotation with the given key.
This method may return null.
- Parameters:
annotationKey
- the annotation key
- Returns:
- an arbitrary annotation of the indicated kind or null.
hasAnnotation
boolean hasAnnotation(java.lang.Object annotationKey)
- Parameters:
annotationKey
- the annotation key
- Returns:
- true if the indicated kind of annotation is associated
with the node.
hasEqualAnnotation
boolean hasEqualAnnotation(Annotation annotationKey)
- Return true if an equivalent annotation is associated with the
node. Note - the Creator, Beliefs, and the Combining Rule are
not used in equivalence testing.
- Parameters:
annotationKey
- the annotation key
allAnnotations
java.util.Enumeration<Annotation> allAnnotations()
- Return an enumeration of all the annotations associated with this
node.
allMatchingAnnotations
java.util.Enumeration<Annotation> allMatchingAnnotations(java.lang.Object annotationKey)
- Return an enumeration of all the annotations of the given kind
associated with this node.