package org.overture.pog.visitors; import java.util.LinkedList; import java.util.List; import org.overture.ast.analysis.AnalysisException; import org.overture.ast.analysis.AnswerAdaptor; import org.overture.ast.definitions.AClassClassDefinition; import org.overture.ast.definitions.AClassInvariantDefinition; import org.overture.ast.definitions.PDefinition; import org.overture.ast.expressions.PExp; import org.overture.ast.node.INode; public class VdmInvExpGetVisitor extends AnswerAdaptor<List<PExp>> implements IInvExpGetVisitor { IInvExpGetVisitor mainVisitor; public VdmInvExpGetVisitor() { mainVisitor = this; } public VdmInvExpGetVisitor(IInvExpGetVisitor mainVisitor) { this.mainVisitor = mainVisitor; } @Override public List<PExp> createNewReturnValue(INode node) throws AnalysisException { return new LinkedList<PExp>(); } @Override public List<PExp> createNewReturnValue(Object node) throws AnalysisException { return new LinkedList<PExp>(); } @Override public List<PExp> caseAClassClassDefinition(AClassClassDefinition node) throws AnalysisException { List<PExp> r = new LinkedList<PExp>(); for (PDefinition p : node.getDefinitions()) { r.addAll(p.apply(mainVisitor)); } return r; } @Override public List<PExp> caseAClassInvariantDefinition( AClassInvariantDefinition node) throws AnalysisException { List<PExp> r = new LinkedList<PExp>(); r.add(node.getExpression()); return r; } }