at.dms.kjc
Interface Finalizable

All Known Implementing Classes:
File_Writer, FileReader, InlineAssembly, JAddExpression, JArrayAccessExpression, JArrayInitializer, JArrayLengthExpression, JAssignmentExpression, JBinaryArithmeticExpression, JBinaryExpression, JBitwiseComplementExpression, JBitwiseExpression, JBlock, JBooleanLiteral, JBreakStatement, JByteLiteral, JCastExpression, JCatchClause, JCharLiteral, JCheckedExpression, JClassBlock, JClassDeclaration, JClassExpression, JClassFieldDeclarator, JClassImport, JCompilationUnit, JCompoundAssignmentExpression, JCompoundStatement, JConditionalAndExpression, JConditionalExpression, JConditionalOrExpression, JConstructorBlock, JConstructorCall, JConstructorDeclaration, JContinueStatement, JDivideExpression, JDoLoopStatement, JDoStatement, JDoubleLiteral, JEmittedTextExpression, JEmptyStatement, JEqualityExpression, JExpression, JExpressionListStatement, JExpressionStatement, JFieldAccessExpression, JFieldDeclaration, JFloatLiteral, JFormalParameter, JForStatement, JGeneratedLocalVariable, JIfStatement, JInitializerDeclaration, JInstanceofExpression, JInterfaceDeclaration, JIntLiteral, JLabeledStatement, JLiteral, JLocalVariable, JLocalVariableExpression, JLogicalComplementExpression, JLongLiteral, JLoopStatement, JMemberDeclaration, JMethodCallExpression, JMethodDeclaration, JMinusExpression, JModuloExpression, JMultExpression, JNameExpression, JNewArrayExpression, JNullLiteral, JOuterLocalVariableExpression, JPackageImport, JPackageName, JParenthesedExpression, JPhylum, JPostfixExpression, JPrefixExpression, JQualifiedAnonymousCreation, JQualifiedInstanceCreation, JRelationalExpression, JReturnStatement, Jrstream_pr, JShiftExpression, JShortLiteral, JStatement, JStringLiteral, JSuperExpression, JSwitchGroup, JSwitchLabel, JSwitchStatement, JSynchronizedStatement, JThisExpression, JThrowStatement, JTryCatchStatement, JTryFinallyStatement, JTypeDeclaration, JTypeDeclarationStatement, JTypeNameExpression, JUnaryExpression, JUnaryMinusExpression, JUnaryPlusExpression, JUnaryPromote, JUnqualifiedAnonymousCreation, JUnqualifiedInstanceCreation, JVariableDeclarationStatement, JVariableDefinition, JVectorLiteral, JWhileStatement, LIRFileReader, LIRFileWriter, LIRIdentity, LIRMainFunction, LIRNode, LIRRegisterReceiver, LIRSetBodyOfFeedback, LIRSetChild, LIRSetDecode, LIRSetDelay, LIRSetEncode, LIRSetJoiner, LIRSetLoopOfFeedback, LIRSetParallelStream, LIRSetPeek, LIRSetPop, LIRSetPush, LIRSetSplitter, LIRSetStreamType, LIRSetTape, LIRSetWork, LIRWorkEntry, LIRWorkExit, SIRBeginMarker, SIRContainer, SIRCreatePortal, SIRDummySink, SIRDummySource, SIRDynamicToken, SIREndMarker, SIRFeedbackLoop, SIRFileReader, SIRFileWriter, SIRFilter, SIRGlobal, SIRHelper, SIRIdentity, SIRInitStatement, SIRInterfaceTable, SIRJoiner, SIRMarker, SIRMessageStatement, SIROperator, SIRPeekExpression, SIRPhasedFilter, SIRPipeline, SIRPopExpression, SIRPortal, SIRPredefinedFilter, SIRPrintStatement, SIRPushExpression, SIRRangeExpression, SIRRecursiveStub, SIRRegReceiverStatement, SIRRegSenderStatement, SIRSplitJoin, SIRSplitter, SIRStream, SIRStructure, SIRTwoStageFilter

public interface Finalizable

This represents an object that can be finalized, after which point no mutators should be able to adjust its state.


Method Summary
 void assertMutable()
          Asserts that this is mutable.
 

Method Detail

assertMutable

void assertMutable()
Asserts that this is mutable. If this has been finalized, throws a runtime exception. This should be done with a lookup to a third-party class that is keeping track of the immutability. (We don't let the class itself keep track of the immutability, since the immutability can only be modified in batches by a trusted party that iterates over part of the tree.)