|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object polyglot.ast.AbstractExtFactory_c jif.ast.AbstractJifExtFactory_c
public class AbstractJifExtFactory_c
This class provides is Jif's Extension factory, creating the appropriate Ext objects as required.
Constructor Summary | |
---|---|
AbstractJifExtFactory_c()
|
|
AbstractJifExtFactory_c(polyglot.ast.ExtFactory nextExtFactory)
|
Method Summary | |
---|---|
polyglot.ast.Ext |
extActsForConstraintNode()
|
protected polyglot.ast.Ext |
extActsForConstraintNodeImpl()
|
polyglot.ast.Ext |
extAmbDynamicLabelNode()
|
protected polyglot.ast.Ext |
extAmbDynamicLabelNodeImpl()
|
polyglot.ast.Ext |
extAmbNewArray()
|
protected polyglot.ast.Ext |
extAmbNewArrayImpl()
|
polyglot.ast.Ext |
extAmbParam()
|
protected polyglot.ast.Ext |
extAmbParamImpl()
|
polyglot.ast.Ext |
extAmbParamTypeOrAccess()
|
protected polyglot.ast.Ext |
extAmbParamTypeOrAccessImpl()
|
polyglot.ast.Ext |
extAmbPrincipalNode()
|
protected polyglot.ast.Ext |
extAmbPrincipalNodeImpl()
|
polyglot.ast.Ext |
extAmbThisLabelNode()
|
protected polyglot.ast.Ext |
extAmbThisLabelNodeImpl()
|
polyglot.ast.Ext |
extAmbVarLabelNode()
|
protected polyglot.ast.Ext |
extAmbVarLabelNodeImpl()
|
polyglot.ast.Ext |
extAuthConstraintNode()
|
protected polyglot.ast.Ext |
extAuthConstraintNodeImpl()
|
polyglot.ast.Ext |
extAutoEndorseConstraintNode()
|
protected polyglot.ast.Ext |
extAutoEndorseConstraintNodeImpl()
|
polyglot.ast.Ext |
extCallerConstraintNode()
|
protected polyglot.ast.Ext |
extCallerConstraintNodeImpl()
|
polyglot.ast.Ext |
extCanonicalConstraintNode()
|
protected polyglot.ast.Ext |
extCanonicalConstraintNodeImpl()
|
polyglot.ast.Ext |
extCanonicalLabelNode()
|
protected polyglot.ast.Ext |
extCanonicalLabelNodeImpl()
|
polyglot.ast.Ext |
extCanonicalPrincipalNode()
|
protected polyglot.ast.Ext |
extCanonicalPrincipalNodeImpl()
|
polyglot.ast.Ext |
extCheckedEndorseStmt()
|
protected polyglot.ast.Ext |
extCheckedEndorseStmtImpl()
|
polyglot.ast.Ext |
extConstraintNode()
|
protected polyglot.ast.Ext |
extConstraintNodeImpl()
|
polyglot.ast.Ext |
extDeclassifyExpr()
|
protected polyglot.ast.Ext |
extDeclassifyExprImpl()
|
polyglot.ast.Ext |
extDeclassifyStmt()
|
protected polyglot.ast.Ext |
extDeclassifyStmtImpl()
|
polyglot.ast.Ext |
extEndorseExpr()
|
protected polyglot.ast.Ext |
extEndorseExprImpl()
|
polyglot.ast.Ext |
extEndorseStmt()
|
protected polyglot.ast.Ext |
extEndorseStmtImpl()
|
polyglot.ast.Ext |
extInstTypeNode()
|
protected polyglot.ast.Ext |
extInstTypeNodeImpl()
|
polyglot.ast.Ext |
extJoinLabelNode()
|
protected polyglot.ast.Ext |
extJoinLabelNodeImpl()
|
polyglot.ast.Ext |
extLabeledTypeNode()
|
protected polyglot.ast.Ext |
extLabeledTypeNodeImpl()
|
polyglot.ast.Ext |
extLabelExpr()
|
protected polyglot.ast.Ext |
extLabelExprImpl()
|
polyglot.ast.Ext |
extLabelLeAssertionNode()
|
protected polyglot.ast.Ext |
extLabelLeAssertionNodeImpl()
|
polyglot.ast.Ext |
extLabelNode()
|
protected polyglot.ast.Ext |
extLabelNodeImpl()
|
polyglot.ast.Ext |
extMeetLabelNode()
|
protected polyglot.ast.Ext |
extMeetLabelNodeImpl()
|
polyglot.ast.Ext |
extNewLabel()
|
protected polyglot.ast.Ext |
extNewLabelImpl()
|
polyglot.ast.Ext |
extParamDecl()
|
protected polyglot.ast.Ext |
extParamDeclImpl()
|
polyglot.ast.Ext |
extParamNode()
|
protected polyglot.ast.Ext |
extParamNodeImpl()
|
polyglot.ast.Ext |
extPolicyNode()
|
protected polyglot.ast.Ext |
extPolicyNodeImpl()
|
polyglot.ast.Ext |
extPrincipalExpr()
|
protected polyglot.ast.Ext |
extPrincipalExprImpl()
|
polyglot.ast.Ext |
extPrincipalNode()
|
protected polyglot.ast.Ext |
extPrincipalNodeImpl()
|
protected polyglot.ast.Ext |
postExtActsForConstraintNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtAmbDynamicLabelNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtAmbNewArray(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtAmbParam(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtAmbParamTypeOrAccess(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtAmbPrincipalNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtAmbThisLabelNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtAmbVarLabelNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtAuthConstraintNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtAutoEndorseConstraintNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtCallerConstraintNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtCanonicalConstraintNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtCanonicalLabelNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtCanonicalPrincipalNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtConstraintNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtDeclassifyExpr(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtDeclassifyStmt(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtDowngradeExpr(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtDowngradeStmt(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtEndorseExpr(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtEndorseStmt(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtInstTypeNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtJoinLabelNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtLabeledTypeNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtLabelExpr(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtLabelLeAssertionNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtLabelNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtMeetLabelNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtNewLabel(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtParamDecl(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtParamNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtPolicyNode(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtPrincipalExpr(polyglot.ast.Ext e)
|
protected polyglot.ast.Ext |
postExtPrincipalNode(polyglot.ast.Ext e)
|
Methods inherited from class polyglot.ast.AbstractExtFactory_c |
---|
composeExts, extAmbAssign, extAmbAssignImpl, extAmbExpr, extAmbExprImpl, extAmbPrefix, extAmbPrefixImpl, extAmbQualifierNode, extAmbQualifierNodeImpl, extAmbReceiver, extAmbReceiverImpl, extAmbTypeNode, extAmbTypeNodeImpl, extArrayAccess, extArrayAccessAssign, extArrayAccessAssignImpl, extArrayAccessImpl, extArrayInit, extArrayInitImpl, extArrayTypeNode, extArrayTypeNodeImpl, extAssert, extAssertImpl, extAssign, extAssignImpl, extBinary, extBinaryImpl, extBlock, extBlockImpl, extBooleanLit, extBooleanLitImpl, extBranch, extBranchImpl, extCall, extCallImpl, extCanonicalTypeNode, extCanonicalTypeNodeImpl, extCase, extCaseImpl, extCast, extCastImpl, extCatch, extCatchImpl, extCharLit, extCharLitImpl, extClassBody, extClassBodyImpl, extClassDecl, extClassDeclImpl, extClassLit, extClassLitImpl, extClassMember, extClassMemberImpl, extCodeDecl, extCodeDeclImpl, extCompoundStmt, extCompoundStmtImpl, extConditional, extConditionalImpl, extConstructorCall, extConstructorCallImpl, extConstructorDecl, extConstructorDeclImpl, extDo, extDoImpl, extEmpty, extEmptyImpl, extEval, extEvalImpl, extExpr, extExprImpl, extField, extFieldAssign, extFieldAssignImpl, extFieldDecl, extFieldDeclImpl, extFieldImpl, extFloatLit, extFloatLitImpl, extFor, extForImpl, extFormal, extFormalImpl, extId, extIdImpl, extIf, extIfImpl, extImport, extImportImpl, extInitializer, extInitializerImpl, extInstanceof, extInstanceofImpl, extIntLit, extIntLitImpl, extLabeled, extLabeledImpl, extLit, extLitImpl, extLocal, extLocalAssign, extLocalAssignImpl, extLocalClassDecl, extLocalClassDeclImpl, extLocalDecl, extLocalDeclImpl, extLocalImpl, extLoop, extLoopImpl, extMethodDecl, extMethodDeclImpl, extNew, extNewArray, extNewArrayImpl, extNewImpl, extNode, extNodeImpl, extNodeList, extNodeListImpl, extNullLit, extNullLitImpl, extNumLit, extNumLitImpl, extPackageNode, extPackageNodeImpl, extProcedureDecl, extProcedureDeclImpl, extReturn, extReturnImpl, extSourceCollection, extSourceCollectionImpl, extSourceFile, extSourceFileImpl, extSpecial, extSpecialImpl, extStmt, extStmtImpl, extStringLit, extStringLitImpl, extSwitch, extSwitchBlock, extSwitchBlockImpl, extSwitchElement, extSwitchElementImpl, extSwitchImpl, extSynchronized, extSynchronizedImpl, extTerm, extTermImpl, extThrow, extThrowImpl, extTry, extTryImpl, extTypeNode, extTypeNodeImpl, extUnary, extUnaryImpl, extWhile, extWhileImpl, nextExtFactory, postExtAmbAssign, postExtAmbExpr, postExtAmbPrefix, postExtAmbQualifierNode, postExtAmbReceiver, postExtAmbTypeNode, postExtArrayAccess, postExtArrayAccessAssign, postExtArrayInit, postExtArrayTypeNode, postExtAssert, postExtAssign, postExtBinary, postExtBlock, postExtBooleanLit, postExtBranch, postExtCall, postExtCanonicalTypeNode, postExtCase, postExtCast, postExtCatch, postExtCharLit, postExtClassBody, postExtClassDecl, postExtClassLit, postExtClassMember, postExtCodeDecl, postExtCompoundStmt, postExtConditional, postExtConstructorCall, postExtConstructorDecl, postExtDo, postExtEmpty, postExtEval, postExtExpr, postExtField, postExtFieldAssign, postExtFieldDecl, postExtFloatLit, postExtFor, postExtFormal, postExtId, postExtIf, postExtImport, postExtInitializer, postExtInstanceof, postExtIntLit, postExtLabeled, postExtLit, postExtLocal, postExtLocalAssign, postExtLocalClassDecl, postExtLocalDecl, postExtLoop, postExtMethodDecl, postExtNew, postExtNewArray, postExtNode, postExtNodeList, postExtNullLit, postExtNumLit, postExtPackageNode, postExtProcedureDecl, postExtReturn, postExtSourceCollection, postExtSourceFile, postExtSpecial, postExtStmt, postExtStringLit, postExtSwitch, postExtSwitchBlock, postExtSwitchElement, postExtSynchronized, postExtTerm, postExtThrow, postExtTry, postExtTypeNode, postExtUnary, postExtWhile |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface polyglot.ast.ExtFactory |
---|
extAmbAssign, extAmbExpr, extAmbPrefix, extAmbQualifierNode, extAmbReceiver, extAmbTypeNode, extArrayAccess, extArrayAccessAssign, extArrayInit, extArrayTypeNode, extAssert, extAssign, extBinary, extBlock, extBooleanLit, extBranch, extCall, extCanonicalTypeNode, extCase, extCast, extCatch, extCharLit, extClassBody, extClassDecl, extClassLit, extClassMember, extCodeDecl, extCompoundStmt, extConditional, extConstructorCall, extConstructorDecl, extDo, extEmpty, extEval, extExpr, extField, extFieldAssign, extFieldDecl, extFloatLit, extFor, extFormal, extId, extIf, extImport, extInitializer, extInstanceof, extIntLit, extLabeled, extLit, extLocal, extLocalAssign, extLocalClassDecl, extLocalDecl, extLoop, extMethodDecl, extNew, extNewArray, extNode, extNodeList, extNullLit, extNumLit, extPackageNode, extProcedureDecl, extReturn, extSourceCollection, extSourceFile, extSpecial, extStmt, extStringLit, extSwitch, extSwitchBlock, extSwitchElement, extSynchronized, extTerm, extThrow, extTry, extTypeNode, extUnary, extWhile, nextExtFactory |
Constructor Detail |
---|
public AbstractJifExtFactory_c()
public AbstractJifExtFactory_c(polyglot.ast.ExtFactory nextExtFactory)
Method Detail |
---|
public final polyglot.ast.Ext extInstTypeNode()
extInstTypeNode
in interface JifExtFactory
public final polyglot.ast.Ext extLabeledTypeNode()
extLabeledTypeNode
in interface JifExtFactory
public final polyglot.ast.Ext extAmbNewArray()
extAmbNewArray
in interface JifExtFactory
public final polyglot.ast.Ext extAmbParamTypeOrAccess()
extAmbParamTypeOrAccess
in interface JifExtFactory
public final polyglot.ast.Ext extJoinLabelNode()
extJoinLabelNode
in interface JifExtFactory
public final polyglot.ast.Ext extMeetLabelNode()
extMeetLabelNode
in interface JifExtFactory
public final polyglot.ast.Ext extPolicyNode()
extPolicyNode
in interface JifExtFactory
public final polyglot.ast.Ext extAmbDynamicLabelNode()
extAmbDynamicLabelNode
in interface JifExtFactory
public final polyglot.ast.Ext extAmbVarLabelNode()
extAmbVarLabelNode
in interface JifExtFactory
public final polyglot.ast.Ext extAmbThisLabelNode()
extAmbThisLabelNode
in interface JifExtFactory
public final polyglot.ast.Ext extCanonicalLabelNode()
extCanonicalLabelNode
in interface JifExtFactory
public final polyglot.ast.Ext extParamNode()
extParamNode
in interface JifExtFactory
public final polyglot.ast.Ext extLabelNode()
extLabelNode
in interface JifExtFactory
public final polyglot.ast.Ext extPrincipalNode()
extPrincipalNode
in interface JifExtFactory
public final polyglot.ast.Ext extAmbPrincipalNode()
extAmbPrincipalNode
in interface JifExtFactory
public final polyglot.ast.Ext extCanonicalPrincipalNode()
extCanonicalPrincipalNode
in interface JifExtFactory
public final polyglot.ast.Ext extAmbParam()
extAmbParam
in interface JifExtFactory
public final polyglot.ast.Ext extParamDecl()
extParamDecl
in interface JifExtFactory
public final polyglot.ast.Ext extConstraintNode()
extConstraintNode
in interface JifExtFactory
public final polyglot.ast.Ext extCanonicalConstraintNode()
extCanonicalConstraintNode
in interface JifExtFactory
public final polyglot.ast.Ext extAuthConstraintNode()
extAuthConstraintNode
in interface JifExtFactory
public final polyglot.ast.Ext extAutoEndorseConstraintNode()
extAutoEndorseConstraintNode
in interface JifExtFactory
public final polyglot.ast.Ext extCallerConstraintNode()
extCallerConstraintNode
in interface JifExtFactory
public final polyglot.ast.Ext extActsForConstraintNode()
extActsForConstraintNode
in interface JifExtFactory
public final polyglot.ast.Ext extLabelLeAssertionNode()
extLabelLeAssertionNode
in interface JifExtFactory
public final polyglot.ast.Ext extDeclassifyStmt()
extDeclassifyStmt
in interface JifExtFactory
extDeclassifyStmt
in interface JifStmtExtFactory
public final polyglot.ast.Ext extDeclassifyExpr()
extDeclassifyExpr
in interface JifExtFactory
public final polyglot.ast.Ext extEndorseStmt()
extEndorseStmt
in interface JifExtFactory
extEndorseStmt
in interface JifStmtExtFactory
public final polyglot.ast.Ext extCheckedEndorseStmt()
extCheckedEndorseStmt
in interface JifExtFactory
extCheckedEndorseStmt
in interface JifStmtExtFactory
public final polyglot.ast.Ext extEndorseExpr()
extEndorseExpr
in interface JifExtFactory
public final polyglot.ast.Ext extNewLabel()
extNewLabel
in interface JifExtFactory
public final polyglot.ast.Ext extLabelExpr()
extLabelExpr
in interface JifExtFactory
public final polyglot.ast.Ext extPrincipalExpr()
extPrincipalExpr
in interface JifExtFactory
protected polyglot.ast.Ext extInstTypeNodeImpl()
protected polyglot.ast.Ext extLabeledTypeNodeImpl()
protected polyglot.ast.Ext extAmbNewArrayImpl()
protected polyglot.ast.Ext extAmbParamTypeOrAccessImpl()
protected polyglot.ast.Ext extJoinLabelNodeImpl()
protected polyglot.ast.Ext extMeetLabelNodeImpl()
protected polyglot.ast.Ext extPolicyNodeImpl()
protected polyglot.ast.Ext extAmbDynamicLabelNodeImpl()
protected polyglot.ast.Ext extAmbVarLabelNodeImpl()
protected polyglot.ast.Ext extAmbThisLabelNodeImpl()
protected polyglot.ast.Ext extCanonicalLabelNodeImpl()
protected polyglot.ast.Ext extParamNodeImpl()
protected polyglot.ast.Ext extLabelNodeImpl()
protected polyglot.ast.Ext extPrincipalNodeImpl()
protected polyglot.ast.Ext extAmbPrincipalNodeImpl()
protected polyglot.ast.Ext extCanonicalPrincipalNodeImpl()
protected polyglot.ast.Ext extAmbParamImpl()
protected polyglot.ast.Ext extParamDeclImpl()
protected polyglot.ast.Ext extConstraintNodeImpl()
protected polyglot.ast.Ext extCanonicalConstraintNodeImpl()
protected polyglot.ast.Ext extAuthConstraintNodeImpl()
protected polyglot.ast.Ext extAutoEndorseConstraintNodeImpl()
protected polyglot.ast.Ext extCallerConstraintNodeImpl()
protected polyglot.ast.Ext extActsForConstraintNodeImpl()
protected polyglot.ast.Ext extLabelLeAssertionNodeImpl()
protected polyglot.ast.Ext extDeclassifyStmtImpl()
protected polyglot.ast.Ext extDeclassifyExprImpl()
protected polyglot.ast.Ext extEndorseStmtImpl()
protected polyglot.ast.Ext extCheckedEndorseStmtImpl()
protected polyglot.ast.Ext extEndorseExprImpl()
protected polyglot.ast.Ext extNewLabelImpl()
protected polyglot.ast.Ext extLabelExprImpl()
protected polyglot.ast.Ext extPrincipalExprImpl()
protected polyglot.ast.Ext postExtInstTypeNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtLabeledTypeNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtAmbNewArray(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtAmbParamTypeOrAccess(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtJoinLabelNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtMeetLabelNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtPolicyNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtAmbDynamicLabelNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtAmbVarLabelNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtAmbThisLabelNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtCanonicalLabelNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtParamNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtLabelNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtPrincipalNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtAmbPrincipalNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtCanonicalPrincipalNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtAmbParam(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtParamDecl(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtConstraintNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtCanonicalConstraintNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtAuthConstraintNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtAutoEndorseConstraintNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtCallerConstraintNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtActsForConstraintNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtLabelLeAssertionNode(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtDowngradeStmt(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtDowngradeExpr(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtDeclassifyStmt(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtDeclassifyExpr(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtEndorseStmt(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtEndorseExpr(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtNewLabel(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtLabelExpr(polyglot.ast.Ext e)
protected polyglot.ast.Ext postExtPrincipalExpr(polyglot.ast.Ext e)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |