# Serialized Form

- ## Package jif.ast

  - ### Class jif.ast.ActsForConstraintNode_c extends ConstraintNode_c<ActsForConstraint<Actor extends ActsForParam,Granter extends ActsForParam>> implements Serializable

    - ### Serialized Fields

      - #### actor

            ActsForParamNode<Param extends ActsForParam> actor

      - #### granter

            ActsForParamNode<Param extends ActsForParam> granter

      - #### isEquiv

            boolean isEquiv

  - ### Class jif.ast.AmbDynamicLabelNode_c extends AmbLabelNode_c implements Serializable

    - ### Serialized Fields

      - #### expr

            polyglot.ast.Expr expr

  - ### Class jif.ast.AmbExprParam_c extends polyglot.ast.Node_c implements Serializable

    - ### Serialized Fields

      - #### expr

            polyglot.ast.Expr expr

      - #### expectedPI

            ParamInstance expectedPI

  - ### Class jif.ast.AmbJunctivePrincipalNode_c extends PrincipalNode_c implements Serializable

    - ### Serialized Fields

      - #### left

            PrincipalNode left

      - #### right

            PrincipalNode right

      - #### isConjunction

            boolean isConjunction

  - ### Class jif.ast.AmbLabelNode_c extends LabelNode_c implements Serializable

  - ### Class jif.ast.AmbNewArray_c extends polyglot.ast.Expr_c implements Serializable

    - ### Serialized Fields

      - #### baseType

            polyglot.ast.TypeNode baseType

      - #### expr

            java.lang.Object expr

        The ambiguous expr. May be a parameter or an array dimension.

      - #### dims

            java.util.List<E> dims

      - #### addDims

            int addDims

  - ### Class jif.ast.AmbParam_c extends polyglot.ast.Node_c implements Serializable

    - ### Serialized Fields

      - #### name

            polyglot.ast.Id name

      - #### pi

            ParamInstance pi

      - #### disambCount

            int disambCount

        Count the number of times disambiguate has been called, to allow reporting of meaningful error messages.

  - ### Class jif.ast.AmbParamTypeOrAccess_c extends polyglot.ast.Node_c implements Serializable

    - ### Serialized Fields

      - #### prefix

            polyglot.ast.Receiver prefix

      - #### expr

            java.lang.Object expr

      - #### type

            polyglot.types.Type type

  - ### Class jif.ast.AmbPrincipalNode_c extends PrincipalNode_c implements Serializable

    - ### Serialized Fields

      - #### expr

            polyglot.ast.Expr expr

      - #### name

            polyglot.ast.Id name

  - ### Class jif.ast.AmbProviderLabelNode_c extends AmbLabelNode_c implements Serializable

    - ### Serialized Fields

      - #### typeNode

            polyglot.ast.TypeNode typeNode

  - ### Class jif.ast.AmbThisLabelNode_c extends AmbLabelNode_c implements Serializable

  - ### Class jif.ast.AmbVarLabelNode_c extends AmbLabelNode_c implements Serializable

    - ### Serialized Fields

      - #### name

            polyglot.ast.Id name

  - ### Class jif.ast.AuthConstraintNode_c extends ConstraintNode_c<AuthConstraint> implements Serializable

    - ### Serialized Fields

      - #### principals

            java.util.List<E> principals

  - ### Class jif.ast.AutoEndorseConstraintNode_c extends ConstraintNode_c<AutoEndorseConstraint> implements Serializable

    - ### Serialized Fields

      - #### endorseTo

            LabelNode endorseTo

  - ### Class jif.ast.CallerConstraintNode_c extends ConstraintNode_c<CallerConstraint> implements Serializable

    - ### Serialized Fields

      - #### principals

            java.util.List<E> principals

  - ### Class jif.ast.CanonicalConstraintNode_c extends ConstraintNode_c<Assertion> implements Serializable

  - ### Class jif.ast.CanonicalLabelNode_c extends LabelNode_c implements Serializable

  - ### Class jif.ast.CanonicalPrincipalNode_c extends PrincipalNode_c implements Serializable

  - ### Class jif.ast.CheckedEndorseStmt_c extends EndorseStmt_c implements Serializable

    - ### Serialized Fields

      - #### expr

            polyglot.ast.Expr expr

  - ### Class jif.ast.ConstArrayTypeNode_c extends polyglot.ast.ArrayTypeNode_c implements Serializable

  - ### Class jif.ast.ConstraintNode_c extends polyglot.ast.Node_c implements Serializable

    - ### Serialized Fields

      - #### constraints

            java.util.Set<E> constraints

  - ### Class jif.ast.DeclassifyExpr_c extends DowngradeExpr_c implements Serializable

  - ### Class jif.ast.DeclassifyStmt_c extends DowngradeStmt_c implements Serializable

  - ### Class jif.ast.DowngradeExpr_c extends polyglot.ast.Expr_c implements Serializable

    - ### Serialized Fields

      - #### label

            LabelNode label

      - #### bound

            LabelNode bound

      - #### expr

            polyglot.ast.Expr expr

  - ### Class jif.ast.DowngradeStmt_c extends polyglot.ast.Stmt_c implements Serializable

    - ### Serialized Fields

      - #### bound

            LabelNode bound

      - #### label

            LabelNode label

      - #### body

            polyglot.ast.Stmt body

  - ### Class jif.ast.EndorseExpr_c extends DowngradeExpr_c implements Serializable

  - ### Class jif.ast.EndorseStmt_c extends DowngradeStmt_c implements Serializable

  - ### Class jif.ast.InstTypeNode_c extends polyglot.ast.TypeNode_c implements Serializable

    - ### Serialized Fields

      - #### base

            polyglot.ast.TypeNode base

      - #### params

            java.util.List<E> params

  - ### Class jif.ast.JifArrayAccessAssign_c extends polyglot.ast.ArrayAccessAssign_c implements Serializable

  - ### Class jif.ast.JifBinary_c extends polyglot.ast.Binary_c implements Serializable

  - ### Class jif.ast.JifCall_c extends polyglot.ast.Call_c implements Serializable

  - ### Class jif.ast.JifCanonicalTypeNode_c extends polyglot.ast.CanonicalTypeNode_c implements Serializable

  - ### Class jif.ast.JifCatch_c extends polyglot.ast.Catch_c implements Serializable

  - ### Class jif.ast.JifClassDecl_c extends polyglot.ast.ClassDecl_c implements Serializable

    - ### Serialized Fields

      - #### params

            java.util.List<E> params

        Deprecated.

      - #### authority

            java.util.List<E> authority

        Deprecated.

      - #### constraints

            java.util.List<E> constraints

        Deprecated.

  - ### Class jif.ast.JifConstructorDecl_c extends polyglot.ast.ConstructorDecl_c implements Serializable

    - ### Serialized Fields

      - #### startLabel

            LabelNode startLabel

        Deprecated.

      - #### returnLabel

            LabelNode returnLabel

        Deprecated.

      - #### constraints

            java.util.List<E> constraints

        Deprecated.

  - ### Class jif.ast.JifExt_c extends polyglot.ast.Ext_c implements Serializable

    - ### Serialized Fields

      - #### X

            PathMap X

      - #### toJava

            ToJavaExt toJava

  - ### Class jif.ast.JifFormal_c extends polyglot.ast.Formal_c implements Serializable

  - ### Class jif.ast.JifLocalDecl_c extends polyglot.ast.LocalDecl_c implements Serializable

  - ### Class jif.ast.JifMethodDecl_c extends polyglot.ast.MethodDecl_c implements Serializable

    - ### Serialized Fields

      - #### startLabel

            LabelNode startLabel

        Deprecated.

      - #### returnLabel

            LabelNode returnLabel

        Deprecated.

      - #### constraints

            java.util.List<E> constraints

        Deprecated.

  - ### Class jif.ast.JifNew_c extends polyglot.ast.New_c implements Serializable

  - ### Class jif.ast.JoinLabelNode_c extends AmbLabelNode_c implements Serializable

    - ### Serialized Fields

      - #### components

            java.util.List<E> components

  - ### Class jif.ast.LabelActsForLabelConstraintNode_c extends ActsForConstraintNode_c<Label,Label> implements Serializable

  - ### Class jif.ast.LabelActsForPrincipalConstraintNode_c extends ActsForConstraintNode_c<Label,Principal> implements Serializable

  - ### Class jif.ast.LabeledTypeNode_c extends polyglot.ast.TypeNode_c implements Serializable

    - ### Serialized Fields

      - #### typePart

            polyglot.ast.TypeNode typePart

      - #### labelPart

            LabelNode labelPart

  - ### Class jif.ast.LabelExpr_c extends polyglot.ast.Expr_c implements Serializable

    - ### Serialized Fields

      - #### label

            LabelNode label

  - ### Class jif.ast.LabelLeAssertionNode_c extends ConstraintNode_c<LabelLeAssertion> implements Serializable

    - ### Serialized Fields

      - #### lhs

            LabelNode lhs

      - #### rhs

            LabelNode rhs

      - #### isEquiv

            boolean isEquiv

  - ### Class jif.ast.LabelNode_c extends polyglot.ast.Node_c implements Serializable

    - ### Serialized Fields

      - #### label

            Label label

  - ### Class jif.ast.MeetLabelNode_c extends AmbLabelNode_c implements Serializable

    - ### Serialized Fields

      - #### components

            java.util.List<E> components

  - ### Class jif.ast.NewLabel_c extends LabelExpr_c implements Serializable

  - ### Class jif.ast.ParamDecl_c extends polyglot.ast.Node_c implements Serializable

    - ### Serialized Fields

      - #### pi

            ParamInstance pi

      - #### name

            polyglot.ast.Id name

      - #### kind

            ParamInstance.Kind kind

  - ### Class jif.ast.PolicyNode_c extends polyglot.ast.Node_c implements Serializable

    - ### Serialized Fields

      - #### owner

            PrincipalNode owner

      - #### policy

            Policy policy

  - ### Class jif.ast.PrincipalActsForPrincipalConstraintNode_c extends ActsForConstraintNode_c<Principal,Principal> implements Serializable

  - ### Class jif.ast.PrincipalExpr_c extends polyglot.ast.Expr_c implements Serializable

    - ### Serialized Fields

      - #### principal

            PrincipalNode principal

  - ### Class jif.ast.PrincipalNode_c extends polyglot.ast.Expr_c implements Serializable

    - ### Serialized Fields

      - #### principal

            Principal principal

  - ### Class jif.ast.Prologue_c extends polyglot.ast.Block_c implements Serializable

  - ### Class jif.ast.ReaderPolicyNode_c extends PolicyNode_c implements Serializable

    - ### Serialized Fields

      - #### principals

            java.util.List<E> principals

  - ### Class jif.ast.WriterPolicyNode_c extends PolicyNode_c implements Serializable

    - ### Serialized Fields

      - #### principals

            java.util.List<E> principals

