protected List<PMultipleBind> stateInvBinds(AClassInvariantDefinition node) { List<PMultipleBind> binds = new LinkedList<PMultipleBind>(); for (PDefinition p : node.getClassDefinition().getDefinitions()) { if (p instanceof AInstanceVariableDefinition) { binds.add(getMultipleTypeBind(p.getType().clone(), p.getName().clone())); } } return binds; }
public StateInvariantObligation(AClassInvariantDefinition def, IPOContextStack ctxt, IPogAssistantFactory af) throws AnalysisException { super(def, POType.STATE_INV_INIT, ctxt, def.getLocation(), af); assistantFactory = af; // After instance variable initializers stitch = invDefs(def.getClassDefinition()); valuetree.setPredicate(ctxt.getPredWithContext(stitch)); }
/** * Called by the {@link AClassInvariantDefinition} node from {@link AClassInvariantDefinition#apply(IAnalysis)}. * @param node the calling {@link AClassInvariantDefinition} node */ public void caseAClassInvariantDefinition(AClassInvariantDefinition node, Q question) throws AnalysisException { _visitedNodes.add(node); inAClassInvariantDefinition(node, question); if(node.getName() != null ) { node.getName().apply(this, question); } if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) { node.getClassDefinition().apply(this, question); } if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) { node.getAccess().apply(this, question); } if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this, question); } if(node.getExpression() != null && !_visitedNodes.contains(node.getExpression())) { node.getExpression().apply(this, question); } outAClassInvariantDefinition(node, question); }
/** * Called by the {@link AClassInvariantDefinition} node from {@link AClassInvariantDefinition#apply(IAnalysis)}. * @param node the calling {@link AClassInvariantDefinition} node */ public void caseAClassInvariantDefinition(AClassInvariantDefinition node) throws AnalysisException { _visitedNodes.add(node); inAClassInvariantDefinition(node); if(node.getName() != null ) { node.getName().apply(this); } if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) { node.getClassDefinition().apply(this); } if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) { node.getAccess().apply(this); } if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this); } if(node.getExpression() != null && !_visitedNodes.contains(node.getExpression())) { node.getExpression().apply(this); } outAClassInvariantDefinition(node); }
/** * Called by the {@link AClassInvariantDefinition} node from {@link AClassInvariantDefinition#apply(IPOFAnalysis)}. * @param node the calling {@link AClassInvariantDefinition} node */ public void caseAClassInvariantDefinition(AClassInvariantDefinition node) throws AnalysisException { _visitedNodes.add(node); inAClassInvariantDefinition(node); if(node.getName() != null ) { node.getName().apply(this); } if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) { node.getClassDefinition().apply(this); } if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) { node.getAccess().apply(this); } if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this); } if(node.getExpression() != null && !_visitedNodes.contains(node.getExpression())) { node.getExpression().apply(this); } outAClassInvariantDefinition(node); }
if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) mergeReturns(retVal,node.getClassDefinition().apply(this, question));
if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) mergeReturns(retVal,node.getClassDefinition().apply(this));
if (!node.getClassDefinition().getHasContructors()) for (PDefinition pdef : node.getClassDefinition().getDefinitions())