public OperationValue(AImplicitOperationDefinition def, FunctionValue precondition, FunctionValue postcondition, AStateDefinition state, IInterpreterAssistantFactory assistantFactory) { this(def, precondition, postcondition, state, assistantFactory.createPAccessSpecifierAssistant().isAsync(def.getAccess())); }
return af.createPAccessSpecifierAssistant().isPublic(field.getAccess()); } else return !af.createPAccessSpecifierAssistant().isPrivate(field.getAccess()); } else return af.createPAccessSpecifierAssistant().isPublic(field.getAccess()) && (needStatic ? af.createPAccessSpecifierAssistant().isStatic(field.getAccess()) : true);
@Override public PAccessSpecifierAssistantTC createPAccessSpecifierAssistant() { return new PAccessSpecifierAssistantTC(this); }
local.setStatic(question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())); local.setEnclosingDefinition(node); local.setFunctional(false); if (!question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())) if (question.assistantFactory.createPAccessSpecifierAssistant().isAsync(node.getAccess()) || question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess()) || node.getAccess().getPure()) if (question.assistantFactory.createPAccessSpecifierAssistant().isAsync(node.getAccess()) && !question.assistantFactory.createPTypeAssistant().isType(((AOperationType) node.getType()).getResult(), AVoidType.class)) if (node.getAccess().getPure() && question.assistantFactory.createPAccessSpecifierAssistant().isAsync(node.getAccess())) if (assist.isPrivate(node.getAccess()) && node.getBody() instanceof ASubclassResponsibilityStm)
@SuppressWarnings("unchecked") public AExplicitFunctionDefinition getPreDefinition( AExplicitOperationDefinition d, Environment base) { List<List<PPattern>> parameters = new Vector<List<PPattern>>(); List<PPattern> plist = new Vector<PPattern>(); plist.addAll((List<PPattern>) d.getParameterPatterns().clone()); if (d.getState() != null) { plist.add(AstFactory.newAIdentifierPattern(d.getState().getName().clone())); } else if (base.isVDMPP() && !af.createPAccessSpecifierAssistant().isStatic(d.getAccess())) { plist.add(AstFactory.newAIdentifierPattern(d.getName().getSelfName())); } parameters.add(plist); APreOpExp preop = AstFactory.newAPreOpExp(d.getName().clone(), d.getPrecondition(), null, d.getState()); AExplicitFunctionDefinition def = AstFactory.newAExplicitFunctionDefinition(d.getName().getPreName(d.getPrecondition().getLocation()), NameScope.GLOBAL, null, af.createAOperationTypeAssistant().getPreType((AOperationType) d.getType(), d.getState(), d.getClassDefinition(), af.createPAccessSpecifierAssistant().isStatic(d.getAccess())), parameters, preop, null, null, false, null); // Operation precondition functions are effectively not static as // their expression can directly refer to instance variables, even // though at runtime these are passed via a "self" parameter. def.setAccess(af.createPAccessSpecifierAssistant().getStatic(def, false)); def.setClassDefinition(d.getClassDefinition()); return def; }
public boolean isStatic(PDefinition fdef) { return af.createPAccessSpecifierAssistant().isStatic(fdef.getAccess()); }
local.setStatic(question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())); local.setEnclosingDefinition(node); local.setFunctional(true); && !question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())) if (assist.isPrivate(node.getAccess()) && node.getBody() instanceof ASubclassResponsibilityExp) post.setStatic(question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())); post.setEnclosingDefinition(node); post.setFunctional(true);
@Override public PDefinition findType(ILexNameToken name, String fromModule) { PDefinition def = af.createSClassDefinitionAssistant().findType(classes, name); if (def != null && af.createPAccessSpecifierAssistant().isPublic(def.getAccess())) { return def; } return outer == null ? null : outer.findType(name, null); }
public boolean narrowerThan(AAccessSpecifierAccessSpecifier access, AAccessSpecifierAccessSpecifier other) { return narrowerThan(access.getAccess(), other.getAccess()); }
d.setAccess(question.assistantFactory.createPAccessSpecifierAssistant().getStatic(d, true));
if (!af.createPAccessSpecifierAssistant().isPrivate(d.getAccess()))
local.setStatic(question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())); local.setEnclosingDefinition(node); local.setFunctional(false); if (question.assistantFactory.createPAccessSpecifierAssistant().isAsync(node.getAccess()) || question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess()) || node.getAccess().getPure()) && !question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())) if (question.assistantFactory.createPAccessSpecifierAssistant().isAsync(node.getAccess()) && !question.assistantFactory.createPTypeAssistant().isType(((AOperationType) node.getType()).getResult(), AVoidType.class)) question.assistantFactory.createPAccessSpecifierAssistant().isAsync(node.getAccess())) if (assist.isPrivate(node.getAccess()) && node.getBody() instanceof ASubclassResponsibilityStm) post.setStatic(question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())); post.setEnclosingDefinition(node.getPostdef()); post.setFunctional(true);
@SuppressWarnings("unchecked") public AExplicitFunctionDefinition getPreDefinition( AImplicitOperationDefinition d, Environment base) { List<List<PPattern>> parameters = new Vector<List<PPattern>>(); List<PPattern> plist = new Vector<PPattern>(); for (APatternListTypePair pl : (LinkedList<APatternListTypePair>) d.getParameterPatterns()) { plist.addAll((Collection<PPattern>) pl.getPatterns().clone()); } AStateDefinition state = d.getState(); if (state != null) { plist.add(AstFactory.newAIdentifierPattern(state.getName().clone())); } else if (base.isVDMPP() && !af.createPAccessSpecifierAssistant().isStatic(d.getAccess())) { plist.add(AstFactory.newAIdentifierPattern(d.getName().getSelfName())); } parameters.add(plist); PExp preop = AstFactory.newAPreOpExp(d.getName().clone(), d.getPrecondition(), d.getErrors(), d.getState()); AExplicitFunctionDefinition def = AstFactory.newAExplicitFunctionDefinition(d.getName().getPreName(d.getPrecondition().getLocation()), NameScope.GLOBAL, null, af.createAOperationTypeAssistant().getPreType((AOperationType) d.getType(), state, d.getClassDefinition(), af.createPAccessSpecifierAssistant().isStatic(d.getAccess())), parameters, preop, null, null, false, null); // Operation precondition functions are effectively not static as // their expression can directly refer to instance variables, even // though at runtime these are passed via a "self" parameter. def.setAccess(af.createPAccessSpecifierAssistant().getStatic(d, false)); def.setClassDefinition(d.getClassDefinition()); return def; }
public void initializedCheck(AInstanceVariableDefinition ivd) { if (!ivd.getInitialized() && !af.createPAccessSpecifierAssistant().isStatic(ivd.getAccess())) { TypeCheckerErrors.warning(5001, "Instance variable '" + ivd.getName() + "' is not initialized", ivd.getLocation(), ivd); } } }
local.setStatic(question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())); local.setEnclosingDefinition(node); local.setFunctional(true); && !question.assistantFactory.createPAccessSpecifierAssistant().isStatic(node.getAccess())) if (assist.isPrivate(node.getAccess()) && node.getBody() instanceof ASubclassResponsibilityExp)
@Override public PDefinition findName(ILexNameToken name, NameScope scope) { PDefinition def = af.createSClassDefinitionAssistant().findName(classes, name, scope); if (def != null && af.createPAccessSpecifierAssistant().isPublic(def.getAccess()) && !ExcludedDefinitions.isExcluded(def)) { return def; } return outer == null ? null : outer.findName(name, scope); }
public boolean narrowerThanBaseCase(PType type, AAccessSpecifierAccessSpecifier accessSpecifier) { if (type.getDefinitions() != null) { boolean result = false; for (PDefinition d : type.getDefinitions()) { result = result || af.createPAccessSpecifierAssistant().narrowerThan(d.getAccess(), accessSpecifier); } return result; } else { return false; } }
d.setAccess(question.assistantFactory.createPAccessSpecifierAssistant().getStatic(d, true));
if (!af.createPAccessSpecifierAssistant().isStatic(d.getAccess())) PExp postop = AstFactory.newAPostOpExp(d.getName().clone(), d.getPrecondition(), d.getPostcondition(), d.getErrors(), d.getState()); AExplicitFunctionDefinition def = AstFactory.newAExplicitFunctionDefinition(d.getName().getPostName(d.getPostcondition().getLocation()), NameScope.GLOBAL, null, af.createAOperationTypeAssistant().getPostType((AOperationType) d.getType(), state, d.getClassDefinition(), af.createPAccessSpecifierAssistant().isStatic(d.getAccess())), parameters, postop, null, null, false, null); def.setAccess(af.createPAccessSpecifierAssistant().getStatic(d, false)); def.setClassDefinition(d.getClassDefinition()); return def;
@Override public NameValuePairList caseAExplicitOperationDefinition( AExplicitOperationDefinition def, Context initialContext) throws AnalysisException { NameValuePairList nvl = new NameValuePairList(); FunctionValue prefunc = def.getPredef() == null ? null : new FunctionValue(def.getPredef(), null, null, null); FunctionValue postfunc = def.getPostdef() == null ? null : new FunctionValue(def.getPostdef(), null, null, null); OperationValue op = new OperationValue(def, prefunc, postfunc, def.getState(), af); op.isConstructor = def.getIsConstructor(); op.isStatic = af.createPAccessSpecifierAssistant().isStatic(def.getAccess()); nvl.add(new NameValuePair(def.getName(), op)); if (def.getPredef() != null) { prefunc.isStatic = af.createPAccessSpecifierAssistant().isStatic(def.getAccess()); nvl.add(new NameValuePair(def.getPredef().getName(), prefunc)); } if (def.getPostdef() != null) { postfunc.isStatic = af.createPAccessSpecifierAssistant().isStatic(def.getAccess()); nvl.add(new NameValuePair(def.getPostdef().getName(), postfunc)); } return nvl; }