- ## Package jif.extension

  - ### Class jif.extension.JifArrayAccessAssignDel extends JifAssignDel implements Serializable

  - ### Class jif.extension.JifArrayAccessAssignExt extends JifAssignExt implements Serializable

  - ### Class jif.extension.JifArrayAccessDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### isArrayNeverNull

            boolean isArrayNeverNull

        This flag records whether the array access by this array access expression is never null. This flag is by default false, but may be set to true by the dataflow analysis performed by jif.visit.NotNullChecker

      - #### isOutOfBoundsExcThrown

            boolean isOutOfBoundsExcThrown

        This flag records whether the array access by this array access expression may throw an OutOfBoundsException. This flag is by default true, but may be set to false by the dataflow analysis performed by jif.visit.ArrayIndexChecker

  - ### Class jif.extension.JifArrayAccessExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifArrayInitDel extends JifDel_c implements Serializable

  - ### Class jif.extension.JifArrayInitExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifAssignDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### arithmeticExcIsFatal

            boolean arithmeticExcIsFatal

  - ### Class jif.extension.JifAssignExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifBinaryDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### isAEFatal

            boolean isAEFatal

  - ### Class jif.extension.JifBinaryExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifBlockExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifBranchExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifCallDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### isTargetNeverNull

            boolean isTargetNeverNull

        This flag records whether the target of a method call is never null. This flag is by default false, but may be set to true by the dataflow analysis performed by jif.visit.NotNullChecker

      - #### targetNeverNullAlreadySet

            boolean targetNeverNullAlreadySet

        Since the CFG may visit a node more than once, we need to take the OR of all values set.

      - #### isNPEfatal

            boolean isNPEfatal

        This flag records if an NPE is fatal due to fail-on-exception.

      - #### receiverVarLabel

            VarLabel receiverVarLabel

      - #### argVarLabels

            java.util.List<E> argVarLabels

      - #### paramVarLabels

            java.util.List<E> paramVarLabels

  - ### Class jif.extension.JifCallExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifCaseExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifCastDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### exprPreciseClasses

            java.util.Set<E> exprPreciseClasses

      - #### isToSubstJifClass

            boolean isToSubstJifClass

      - #### isClassCastExceptionFatal

            boolean isClassCastExceptionFatal

  - ### Class jif.extension.JifCastExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifCatchDel extends JifDel_c implements Serializable

  - ### Class jif.extension.JifCheckedEndorseStmtExt extends JifEndorseStmtExt implements Serializable

  - ### Class jif.extension.JifClassBodyExt extends JifExt_c implements Serializable

  - ### Class jif.extension.JifClassDeclDel extends JifDel_c implements Serializable

  - ### Class jif.extension.JifClassDeclExt extends JifExt_c implements Serializable

  - ### Class jif.extension.JifConditionalExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifConstructorCallDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### isQualNeverNull

            boolean isQualNeverNull

        This flag records whether the target of a field access is never null. This flag is by default false, but may be set to true by the dataflow analysis performed by jif.visit.NotNullChecker

      - #### qualNeverNullAlreadySet

            boolean qualNeverNullAlreadySet

        Since the CFG may visit a node more than once, we need to take the OR of all values set.

      - #### isNPEfatal

            boolean isNPEfatal

        This flag records if an NPE is fatal due to fail-on-exception.

  - ### Class jif.extension.JifConstructorCallExt extends JifStmtExt_c implements Serializable

    - ### Serialized Fields

      - #### constructorChecker

            ConstructorChecker constructorChecker

  - ### Class jif.extension.JifConstructorDeclExt extends JifProcedureDeclExt_c implements Serializable

  - ### Class jif.extension.JifDeclassifyExprExt extends JifDowngradeExprExt implements Serializable

  - ### Class jif.extension.JifDeclassifyStmtExt extends JifDowngradeStmtExt implements Serializable

  - ### Class jif.extension.JifDel_c extends polyglot.ast.JLDel_c implements Serializable

    - ### Serialized Fields

      - #### fatalExceptions

            java.util.Set<E> fatalExceptions

  - ### Class jif.extension.JifDoExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifDowngradeExprExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifDowngradeStmtExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifEmptyExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifEndorseExprExt extends JifDowngradeExprExt implements Serializable

  - ### Class jif.extension.JifEndorseStmtExt extends JifDowngradeStmtExt implements Serializable

  - ### Class jif.extension.JifEvalExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifExprExt extends JifExt_c implements Serializable

    - ### Serialized Fields

      - #### numericBounds

            IntegerBoundsChecker.Interval numericBounds

        If the expression is of integral type, and we can determine a strict lower bound, then this value is set by the `IntegerBoundsChecker`.

  - ### Class jif.extension.JifFieldAssignDel extends JifAssignDel implements Serializable

  - ### Class jif.extension.JifFieldAssignExt extends JifAssignExt implements Serializable

  - ### Class jif.extension.JifFieldDeclDel extends JifDel_c implements Serializable

  - ### Class jif.extension.JifFieldDeclExt_c extends JifExt_c implements Serializable

  - ### Class jif.extension.JifFieldDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### isTargetNeverNull

            boolean isTargetNeverNull

        This flag records whether the target of a field access is never null. This flag is by default false, but may be set to true by the dataflow analysis performed by jif.visit.NotNullChecker

      - #### targetNeverNullAlreadySet

            boolean targetNeverNullAlreadySet

        Since the CFG may visit a node more than once, we need to take the OR of all values set.

      - #### isNPEfatal

            boolean isNPEfatal

        This flag records if an NPE is fatal due to fail-on-exception.

  - ### Class jif.extension.JifFieldExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifForExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifFormalDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### isCatchFormal

            boolean isCatchFormal

      - #### explicitFinalFlag

            boolean explicitFinalFlag

  - ### Class jif.extension.JifFormalExt extends JifExt_c implements Serializable

  - ### Class jif.extension.JifIfDel extends JifDel_c implements Serializable

  - ### Class jif.extension.JifIfExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifInitializerDel extends JifDel_c implements Serializable

  - ### Class jif.extension.JifInitializerExt extends JifExt_c implements Serializable

  - ### Class jif.extension.JifInstanceOfDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### isToSubstJifClass

            boolean isToSubstJifClass

  - ### Class jif.extension.JifInstanceofExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifLabeledExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifLabelExprExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifLiteralExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifLocalAssignExt extends JifAssignExt implements Serializable

  - ### Class jif.extension.JifLocalClassDeclExt extends JifExt_c implements Serializable

  - ### Class jif.extension.JifLocalDeclDel extends JifDel_c implements Serializable

  - ### Class jif.extension.JifLocalDeclExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifLocalExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifMethodDeclDel extends JifProcedureDeclDel implements Serializable

  - ### Class jif.extension.JifMethodDeclExt extends JifProcedureDeclExt_c implements Serializable

  - ### Class jif.extension.JifNewArrayDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### noNegArraySizeExcThrown

            boolean noNegArraySizeExcThrown

  - ### Class jif.extension.JifNewArrayExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifNewDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### isQualNeverNull

            boolean isQualNeverNull

        This flag records whether the target of a field access is never null. This flag is by default false, but may be set to true by the dataflow analysis performed by jif.visit.NotNullChecker

      - #### qualNeverNullAlreadySet

            boolean qualNeverNullAlreadySet

        Since the CFG may visit a node more than once, we need to take the OR of all values set.

      - #### isNPEfatal

            boolean isNPEfatal

        This flag records if an NPE is fatal due to fail-on-exception.

  - ### Class jif.extension.JifNewExt extends JifExprExt implements Serializable

    - ### Serialized Fields

      - #### constructorChecker

            ConstructorChecker constructorChecker

      - #### helper

            CallHelper helper

        Squirreling this away here because we need to reuse it in the extended Fabric Checking.

  - ### Class jif.extension.JifPrincipalExprExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifPrincipalNodeExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifProcedureDeclDel extends JifDel_c implements Serializable

  - ### Class jif.extension.JifProcedureDeclExt_c extends JifExt_c implements Serializable

  - ### Class jif.extension.JifReturnExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifSourceFileExt extends JifExt_c implements Serializable

  - ### Class jif.extension.JifSpecialExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifStmtExt_c extends JifExt_c implements Serializable

    - ### Serialized Fields

      - #### stmtDel

            JifStmtExt stmtDel

  - ### Class jif.extension.JifSwitchExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifSynchronizedExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifThrowDel extends JifDel_c implements Serializable

    - ### Serialized Fields

      - #### isThrownNeverNull

            boolean isThrownNeverNull

        This flag records whether the object thrown by this throw expression is never null. This flag is by default false, but may be set to true by the dataflow analysis performed by jif.visit.NotNullChecker

  - ### Class jif.extension.JifThrowExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifTryExt extends JifStmtExt_c implements Serializable

  - ### Class jif.extension.JifTypeNodeDel extends JifDel_c implements Serializable

  - ### Class jif.extension.JifUnaryExt extends JifExprExt implements Serializable

  - ### Class jif.extension.JifWhileExt extends JifStmtExt_c implements Serializable

