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.