// implements the interface method public Environment createClassifierContext(Environment parent, Type context) { Environment result = createEnvironment(parent); Variable self = parent.getOCLFactory().createVariable(); self.setName(Environment.SELF_VARIABLE_NAME); self.setType(context); // result.addElement(self.getName(), self, true); result.setSelfVariable(self); return result; }
// implements the interface method public Environment createOperationContext(Environment parent, Operation operation) { Environment result = createEnvironment(parent); if (result instanceof AbstractEnvironment) { ((AbstractEnvironment) result).setContextOperation(operation); } OCLFactory oclFactory = parent.getOCLFactory(); for (Parameter next : operation.getOwnedParameters()) { // ensure that we use the OCL primitive types wherever possible Variable var = oclFactory.createVariable(); var.setName(next.getName()); var.setType(next.getType()); var.setRepresentedParameter(next); result.addElement(var.getName(), var, true); } return result; }