- ## Package jif.parse

  - ### Class jif.parse.Wrapper extends polyglot.ast.Expr_c implements Serializable

    - ### Serialized Fields

      - #### amb

            Amb amb

- ## Package jif.translate

  - ### Class jif.translate.ActsForConstraintToJavaExpr_c extends java.lang.Object implements Serializable

  - ### Class jif.translate.ArrayAccessAssignToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ArrayAccessToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ArrayInitToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.BinaryToJavaExt_c extends ExprToJavaExt_c implements Serializable

    - ### Serialized Fields

      - #### lhsType

            polyglot.types.Type lhsType

  - ### Class jif.translate.BlockToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.BottomPrincipalToJavaExpr_c extends PrincipalToJavaExpr_c implements Serializable

  - ### Class jif.translate.BranchToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.CallToJavaExt_c extends ExprToJavaExt_c implements Serializable

  - ### Class jif.translate.CannotLabelToJavaExpr_c extends LabelToJavaExpr_c implements Serializable

  - ### Class jif.translate.CannotPrincipalToJavaExpr_c extends PrincipalToJavaExpr_c implements Serializable

  - ### Class jif.translate.CannotToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.CanonicalLabelNodeToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.CanonicalPrincipalNodeToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.CanonicalTypeNodeToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.CaseToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.CastToJavaExt_c extends ToJavaExt_c implements Serializable

    - ### Serialized Fields

      - #### castType

            polyglot.types.Type castType

  - ### Class jif.translate.CatchToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ClassBodyToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ClassDeclToJavaExt_c extends ToJavaExt_c implements Serializable

    - ### Serialized Fields

      - #### hasDefaultConstructor

            boolean hasDefaultConstructor

      - #### defaultConstructorExceptions

            java.util.List<E> defaultConstructorExceptions

  - ### Class jif.translate.ConditionalToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ConjunctivePrincipalToJavaExpr_c extends PrincipalToJavaExpr_c implements Serializable

  - ### Class jif.translate.ConstructorCallToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ConstructorDeclToJavaExt_c extends ToJavaExt_c implements Serializable

    - ### Serialized Fields

      - #### ci

            JifConstructorInstance ci

      - #### formals

            java.util.List<E> formals

  - ### Class jif.translate.DisjunctivePrincipalToJavaExpr_c extends PrincipalToJavaExpr_c implements Serializable

  - ### Class jif.translate.DoToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.DowngradeExprToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.DowngradeStmtToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.DynamicLabelToJavaExpr_c extends LabelToJavaExpr_c implements Serializable

  - ### Class jif.translate.DynamicPrincipalToJavaExpr_c extends PrincipalToJavaExpr_c implements Serializable

  - ### Class jif.translate.EmptyToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.EvalToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ExprToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ExternalPrincipalToJavaExpr_c extends PrincipalToJavaExpr_c implements Serializable

  - ### Class jif.translate.FieldAssignToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.FieldDeclToJavaExt_c extends ToJavaExt_c implements Serializable

    - ### Serialized Fields

      - #### fi

            polyglot.types.FieldInstance fi

  - ### Class jif.translate.FieldToJavaExt_c extends ExprToJavaExt_c implements Serializable

  - ### Class jif.translate.FormalToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ForToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.IdToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.IfToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ImportToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.InitializerToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.InstanceOfToJavaExt_c extends ToJavaExt_c implements Serializable

    - ### Serialized Fields

      - #### compareType

            polyglot.types.Type compareType

  - ### Class jif.translate.JoinLabelToJavaExpr_c extends LabelToJavaExpr_c implements Serializable

  - ### Class jif.translate.LabeledToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.LabelExprToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.LabelLeAssertionToJavaExpr_c extends java.lang.Object implements Serializable

  - ### Class jif.translate.LabelToJavaExpr_c extends java.lang.Object implements Serializable

  - ### Class jif.translate.LitToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.LocalAssignToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.LocalClassDeclToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.LocalDeclToJavaExt_c extends ToJavaExt_c implements Serializable

    - ### Serialized Fields

      - #### li

            polyglot.types.LocalInstance li

  - ### Class jif.translate.LocalToJavaExt_c extends ExprToJavaExt_c implements Serializable

  - ### Class jif.translate.MeetLabelToJavaExpr_c extends LabelToJavaExpr_c implements Serializable

  - ### Class jif.translate.MethodDeclToJavaExt_c extends ToJavaExt_c implements Serializable

    - ### Serialized Fields

      - #### mi

            JifMethodInstance mi

      - #### formals

            java.util.List<E> formals

  - ### Class jif.translate.NewArrayToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.NewLabelToJavaExt_c extends LabelExprToJavaExt_c implements Serializable

  - ### Class jif.translate.NewToJavaExt_c extends ExprToJavaExt_c implements Serializable

    - ### Serialized Fields

      - #### objectType

            polyglot.types.Type objectType

  - ### Class jif.translate.PackageNodeToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.PairLabelToJavaExpr_c extends LabelToJavaExpr_c implements Serializable

  - ### Class jif.translate.ParamToJavaExpr_c extends java.lang.Object implements Serializable

  - ### Class jif.translate.PrincipalExprToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.PrincipalToJavaExpr_c extends java.lang.Object implements Serializable

  - ### Class jif.translate.ProviderLabelToJavaExpr_c extends LabelToJavaExpr_c implements Serializable

  - ### Class jif.translate.ReturnToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.SourceFileToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.SpecialToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.SwitchBlockToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.SwitchToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.SynchronizedToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ThrowToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.ToJavaExt_c extends polyglot.ast.Ext_c implements Serializable

  - ### Class jif.translate.TopPrincipalToJavaExpr_c extends PrincipalToJavaExpr_c implements Serializable

  - ### Class jif.translate.TryToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.UnaryToJavaExt_c extends ToJavaExt_c implements Serializable

  - ### Class jif.translate.WhileToJavaExt_c extends ToJavaExt_c implements Serializable

