Java 类org.eclipse.emf.ecore.EFactory 实例源码

项目:DarwinSPL    文件:HyexpressionLayoutUtil.java   
public EObject createLayoutInformationModelElement(eu.hyvar.feature.expression.resource.hyexpression.mopp.HyexpressionLayoutInformation layoutInformation, EPackage layoutPackage) {
    EFactory factory = layoutPackage.getEFactoryInstance();
    Object object = layoutInformation.getObject(null, false);
    eu.hyvar.feature.expression.resource.hyexpression.grammar.HyexpressionSyntaxElement syntaxElement = layoutInformation.getSyntaxElement();
    EClass layoutInformationEClass = null;
    EObject layoutInformationModelElement = null;
    if (object == null) {
        // keyword
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(KEYWORD_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    } else if (object instanceof EObject) {
        // reference
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(REFERENCE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
        layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(OBJECT_EATTRIBUTE_NAME), object);
    } else {
        // attribute
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(ATTRIBUTE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    }
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(START_OFFSET_EATTRIBUTE_NAME), layoutInformation.getStartOffset());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(HIDDEN_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getHiddenTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(VISIBLE_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getVisibleTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(SYNTAX_ELEMENT_ID_EATTRIBUTE_NAME), eu.hyvar.feature.expression.resource.hyexpression.grammar.HyexpressionGrammarInformationProvider.getSyntaxElementID(syntaxElement));
    return layoutInformationModelElement;
}
项目:DarwinSPL    文件:HymanifestLayoutUtil.java   
public EObject createLayoutInformationModelElement(eu.hyvar.mspl.manifest.resource.hymanifest.mopp.HymanifestLayoutInformation layoutInformation, EPackage layoutPackage) {
    EFactory factory = layoutPackage.getEFactoryInstance();
    Object object = layoutInformation.getObject(null, false);
    eu.hyvar.mspl.manifest.resource.hymanifest.grammar.HymanifestSyntaxElement syntaxElement = layoutInformation.getSyntaxElement();
    EClass layoutInformationEClass = null;
    EObject layoutInformationModelElement = null;
    if (object == null) {
        // keyword
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(KEYWORD_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    } else if (object instanceof EObject) {
        // reference
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(REFERENCE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
        layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(OBJECT_EATTRIBUTE_NAME), object);
    } else {
        // attribute
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(ATTRIBUTE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    }
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(START_OFFSET_EATTRIBUTE_NAME), layoutInformation.getStartOffset());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(HIDDEN_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getHiddenTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(VISIBLE_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getVisibleTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(SYNTAX_ELEMENT_ID_EATTRIBUTE_NAME), eu.hyvar.mspl.manifest.resource.hymanifest.grammar.HymanifestGrammarInformationProvider.getSyntaxElementID(syntaxElement));
    return layoutInformationModelElement;
}
项目:DarwinSPL    文件:HymappingLayoutUtil.java   
public EObject createLayoutInformationModelElement(eu.hyvar.feature.mapping.resource.hymapping.mopp.HymappingLayoutInformation layoutInformation, EPackage layoutPackage) {
    EFactory factory = layoutPackage.getEFactoryInstance();
    Object object = layoutInformation.getObject(null, false);
    eu.hyvar.feature.mapping.resource.hymapping.grammar.HymappingSyntaxElement syntaxElement = layoutInformation.getSyntaxElement();
    EClass layoutInformationEClass = null;
    EObject layoutInformationModelElement = null;
    if (object == null) {
        // keyword
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(KEYWORD_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    } else if (object instanceof EObject) {
        // reference
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(REFERENCE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
        layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(OBJECT_EATTRIBUTE_NAME), object);
    } else {
        // attribute
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(ATTRIBUTE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    }
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(START_OFFSET_EATTRIBUTE_NAME), layoutInformation.getStartOffset());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(HIDDEN_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getHiddenTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(VISIBLE_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getVisibleTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(SYNTAX_ELEMENT_ID_EATTRIBUTE_NAME), eu.hyvar.feature.mapping.resource.hymapping.grammar.HymappingGrammarInformationProvider.getSyntaxElementID(syntaxElement));
    return layoutInformationModelElement;
}
项目:DarwinSPL    文件:HyconstraintsLayoutUtil.java   
public EObject createLayoutInformationModelElement(eu.hyvar.feature.constraint.resource.hyconstraints.mopp.HyconstraintsLayoutInformation layoutInformation, EPackage layoutPackage) {
    EFactory factory = layoutPackage.getEFactoryInstance();
    Object object = layoutInformation.getObject(null, false);
    eu.hyvar.feature.constraint.resource.hyconstraints.grammar.HyconstraintsSyntaxElement syntaxElement = layoutInformation.getSyntaxElement();
    EClass layoutInformationEClass = null;
    EObject layoutInformationModelElement = null;
    if (object == null) {
        // keyword
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(KEYWORD_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    } else if (object instanceof EObject) {
        // reference
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(REFERENCE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
        layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(OBJECT_EATTRIBUTE_NAME), object);
    } else {
        // attribute
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(ATTRIBUTE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    }
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(START_OFFSET_EATTRIBUTE_NAME), layoutInformation.getStartOffset());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(HIDDEN_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getHiddenTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(VISIBLE_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getVisibleTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(SYNTAX_ELEMENT_ID_EATTRIBUTE_NAME), eu.hyvar.feature.constraint.resource.hyconstraints.grammar.HyconstraintsGrammarInformationProvider.getSyntaxElementID(syntaxElement));
    return layoutInformationModelElement;
}
项目:DarwinSPL    文件:HyvalidityformulaLayoutUtil.java   
public EObject createLayoutInformationModelElement(eu.hyvar.context.contextValidity.resource.hyvalidityformula.mopp.HyvalidityformulaLayoutInformation layoutInformation, EPackage layoutPackage) {
    EFactory factory = layoutPackage.getEFactoryInstance();
    Object object = layoutInformation.getObject(null, false);
    eu.hyvar.context.contextValidity.resource.hyvalidityformula.grammar.HyvalidityformulaSyntaxElement syntaxElement = layoutInformation.getSyntaxElement();
    EClass layoutInformationEClass = null;
    EObject layoutInformationModelElement = null;
    if (object == null) {
        // keyword
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(KEYWORD_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    } else if (object instanceof EObject) {
        // reference
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(REFERENCE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
        layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(OBJECT_EATTRIBUTE_NAME), object);
    } else {
        // attribute
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(ATTRIBUTE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    }
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(START_OFFSET_EATTRIBUTE_NAME), layoutInformation.getStartOffset());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(HIDDEN_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getHiddenTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(VISIBLE_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getVisibleTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(SYNTAX_ELEMENT_ID_EATTRIBUTE_NAME), eu.hyvar.context.contextValidity.resource.hyvalidityformula.grammar.HyvalidityformulaGrammarInformationProvider.getSyntaxElementID(syntaxElement));
    return layoutInformationModelElement;
}
项目:DarwinSPL    文件:HydatavalueLayoutUtil.java   
public EObject createLayoutInformationModelElement(eu.hyvar.dataValues.resource.hydatavalue.mopp.HydatavalueLayoutInformation layoutInformation, EPackage layoutPackage) {
    EFactory factory = layoutPackage.getEFactoryInstance();
    Object object = layoutInformation.getObject(null, false);
    eu.hyvar.dataValues.resource.hydatavalue.grammar.HydatavalueSyntaxElement syntaxElement = layoutInformation.getSyntaxElement();
    EClass layoutInformationEClass = null;
    EObject layoutInformationModelElement = null;
    if (object == null) {
        // keyword
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(KEYWORD_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    } else if (object instanceof EObject) {
        // reference
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(REFERENCE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
        layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(OBJECT_EATTRIBUTE_NAME), object);
    } else {
        // attribute
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(ATTRIBUTE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    }
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(START_OFFSET_EATTRIBUTE_NAME), layoutInformation.getStartOffset());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(HIDDEN_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getHiddenTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(VISIBLE_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getVisibleTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(SYNTAX_ELEMENT_ID_EATTRIBUTE_NAME), eu.hyvar.dataValues.resource.hydatavalue.grammar.HydatavalueGrammarInformationProvider.getSyntaxElementID(syntaxElement));
    return layoutInformationModelElement;
}
项目:DarwinSPL    文件:DwprofileLayoutUtil.java   
public EObject createLayoutInformationModelElement(de.darwinspl.preferences.resource.dwprofile.mopp.DwprofileLayoutInformation layoutInformation, EPackage layoutPackage) {
    EFactory factory = layoutPackage.getEFactoryInstance();
    Object object = layoutInformation.getObject(null, false);
    de.darwinspl.preferences.resource.dwprofile.grammar.DwprofileSyntaxElement syntaxElement = layoutInformation.getSyntaxElement();
    EClass layoutInformationEClass = null;
    EObject layoutInformationModelElement = null;
    if (object == null) {
        // keyword
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(KEYWORD_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    } else if (object instanceof EObject) {
        // reference
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(REFERENCE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
        layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(OBJECT_EATTRIBUTE_NAME), object);
    } else {
        // attribute
        layoutInformationEClass = (EClass) layoutPackage.getEClassifier(ATTRIBUTE_LAYOUT_INFORMATION_ECLASS_NAME);
        layoutInformationModelElement = factory.create(layoutInformationEClass);
    }
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(START_OFFSET_EATTRIBUTE_NAME), layoutInformation.getStartOffset());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(HIDDEN_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getHiddenTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(VISIBLE_TOKEN_TEXT_EATTRIBUTE_NAME), layoutInformation.getVisibleTokenText());
    layoutInformationModelElement.eSet(layoutInformationEClass.getEStructuralFeature(SYNTAX_ELEMENT_ID_EATTRIBUTE_NAME), de.darwinspl.preferences.resource.dwprofile.grammar.DwprofileGrammarInformationProvider.getSyntaxElementID(syntaxElement));
    return layoutInformationModelElement;
}
项目:xtext-core    文件:SerializationUtilTest.java   
@Test
public void testFillIdToEObjectMap() {
    EPackage pack = EcoreFactory.eINSTANCE.createEPackage();
    EClass root = createEClass(pack, "Root");
    EClass someType = createEClass(pack, "SomeType");

    EReference ref1 = addEReference(root, someType, "ref1", false);
    EReference ref2 = addEReference(root, someType, "ref2", true);

    EFactory factory = pack.getEFactoryInstance();
    EObject rootObject = factory.create(root);
    EObject someTypeObject1 = factory.create(someType);
    EObject someTypeObject2 = factory.create(someType);
    rootObject.eSet(ref1, someTypeObject1);
    rootObject.eSet(ref2, someTypeObject2);

    List<EObject> map = new ArrayList<>();
    SerializationUtil.fillIdToEObjectMap(rootObject, map);
    assertTrue(map.contains(rootObject));
    assertTrue(map.contains(someTypeObject1));
    assertFalse(map.contains(someTypeObject2));
    assertEquals(2, map.size());
}
项目:dsl-devkit    文件:AbstractTypeProviderTest.java   
@Before
public void init() {
  EcoreFactory modelFactory = EcoreFactory.eINSTANCE;
  testModelPackage = modelFactory.createEPackage();
  testModelPackage.setName("TypeProviderTestEPackage");
  testModelPackage.setNsPrefix("typeprovidertestpackage");
  testModelPackage.setNsURI("http://testabstracttype");
  EFactory instanceFactory = testModelPackage.getEFactoryInstance();
  EClass clazz = createEClass("ExpressionContainer");
  expressionContainerReference = modelFactory.createEReference();
  clazz.getEStructuralFeatures().add(expressionContainerReference);
  expressionContainerReference.setName("expression");
  expressionContainerReference.setEType(typeModelPackage.getIExpression());
  expressionContainerReference.setContainment(true);
  expression1Container = instanceFactory.create(clazz);
  expression1Container.eSet(expressionContainerReference, expression1);
  expression2Container = instanceFactory.create(clazz);
  expression2Container.eSet(expressionContainerReference, expression2);
  expression3Container = instanceFactory.create(clazz);
  expression3Container.eSet(expressionContainerReference, expression3);
}
项目:mondo-integration    文件:SlotDecodingUtils.java   
public static Object setFromSlot(final EFactory eFactory, final EClass eClass, final EObject eObject, final AttributeSlot slot) throws IOException {
    final EStructuralFeature feature = eClass.getEStructuralFeature(slot.name);
    if (feature == null) {
        return null;
    }
    if (!feature.isChangeable() || feature.isDerived() && !(eObject instanceof DynamicEStoreEObjectImpl)) {
        return null;
    }
    if (!slot.isSetValue()) {
        return null;
    }

    // isSet=true and many=false means that we should have exactly one value
    final EClassifier eType = feature.getEType();
    if (eType.eContainer() == EcorePackage.eINSTANCE) {
        return fromEcoreType(eClass, eObject, slot, feature, eType);
    } else if (eType instanceof EEnum) {
        return fromEnum(eFactory, eClass, eObject, slot, feature, (EEnum)eType);
    } else {
        return fromInstanceClass(eClass, eObject, slot, feature, eType);
    }
}
项目:mondo-integration    文件:SlotDecodingUtils.java   
private static Object fromEnum(final EFactory eFactory, final EClass eClass,
        final EObject eObject, final AttributeSlot slot,
        final EStructuralFeature feature, final EEnum enumType)
        throws IOException {
    if (!slot.value.isSetVStrings() && !slot.value.isSetVString()) {
        throw new IOException(
            String.format(
                "Expected to receive strings for feature '%s' in type '%s' with many='%s', but did not",
                feature.getName(), eClass.getName(), feature.isMany()));
    } else if (feature.isMany()) {
        final List<Object> literals = new ArrayList<>();
        if (slot.value.isSetVStrings()) {
            for (final String s : slot.value.getVStrings()) {
                literals.add(eFactory.createFromString(enumType, s));
            }
        } else {
            literals.add(eFactory.createFromString(enumType, slot.value.getVString()));
        }
        eObject.eSet(feature, literals);
        return literals;
    } else {
        final Object enumLiteral = eFactory.createFromString(enumType, slot.value.getVString());
        eObject.eSet(feature, enumLiteral);
        return enumLiteral;
    }
}
项目:mondo-integration    文件:HawkResourceImpl.java   
public void fetchAttributes(final Map<String, EObject> objects) throws IOException, HawkInstanceNotFound, HawkInstanceNotRunning, TException {
    final HawkQueryOptions options = new HawkQueryOptions();
    options.setIncludeAttributes(true);
    options.setIncludeReferences(false);
    setEffectiveMetamodelOptions(options, descriptor.getEffectiveMetamodel());

    final List<ModelElement> elems = client.resolveProxies(
        descriptor.getHawkInstance(), new ArrayList<>(objects.keySet()),
        options);

    for (ModelElement me : elems) {
        final EObject object = objects.get(me.id);
        final EFactory eFactory = getResourceSet().getPackageRegistry().getEFactory(me.getMetamodelUri());
        final EClass eClass = getEClass(
                me.getMetamodelUri(), me.getTypeName(),
                getResourceSet().getPackageRegistry());
        for (final AttributeSlot s : me.attributes) {
            SlotDecodingUtils.setFromSlot(eFactory, eClass, object, s);
        }
    }
}
项目:mondo-hawk    文件:SlotDecodingUtils.java   
public static Object setFromSlot(final EFactory eFactory, final EClass eClass, final EObject eObject, final AttributeSlot slot) throws IOException {
    final EStructuralFeature feature = eClass.getEStructuralFeature(slot.name);
    if (feature == null) {
        return null;
    }
    if (!feature.isChangeable() || feature.isDerived() && !(eObject instanceof DynamicEStoreEObjectImpl)) {
        return null;
    }
    if (!slot.isSetValue()) {
        return null;
    }

    // isSet=true and many=false means that we should have exactly one value
    final EClassifier eType = feature.getEType();
    if (eType.eContainer() == EcorePackage.eINSTANCE) {
        return fromEcoreType(eClass, eObject, slot, feature, eType);
    } else if (eType instanceof EEnum) {
        return fromEnum(eFactory, eClass, eObject, slot, feature, (EEnum)eType);
    } else {
        return fromInstanceClass(eClass, eObject, slot, feature, eType);
    }
}
项目:mondo-hawk    文件:SlotDecodingUtils.java   
private static Object fromEnum(final EFactory eFactory, final EClass eClass,
        final EObject eObject, final AttributeSlot slot,
        final EStructuralFeature feature, final EEnum enumType)
        throws IOException {
    if (!slot.value.isSetVStrings() && !slot.value.isSetVString()) {
        throw new IOException(
            String.format(
                "Expected to receive strings for feature '%s' in type '%s' with many='%s', but did not",
                feature.getName(), eClass.getName(), feature.isMany()));
    } else if (feature.isMany()) {
        final List<Object> literals = new ArrayList<>();
        if (slot.value.isSetVStrings()) {
            for (final String s : slot.value.getVStrings()) {
                literals.add(eFactory.createFromString(enumType, s));
            }
        } else {
            literals.add(eFactory.createFromString(enumType, slot.value.getVString()));
        }
        eObject.eSet(feature, literals);
        return literals;
    } else {
        final Object enumLiteral = eFactory.createFromString(enumType, slot.value.getVString());
        eObject.eSet(feature, enumLiteral);
        return enumLiteral;
    }
}
项目:mondo-hawk    文件:HawkResourceImpl.java   
public void fetchAttributes(final Map<String, EObject> objects) throws IOException, HawkInstanceNotFound, HawkInstanceNotRunning, TException {
    final HawkQueryOptions options = new HawkQueryOptions();
    options.setIncludeAttributes(true);
    options.setIncludeReferences(false);
    setEffectiveMetamodelOptions(options, descriptor.getEffectiveMetamodel());

    final List<ModelElement> elems = client.resolveProxies(
        descriptor.getHawkInstance(), new ArrayList<>(objects.keySet()),
        options);

    for (ModelElement me : elems) {
        final EObject object = objects.get(me.id);
        final EFactory eFactory = getResourceSet().getPackageRegistry().getEFactory(me.getMetamodelUri());
        final EClass eClass = getEClass(
                me.getMetamodelUri(), me.getTypeName(),
                getResourceSet().getPackageRegistry());
        for (final AttributeSlot s : me.attributes) {
            SlotDecodingUtils.setFromSlot(eFactory, eClass, object, s);
        }
    }
}
项目:mondo-hawk    文件:AttributeUtils.java   
private static Object setScalarAttribute(final EFactory eFactory, final EObject eObject, final Object value,
        final EStructuralFeature feature) {
    final Object singleValue = normalizeIntoScalar(value);
    if (singleValue == null) {
        eObject.eUnset(feature);
        return null;
    }

    final EClassifier eType = feature.getEType();
    if (eType instanceof EEnum) {
        final EEnum enumType = (EEnum)eType;
        final Object literal = eFactory.createFromString(enumType, singleValue.toString());
        eObject.eSet(feature, literal);
        return literal;
    } else {
        eObject.eSet(feature, singleValue);
        return singleValue;
    }
}
项目:mondo-hawk    文件:AttributeUtils.java   
private static Object setListAttribute(final EFactory eFactory, final EObject eObject, final Object value,
        final EStructuralFeature feature) {
    final EList<Object> manyValue = normalizeIntoList(value);
    if (manyValue == null) {
        eObject.eUnset(feature);
        return null;
    }

    final EClassifier eType = feature.getEType();
    if (eType instanceof EEnum) {
        final EEnum enumType = (EEnum)eType;
        final EList<Object> literals = new BasicEList<>();
        for (final Object o : manyValue) {
            literals.add(eFactory.createFromString(enumType, o.toString()));
        }
        eObject.eSet(feature, literals);
        return literals;
    } else {
        eObject.eSet(feature, manyValue);
        return manyValue;
    }
}
项目:OpenSPIFe    文件:TestJSFormulaEngine.java   
public void testJSFormulaEngine() throws Exception {
    AD.load(URI.createPlatformPluginURI("/gov.nasa.ensemble.core.plan.formula.js/datafiles/TestJSFormulaEngine.dictionary", true));

    EActivityDef referencingActivityDef = AD.getActivityDef("ReferencingActivity");
    assertNotNull(referencingActivityDef);

    EStructuralFeature crewMemberFeature = referencingActivityDef.getEStructuralFeature("crewMember");
    assertNotNull(crewMemberFeature);

    EClass crewMemberDef = (EClass) AD.getEClassifier("CrewMember");
    assertNotNull(crewMemberDef);

    EStructuralFeature busyFeature = crewMemberDef.getEStructuralFeature("busy");
    assertNotNull(busyFeature);

    EFactory factory = crewMemberDef.getEPackage().getEFactoryInstance();
    EObject crewMember = factory.create(crewMemberDef);

    EActivity referencingActivity = PlanFactory.getInstance().createActivity(referencingActivityDef);
    referencingActivity.getData().eSet(crewMemberFeature, crewMember);

    assertReferenceValue(referencingActivity, crewMember, busyFeature, 0);

    crewMember.eSet(busyFeature, 1);
    assertReferenceValue(referencingActivity, crewMember, busyFeature, 1);
}
项目:OpenSPIFe    文件:ResourcefulPlanForPlanDiffTest.java   
private ResourceSet createResourceSet() {

    EFactory factory = AD.getEFactoryInstance();
    ResourceSet resourceSet = sharedResourceSet;
    Resource resourceAsInAFile = resourceSet.createResource(URI.createURI("http://junit/foo.resource"));

    ObjectDef referenceDefinition = AD.getDefinitions(ObjectDef.class).get(0);

    EStructuralFeature idFeature = getEStructuralFeature(referenceDefinition, "id");
    EStructuralFeature nameFeature = getEStructuralFeature(referenceDefinition, "name");

    { int id = 0;
      for (char digitChar : referenceNames) {
          String name = String.valueOf(digitChar);
          EObject referenceInstance = factory.create(referenceDefinition);
          referenceInstance.eSet(idFeature, "Resource id#" + id++);
          referenceInstance.eSet(nameFeature, name);
          resourceAsInAFile.getContents().add(referenceInstance);
          referenceNameToObject.put(name, referenceInstance);
      }
    }
    return resourceSet;
}
项目:OpenSPIFe    文件:DictionaryResourceImpl.java   
@Override
public EClassifier getType(EFactory eFactory, String typeName) {
    if (eFactory != null) {
      EPackage ePackage = eFactory.getEPackage();
      if (extendedMetaData != null) {
        return extendedMetaData.getType(ePackage, typeName);
      } else {
        EClassifier eClass = ePackage.getEClassifier(typeName);
        if (eClass == null && xmlMap != null) {
          return xmlMap.getClassifier(ePackage.getNsURI(), typeName);
        }
        return eClass;
      }
    }
    return null;
}
项目:OpenSPIFe    文件:ADParameterUtils.java   
/**
 * Get the value of the named AD parameter for the activity as a string.
 * Works with several types, not just strings -- enums, for example.
 * @param element
 * @param parameterName
 * @return null if the parameter is not found
 */
public static String getParameterString(EPlanElement element, String parameterName) {
    EObject data = element.getData();
    if (data==null) return null;
    EStructuralFeature feature;
       try {
        feature = getParameterFeature(data, parameterName);
       } catch (UndefinedParameterException e) {
        return null;
       }
    Object object = data.eGet(feature);
    if (object instanceof EEnumLiteral) {
        EEnumLiteral literal = (EEnumLiteral) object;
        return literal.getName();
    }
    EClassifier type = feature.getEType();
    if (type instanceof EDataType) {
        EDataType dataType = (EDataType) type;
        EPackage typePackage = dataType.getEPackage();
        EFactory factory = typePackage.getEFactoryInstance();
        String string = factory.convertToString(dataType, object);
        return string;
    }
    LogUtil.warnOnce("feature type '" + type + "'is not EDataType: " + parameterName);
    return String.valueOf(object);
}
项目:OpenSPIFe    文件:ADParameterUtils.java   
public static String getObjectString(EObject object, String parameterName) {
    EStructuralFeature feature;
       try {
        feature = getParameterFeature(object, parameterName);
       } catch (UndefinedParameterException e) {
        return null;
       }
    Object value = object.eGet(feature);
    if (value instanceof EEnumLiteral) {
        EEnumLiteral literal = (EEnumLiteral) value;
        return literal.getName();
    }
    EClassifier type = feature.getEType();
    if (type instanceof EDataType) {
        EDataType dataType = (EDataType) type;
        EPackage typePackage = dataType.getEPackage();
        EFactory factory = typePackage.getEFactoryInstance();
        String string = factory.convertToString(dataType, value);
        return string;
    }
    LogUtil.warnOnce("feature type '" + type + "'is not EDataType: " + parameterName);
    return String.valueOf(value);
}
项目:OpenSPIFe    文件:ADParameterUtils.java   
/** Use setParameterString instead, unless calling from an XML loader that has not yet created the plan element. */
public static void setParameterStringInData(EObject data, String parameterName, String newValue) throws UndefinedParameterException {
    EStructuralFeature feature = getParameterFeature(data, parameterName);
    EClassifier type = feature.getEType();
    Object object;
    if (type instanceof EEnum) {
        EEnum enumType = (EEnum) type;
        object = enumType.getEEnumLiteral(newValue);
    } else if (type instanceof EDataType) {
        EDataType dataType = (EDataType) type;
        EPackage typePackage = dataType.getEPackage();
        EFactory factory = typePackage.getEFactoryInstance();
        object = factory.createFromString(dataType, newValue);
    } else {
        Logger logger = Logger.getLogger(ADParameterUtils.class);
        logger.warn("feature type '" + type + "'is not EDataType: " + parameterName);
        object = newValue;
    }
    data.eSet(feature, object);
}
项目:OpenSPIFe    文件:ADParameterUtils.java   
/**
 * Add a value to a named AD multi-select EEnum parameter for the activity
 * @param element
 * @param parameterName
 * @param newValue
 * @throws UndefinedParameterException
 */
@SuppressWarnings("unchecked")
public static void addParameterStringToList(EPlanElement element, String parameterName, String newValue) throws UndefinedParameterException {
    EObject data = element.getData();
    EStructuralFeature feature = getParameterFeature(data, parameterName);
    EClassifier type = feature.getEType();
    Object object;
    if (type instanceof EEnum) {
        EEnum enumType = (EEnum) type;
        object = enumType.getEEnumLiteral(newValue);
    } else if (type instanceof EDataType) {
        EDataType dataType = (EDataType) type;
        EPackage typePackage = dataType.getEPackage();
        EFactory factory = typePackage.getEFactoryInstance();
        object = factory.createFromString(dataType, newValue);
    } else {
        Logger logger = Logger.getLogger(ADParameterUtils.class);
        logger.warn("feature type '" + type + "'is not EDataType: " + parameterName);
        object = newValue;
    }
    addParameterObjectToList(element, parameterName, object);
}
项目:mondo-collab-framework    文件:SlotDecodingUtils.java   
public static Object setFromSlot(final EFactory eFactory, final EClass eClass, final EObject eObject, final AttributeSlot slot) throws IOException {
    final EStructuralFeature feature = eClass.getEStructuralFeature(slot.name);
    if (feature == null) {
        return null;
    }
    if (!feature.isChangeable() || feature.isDerived() && !(eObject instanceof DynamicEStoreEObjectImpl)) {
        return null;
    }
    if (!slot.isSetValue()) {
        return null;
    }

    // isSet=true and many=false means that we should have exactly one value
    final EClassifier eType = feature.getEType();
    if (eType.eContainer() == EcorePackage.eINSTANCE) {
        return fromEcoreType(eClass, eObject, slot, feature, eType);
    } else if (eType instanceof EEnum) {
        return fromEnum(eFactory, eClass, eObject, slot, feature, (EEnum)eType);
    } else {
        return fromInstanceClass(eClass, eObject, slot, feature, eType);
    }
}
项目:mondo-collab-framework    文件:SlotDecodingUtils.java   
private static Object fromEnum(final EFactory eFactory, final EClass eClass,
        final EObject eObject, final AttributeSlot slot,
        final EStructuralFeature feature, final EEnum enumType)
        throws IOException {
    if (!slot.value.isSetVStrings() && !slot.value.isSetVString()) {
        throw new IOException(
            String.format(
                "Expected to receive strings for feature '%s' in type '%s' with many='%s', but did not",
                feature.getName(), eClass.getName(), feature.isMany()));
    } else if (feature.isMany()) {
        final List<Object> literals = new ArrayList<>();
        if (slot.value.isSetVStrings()) {
            for (final String s : slot.value.getVStrings()) {
                literals.add(eFactory.createFromString(enumType, s));
            }
        } else {
            literals.add(eFactory.createFromString(enumType, slot.value.getVString()));
        }
        eObject.eSet(feature, literals);
        return literals;
    } else {
        final Object enumLiteral = eFactory.createFromString(enumType, slot.value.getVString());
        eObject.eSet(feature, enumLiteral);
        return enumLiteral;
    }
}
项目:mondo-collab-framework    文件:HawkResourceImpl.java   
public void fetchAttributes(final Map<String, EObject> objects) throws IOException, HawkInstanceNotFound, HawkInstanceNotRunning, TException {
    final HawkQueryOptions options = new HawkQueryOptions();
    options.setIncludeAttributes(true);
    options.setIncludeReferences(false);
    setEffectiveMetamodelOptions(options, descriptor.getEffectiveMetamodel());

    final List<ModelElement> elems = client.resolveProxies(
        descriptor.getHawkInstance(), new ArrayList<>(objects.keySet()),
        options);

    for (ModelElement me : elems) {
        final EObject object = objects.get(me.id);
        final EFactory eFactory = getResourceSet().getPackageRegistry().getEFactory(me.getMetamodelUri());
        final EClass eClass = getEClass(
                me.getMetamodelUri(), me.getTypeName(),
                getResourceSet().getPackageRegistry());
        for (final AttributeSlot s : me.attributes) {
            SlotDecodingUtils.setFromSlot(eFactory, eClass, object, s);
        }
    }
}
项目:eclipse-avro    文件:EPackageImpl.java   
/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public void setEFactoryInstance(EFactory newEFactoryInstance)
{
  if (newEFactoryInstance != eFactoryInstance)
  {
    NotificationChain msgs = null;
    if (eFactoryInstance != null)
      msgs = ((InternalEObject)eFactoryInstance).eInverseRemove(this, EcorePackage.EFACTORY__EPACKAGE, EFactory.class, msgs);
    if (newEFactoryInstance != null)
      msgs = ((InternalEObject)newEFactoryInstance).eInverseAdd(this, EcorePackage.EFACTORY__EPACKAGE, EFactory.class, msgs);
    msgs = basicSetEFactoryInstance(newEFactoryInstance, msgs);
    if (msgs != null) msgs.dispatch();
  }
  else if (eNotificationRequired())
    eNotify(new ENotificationImpl(this, Notification.SET, EcorePackage.EPACKAGE__EFACTORY_INSTANCE, newEFactoryInstance, newEFactoryInstance));
}
项目:eclipse-avro    文件:EPackageImpl.java   
/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
@SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
  switch (featureID)
  {
    case EcorePackage.EPACKAGE__EANNOTATIONS:
      return ((InternalEList<InternalEObject>)(InternalEList<?>)getEAnnotations()).basicAdd(otherEnd, msgs);
    case EcorePackage.EPACKAGE__EFACTORY_INSTANCE:
      if (eFactoryInstance != null)
        msgs = ((InternalEObject)eFactoryInstance).eInverseRemove(this, EcorePackage.EFACTORY__EPACKAGE, EFactory.class, msgs);
      return basicSetEFactoryInstance((EFactory)otherEnd, msgs);
    case EcorePackage.EPACKAGE__ECLASSIFIERS:
      return ((InternalEList<InternalEObject>)(InternalEList<?>)getEClassifiers()).basicAdd(otherEnd, msgs);
    case EcorePackage.EPACKAGE__ESUBPACKAGES:
      return ((InternalEList<InternalEObject>)(InternalEList<?>)getESubpackages()).basicAdd(otherEnd, msgs);
    case EcorePackage.EPACKAGE__ESUPER_PACKAGE:
      if (eInternalContainer() != null)
        msgs = eBasicRemoveFromContainer(msgs);
      return eBasicSetContainer(otherEnd, EcorePackage.EPACKAGE__ESUPER_PACKAGE, msgs);
  }
  return eDynamicInverseAdd(otherEnd, featureID, msgs);
}
项目:clickwatch    文件:EPackageImpl.java   
/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public void setEFactoryInstance(EFactory newEFactoryInstance)
{
  if (newEFactoryInstance != eFactoryInstance)
  {
    NotificationChain msgs = null;
    if (eFactoryInstance != null)
      msgs = ((InternalEObject)eFactoryInstance).eInverseRemove(this, EcorePackage.EFACTORY__EPACKAGE, EFactory.class, msgs);
    if (newEFactoryInstance != null)
      msgs = ((InternalEObject)newEFactoryInstance).eInverseAdd(this, EcorePackage.EFACTORY__EPACKAGE, EFactory.class, msgs);
    msgs = basicSetEFactoryInstance(newEFactoryInstance, msgs);
    if (msgs != null) msgs.dispatch();
  }
  else if (eNotificationRequired())
    eNotify(new ENotificationImpl(this, Notification.SET, EcorePackage.EPACKAGE__EFACTORY_INSTANCE, newEFactoryInstance, newEFactoryInstance));
}
项目:clickwatch    文件:EPackageImpl.java   
/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
@SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
  switch (featureID)
  {
    case EcorePackage.EPACKAGE__EANNOTATIONS:
      return ((InternalEList<InternalEObject>)(InternalEList<?>)getEAnnotations()).basicAdd(otherEnd, msgs);
    case EcorePackage.EPACKAGE__EFACTORY_INSTANCE:
      if (eFactoryInstance != null)
        msgs = ((InternalEObject)eFactoryInstance).eInverseRemove(this, EcorePackage.EFACTORY__EPACKAGE, EFactory.class, msgs);
      return basicSetEFactoryInstance((EFactory)otherEnd, msgs);
    case EcorePackage.EPACKAGE__ECLASSIFIERS:
      return ((InternalEList<InternalEObject>)(InternalEList<?>)getEClassifiers()).basicAdd(otherEnd, msgs);
    case EcorePackage.EPACKAGE__ESUBPACKAGES:
      return ((InternalEList<InternalEObject>)(InternalEList<?>)getESubpackages()).basicAdd(otherEnd, msgs);
    case EcorePackage.EPACKAGE__ESUPER_PACKAGE:
      if (eInternalContainer() != null)
        msgs = eBasicRemoveFromContainer(msgs);
      return eBasicSetContainer(otherEnd, EcorePackage.EPACKAGE__ESUPER_PACKAGE, msgs);
  }
  return eDynamicInverseAdd(otherEnd, featureID, msgs);
}
项目:MMINT    文件:KleisliReasoningEngine.java   
public void evaluateEClassQuery(String kQuery, OCLReasoningEngine oclReasoner, EObject kRootModelObj, EClass kModelElemTypeClass, EFactory kModelTypeFactory, Map<String, Map<EObject, EObject>> queryUnion) {

        for (String kQueryRow : kQuery.split(ROW_SEPARATOR)) {
            String[] kQueryAssignment = kQueryRow.split(UNION_ASSIGNMENT);
            String oclQuery = kQueryAssignment[1].trim();
            String unionName = kQueryAssignment[0].substring(kQueryAssignment[0].indexOf(UNION_KEYWORD)+UNION_KEYWORD.length(), kQueryAssignment[0].length()).trim();
            Map<EObject, EObject> queryRow = new LinkedHashMap<EObject, EObject>();
            queryUnion.put(unionName, queryRow);
            Object queryObjs = oclReasoner.evaluateQuery(kRootModelObj, oclQuery);
            if (!(queryObjs instanceof Collection<?>)) {
                continue;
            }
            for (Object queryObj : (Collection<?>) queryObjs) {
                EObject modelObj = (EObject) queryObj;
                EObject kModelObj = kModelTypeFactory.create(kModelElemTypeClass);
                for (EStructuralFeature feature : modelObj.eClass().getEAllStructuralFeatures()) { // copy shared non-containment features
                    EStructuralFeature kFeature = kModelObj.eClass().getEStructuralFeature(feature.getName());
                    if ((feature instanceof EReference && ((EReference) feature).isContainment()) || kFeature == null) {
                        continue;
                    }
                    kModelObj.eSet(kFeature, modelObj.eGet(feature));
                }
                queryRow.put(modelObj, kModelObj);
            }
        }
    }
项目:emf-fragments    文件:AbstractReflectiveModelTests.java   
protected ResourceSet createAndConfigureAResourceSet(IDataStore dataStore, EPackage... metaModels) {
    ResourceSet resourceSet = new ResourceSetImpl();
    boolean saveOriginalFactories = false;
    if (this.originalFactories == null) {
        this.metaModels = metaModels;
        this.originalFactories = new EFactory[metaModels.length];
        saveOriginalFactories = true;
    }
    int i = 0;
    for (EPackage metaModel : metaModels) {
        resourceSet.getPackageRegistry().put(metaModel.getNsURI(), metaModel);
        if (saveOriginalFactories) {
            originalFactories[i++] = metaModel.getEFactoryInstance();
        }
        metaModel.setEFactoryInstance(new org.eclipse.emf.ecore.impl.EFactoryImpl() {
            @Override
            public EObject create(EClass eClass) {
                return new FInternalObjectImpl(eClass);
            }
        });
    }
    resourceSet.getURIConverter().getURIHandlers().add(0, new DataStoreURIHandler(dataStore));
    resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap().put(dataStore.getURI().scheme(), createResourceFactoryImpl()); 
    return resourceSet;
}
项目:OCCI-Studio    文件:OcciHelper.java   
/**
 * Create an entity of a given kind.
 * 
 * @param kind
 *            The kind of the entity to create.
 * @return The created entity, else null.
 */
public static Entity createEntity(Kind kind) {
    Entity createdEntity = null;

    // Get the name space of the Ecore package for this kind.
    String epackageNS = Occi2Ecore.convertOcciScheme2EcoreNamespace(kind.getScheme());
    // Get the Ecore package associated to the kind.
    EPackage epackage = EPackage.Registry.INSTANCE.getEPackage(epackageNS);
    if (epackage == null) {
        LOGGER.warn("EPackage " + epackageNS + " not found!");
    } else {
        String classname = Occi2Ecore.convertOcciCategoryTerm2EcoreClassName(kind.getTerm());
        // Get the Ecore class associated to the kind.
        EClass eclass = (EClass) epackage.getEClassifier(classname);
        if (eclass == null) {
            LOGGER.warn("EClass " + classname + " not found!");
        } else {
            // Get the Ecore factory associated to the kind.
            EFactory efactory = EPackage.Registry.INSTANCE.getEFactory(epackageNS);
            if (efactory == null) {
                LOGGER.warn("EFactory " + epackageNS + " not found!");
            } else {
                // Create the EObject for this kind.
                createdEntity = (Entity) efactory.create(eclass);
            }
        }
    }
    if (createdEntity == null) {
        LOGGER.warn("Create OCCI Core Resource!");
        createdEntity = OCCIFactory.eINSTANCE.createResource();
        createdEntity.setKind(kind);
    }

    LOGGER.debug("created entity=" + createdEntity);
    // Return the new entity.
    return createdEntity;
}
项目:boomslang-wireframesketcher    文件:ModelXMLHelperImpl.java   
@Override
public String convertToString(EFactory factory, EDataType dataType,
        Object value) {
    if (dataType == ModelPackage.Literals.URI_DATA_TYPE && value != null) {
        value = deresolve((URI) value);
    }

    return super.convertToString(factory, dataType, value);
}
项目:boomslang-wireframesketcher    文件:ModelXMLHelperImpl.java   
@Override
protected Object createFromString(EFactory factory, EDataType dataType,
        String value) {
    Object actualValue = super.createFromString(factory, dataType, value);

    if (dataType == ModelPackage.Literals.URI_DATA_TYPE
            && actualValue != null) {
        actualValue = resolve((URI) actualValue, resourceURI);
    }

    return actualValue;
}
项目:boomslang-wireframesketcher    文件:ModelXMLHelperImpl.java   
@Override
public EObject createObject(EFactory factory, EClassifier type) {
    // Fix the missing xsi:type attribute for master refs in old screen files
    if(type == ModelPackage.Literals.WIDGET_CONTAINER)
        return ModelFactory.eINSTANCE.createScreen();

    return super.createObject(factory, type);
}
项目:mondo-integration    文件:HawkResourceImpl.java   
private EObject createEObject(final ModelElement me) throws IOException {
    final Registry registry = getResourceSet().getPackageRegistry();
    final EClass eClass = getEClass(me.metamodelUri, me.typeName, registry);
    final EObject obj = createInstance(eClass);

    if (me.isSetId()) {
        nodeIdToEObjectMap.put(me.id, obj);

        synchronized(classToEObjectsMap) {
            final EList<EObject> instances = classToEObjectsMap.get(eClass);
            if (instances != null) {
                instances.add(obj);
            }
        }
    }

    if (me.isSetAttributes()) {
        final EFactory factory = registry.getEFactory(eClass.getEPackage().getNsURI());
        for (final AttributeSlot s : me.attributes) {
            SlotDecodingUtils.setFromSlot(factory, eClass, obj, s);
        }
    } else if (!descriptor.getLoadingMode().isGreedyAttributes()) {
        getLazyResolver().putLazyAttributes(me.id, obj);
    }

    return obj;
}
项目:mondo-hawk    文件:HawkResourceImpl.java   
private EObject createEObject(final ModelElement me) throws IOException {
    final Registry registry = getResourceSet().getPackageRegistry();
    final EClass eClass = getEClass(me.metamodelUri, me.typeName, registry);
    final EObject obj = createInstance(eClass);

    if (me.isSetId()) {
        nodeIdToEObjectMap.put(me.id, obj);

        synchronized(classToEObjectsMap) {
            final EList<EObject> instances = classToEObjectsMap.get(eClass);
            if (instances != null) {
                instances.add(obj);
            }
        }
    }

    if (me.isSetAttributes()) {
        final EFactory factory = registry.getEFactory(eClass.getEPackage().getNsURI());
        for (final AttributeSlot s : me.attributes) {
            SlotDecodingUtils.setFromSlot(factory, eClass, obj, s);
        }
    } else if (!descriptor.getLoadingMode().isGreedyAttributes()) {
        getLazyResolver().putLazyAttributes(me.id, obj);
    }

    return obj;
}
项目:mondo-hawk    文件:LazyEObjectFactory.java   
public EObject createInstance(final EClass eClass) {
    final String nsURI = eClass.getEPackage().getNsURI();
    final EFactory factory = packageRegistry.getEFactory(nsURI);
    if (factory == null) {
        throw new NoSuchElementException(String.format("Could not find the EFactory for nsURI '%s' in the resource set's package registry", nsURI));
    }

    final EObject obj = factory.create(eClass);
    return createLazyLoadingInstance(eClass, obj.getClass());
}