public RowSourceHandler(ContainerHandler parent, RowSource rowSource) throws ParserException { this.parent = parent; OCL ocl = OCL.newInstance(parent.getEnvironment()); Helper helper = ocl.createOCLHelper(); OCLExpression expression = helper.createQuery(rowSource.getExpression()); query = ocl.createQuery(expression); environment = parent.getEnvironment().getFactory().createEnvironment(parent.getEnvironment()); Variable variable = EcoreFactory.eINSTANCE.createVariable(); variable.setType(((CollectionType) expression.getType()).getElementType()); varName = rowSource.getVar(); environment.addElement(varName, variable, true); }