- ## Package jif.types

  - ### Class jif.types.ActsForConstraint_c extends polyglot.types.TypeObject_c implements Serializable

    - ### Serialized Fields

      - #### toJava

            ActsForConstraintToJavaExpr toJava

      - #### actor

            ActsForParam actor

      - #### granter

            ActsForParam granter

      - #### isEquiv

            boolean isEquiv

  - ### Class jif.types.AuthConstraint_c extends polyglot.types.TypeObject_c implements Serializable

    - ### Serialized Fields

      - #### principals

            java.util.List<E> principals

  - ### Class jif.types.AutoEndorseConstraint_c extends polyglot.types.TypeObject_c implements Serializable

    - ### Serialized Fields

      - #### endorseTo

            Label endorseTo

  - ### Class jif.types.CallerConstraint_c extends polyglot.types.TypeObject_c implements Serializable

    - ### Serialized Fields

      - #### principals

            java.util.List<E> principals

  - ### Class jif.types.ConstArrayType_c extends polyglot.types.ArrayType_c implements Serializable

    - ### Serialized Fields

      - #### isConst

            boolean isConst

      - #### isNonConst

            boolean isNonConst

  - ### Class jif.types.Constraint.Kind extends polyglot.util.Enum implements Serializable

  - ### Class jif.types.JifConstructorInstance_c extends polyglot.types.ConstructorInstance_c implements Serializable

    - ### Serialized Fields

      - #### pcBound

            Label pcBound

      - #### returnLabel

            Label returnLabel

      - #### constraints

            java.util.List<E> constraints

      - #### isDefaultPCBound

            boolean isDefaultPCBound

      - #### isDefaultReturnLabel

            boolean isDefaultReturnLabel

  - ### Class jif.types.JifFieldInstance_c extends polyglot.types.FieldInstance_c implements Serializable

    - ### Serialized Fields

      - #### label

            Label label

      - #### hasInitializer

            boolean hasInitializer

      - #### initializer

            Param initializer

  - ### Class jif.types.JifLocalInstance_c extends polyglot.types.LocalInstance_c implements Serializable

    - ### Serialized Fields

      - #### label

            Label label

  - ### Class jif.types.JifMethodInstance_c extends polyglot.types.MethodInstance_c implements Serializable

    - ### Serialized Fields

      - #### pcBound

            Label pcBound

      - #### returnLabel

            Label returnLabel

      - #### constraints

            java.util.List<E> constraints

      - #### isDefaultPCBound

            boolean isDefaultPCBound

      - #### isDefaultReturnLabel

            boolean isDefaultReturnLabel

  - ### Class jif.types.JifMuPClass_c extends polyglot.ext.param.types.MuPClass_c<ParamInstance,Param> implements Serializable

  - ### Class jif.types.JifParsedPolyType_c extends polyglot.types.ParsedClassType_c implements Serializable

    - ### Serialized Fields

      - #### params

            java.util.List<E> params

      - #### authority

            java.util.List<E> authority

      - #### constraints

            java.util.List<E> constraints

      - #### provider

            ProviderLabel provider

      - #### isUnsafe

            boolean isUnsafe

      - #### instantiatedFrom

            polyglot.ext.param.types.PClass<Formal extends polyglot.ext.param.types.Param,Actual extends polyglot.types.TypeObject> instantiatedFrom

  - ### Class jif.types.JifSubst_c extends polyglot.ext.param.types.Subst_c<ParamInstance,Param> implements Serializable

    - ### Serialized Fields

      - #### substLabelSubst

            JifSubst_c.SubstLabelSubst substLabelSubst

        An instance of the nested class `SubstLabelSubst`, to be used by `substLabel(Label)` and `substPrincipal(Principal)`.

  - ### Class jif.types.JifSubst_c.SubstLabelSubst extends LabelSubstitution implements Serializable

  - ### Class jif.types.JifSubstClassType_c extends polyglot.ext.param.types.SubstClassType_c<ParamInstance,Param> implements Serializable

  - ### Class jif.types.LabeledType_c extends polyglot.types.Type_c implements Serializable

    - ### Serialized Fields

      - #### typePart

            polyglot.types.Type typePart

      - #### labelPart

            Label labelPart

  - ### Class jif.types.LabelLeAssertion_c extends polyglot.types.TypeObject_c implements Serializable

    - ### Serialized Fields

      - #### toJava

            LabelLeAssertionToJavaExpr toJava

      - #### lhs

            Label lhs

      - #### rhs

            Label rhs

  - ### Class jif.types.Param_c extends polyglot.types.TypeObject_c implements Serializable

  - ### Class jif.types.ParamInstance_c extends polyglot.types.VarInstance_c implements Serializable

    - ### Serialization Methods

      - #### readObject

            protected void readObject(java.io.ObjectInputStream in)
                               throws java.io.IOException,
                                      java.lang.ClassNotFoundException

        Throws:
          `java.io.IOException`
          `java.lang.ClassNotFoundException`

      - #### writeObject

            protected void writeObject(java.io.ObjectOutputStream out)
                                throws java.io.IOException

        Throws:
          `java.io.IOException`

    - ### Serialized Fields

      - #### container

            JifClassType container

      - #### kind

            ParamInstance.Kind kind

  - ### Class jif.types.ParamInstance.Kind extends polyglot.util.Enum implements Serializable

    - ### Serialized Fields

      - #### isPrincipal

            boolean isPrincipal

      - #### isInvariantLabel

            boolean isInvariantLabel

      - #### isCovariantLabel

            boolean isCovariantLabel

  - ### Class jif.types.Path.FixedPath extends polyglot.util.Enum implements Serializable

  - ### Class jif.types.PrincipalInstance_c extends polyglot.types.VarInstance_c implements Serializable

    - ### Serialized Fields

      - #### principal

            ExternalPrincipal principal

  - ### Class jif.types.SemanticDetailedException extends polyglot.types.SemanticException implements Serializable

  - ### Class jif.types.UnknownParam_c extends Param_c implements Serializable

  - ### Class jif.types.UnsatisfiableConstraintException extends polyglot.types.SemanticException implements Serializable

    - ### Serialized Fields

      - #### solver

            AbstractSolver solver

      - #### failure

            Equation failure

      - #### snapshot

            FailedConstraintSnapshot snapshot

- ## Package jif.types.label

  - ### Class jif.types.label.AccessPath extends java.lang.Object implements Serializable

    - ### Serialized Fields

      - #### position

            polyglot.util.Position position

  - ### Class jif.types.label.AccessPathClass extends AccessPathRoot implements Serializable

    - ### Serialized Fields

      - #### ct

            polyglot.types.ClassType ct

  - ### Class jif.types.label.AccessPathConstant extends AccessPathRoot implements Serializable

    - ### Serialized Fields

      - #### constantValue

            java.lang.Object constantValue

        Either a jif.types.label.Label or a jif.types.principal.Principal

      - #### type

            polyglot.types.Type type

  - ### Class jif.types.label.AccessPathField extends AccessPath implements Serializable

    - ### Serialized Fields

      - #### fi

            polyglot.types.FieldInstance fi

      - #### fieldName

            java.lang.String fieldName

      - #### path

            AccessPath path

      - #### neverNull

            boolean neverNull

  - ### Class jif.types.label.AccessPathLocal extends AccessPathRoot implements Serializable

    - ### Serialized Fields

      - #### li

            polyglot.types.LocalInstance li

      - #### name

            java.lang.String name

      - #### neverNull

            boolean neverNull

  - ### Class jif.types.label.AccessPathRoot extends AccessPath implements Serializable

  - ### Class jif.types.label.AccessPathThis extends AccessPathRoot implements Serializable

    - ### Serialized Fields

      - #### ct

            polyglot.types.ClassType ct

  - ### Class jif.types.label.AccessPathUninterpreted extends AccessPathRoot implements Serializable

    - ### Serialized Fields

      - #### expr

            java.lang.String expr

      - #### allowSubst

            boolean allowSubst

  - ### Class jif.types.label.ArgLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### vi

            polyglot.types.VarInstance vi

      - #### ci

            polyglot.types.CodeInstance ci

      - #### name

            java.lang.String name

      - #### upperBound

            Label upperBound

  - ### Class jif.types.label.ConfProjectionPolicy_c extends Policy_c implements Serializable

    - ### Serialized Fields

      - #### label

            Label label

  - ### Class jif.types.label.CovariantParamLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### paramInstance

            ParamInstance paramInstance

  - ### Class jif.types.label.DynamicLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### path

            AccessPath path

  - ### Class jif.types.label.IntegProjectionPolicy_c extends Policy_c implements Serializable

    - ### Serialized Fields

      - #### label

            Label label

  - ### Class jif.types.label.JoinConfPolicy_c extends JoinPolicy_c<ConfPolicy> implements Serializable

  - ### Class jif.types.label.JoinIntegPolicy_c extends JoinPolicy_c<IntegPolicy> implements Serializable

  - ### Class jif.types.label.JoinLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### components

            java.util.Set<E> components

      - #### normalized

            Label normalized

  - ### Class jif.types.label.JoinPolicy_c extends Policy_c implements Serializable

    - ### Serialized Fields

      - #### joinComponents

            java.util.Set<E> joinComponents

      - #### hashCode

            java.lang.Integer hashCode

  - ### Class jif.types.label.Label_c extends Param_c implements Serializable

    - ### Serialized Fields

      - #### description

            java.lang.String description

      - #### toJava

            LabelToJavaExpr toJava

      - #### variables

            java.util.Set<E> variables

      - #### simplified

            Label simplified

  - ### Class jif.types.label.MeetConfPolicy_c extends MeetPolicy_c<ConfPolicy> implements Serializable

  - ### Class jif.types.label.MeetIntegPolicy_c extends MeetPolicy_c<IntegPolicy> implements Serializable

  - ### Class jif.types.label.MeetLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### components

            java.util.Set<E> components

      - #### normalized

            Label normalized

  - ### Class jif.types.label.MeetPolicy_c extends Policy_c implements Serializable

    - ### Serialized Fields

      - #### meetComponents

            java.util.Set<E> meetComponents

      - #### hashCode

            java.lang.Integer hashCode

  - ### Class jif.types.label.NotTaken_c extends Label_c implements Serializable

  - ### Class jif.types.label.PairLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### confPolicy

            ConfPolicy confPolicy

      - #### integPolicy

            IntegPolicy integPolicy

  - ### Class jif.types.label.ParamLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### paramInstance

            ParamInstance paramInstance

  - ### Class jif.types.label.Policy_c extends polyglot.types.TypeObject_c implements Serializable

    - ### Serialized Fields

      - #### simplified

            Policy simplified

  - ### Class jif.types.label.ProviderLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### classType

            JifClassType classType

        The class that this is labelling.

      - #### isTrusted

            boolean isTrusted

  - ### Class jif.types.label.ReaderPolicy_c extends Policy_c implements Serializable

    - ### Serialized Fields

      - #### owner

            Principal owner

      - #### reader

            Principal reader

  - ### Class jif.types.label.ThisLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### ct

            polyglot.types.ReferenceType ct

      - #### fullName

            java.lang.String fullName

  - ### Class jif.types.label.UnknownLabel_c extends Label_c implements Serializable

  - ### Class jif.types.label.VarLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### name

            java.lang.String name

      - #### mustRuntimeRepresentable

            boolean mustRuntimeRepresentable

        Does whatever this variable resolves to need to be runtime representable?

  - ### Class jif.types.label.WriterPolicy_c extends Policy_c implements Serializable

    - ### Serialized Fields

      - #### owner

            Principal owner

      - #### writer

            Principal writer

  - ### Class jif.types.label.WritersToReadersLabel_c extends Label_c implements Serializable

    - ### Serialized Fields

      - #### label

            Label label

- ## Package jif.types.principal

  - ### Class jif.types.principal.BottomPrincipal_c extends Principal_c implements Serializable

  - ### Class jif.types.principal.ConjunctivePrincipal_c extends Principal_c implements Serializable

    - ### Serialized Fields

      - #### conjuncts

            java.util.Set<E> conjuncts

  - ### Class jif.types.principal.DisjunctivePrincipal_c extends Principal_c implements Serializable

    - ### Serialized Fields

      - #### disjuncts

            java.util.Set<E> disjuncts

  - ### Class jif.types.principal.DynamicPrincipal_c extends Principal_c implements Serializable

    - ### Serialized Fields

      - #### path

            AccessPath path

  - ### Class jif.types.principal.ExternalPrincipal_c extends Principal_c implements Serializable

    - ### Serialized Fields

      - #### name

            java.lang.String name

  - ### Class jif.types.principal.ParamPrincipal_c extends Principal_c implements Serializable

    - ### Serialized Fields

      - #### paramInstance

            ParamInstance paramInstance

  - ### Class jif.types.principal.Principal_c extends Param_c implements Serializable

    - ### Serialized Fields

      - #### toJava

            PrincipalToJavaExpr toJava

      - #### variables

            java.util.Set<E> variables

  - ### Class jif.types.principal.TopPrincipal_c extends Principal_c implements Serializable

  - ### Class jif.types.principal.UnknownPrincipal_c extends Principal_c implements Serializable

  - ### Class jif.types.principal.VarPrincipal_c extends Principal_c implements Serializable

    - ### Serialized Fields

      - #### name

            java.lang.String name

      - #### mustRuntimeRepresentable

            boolean mustRuntimeRepresentable

        Does whatever this variable resolves to need to be runtime representable?

      - #### description

            java.lang.String description