public EObject create(EClass eClass) { // checkOpen(); IdEObjectImpl idEObject = createInternal(eClass, null); EStructuralFeature uuidFeature = eClass.getEStructuralFeature("uuid"); if (uuidFeature != null) { if (idEObject.eGet(uuidFeature) == null) { idEObject.eSet(uuidFeature, UUID.randomUUID().toString()); } } try { store(idEObject, Database.STORE_PROJECT_ID, Integer.MAX_VALUE); } catch (BimserverDatabaseException e) { LOGGER.error("", e); } return idEObject; }
EStructuralFeature asStringFeature = object.eClass().getEStructuralFeature(eStructuralFeature.getName() + "AsString"); if (asStringFeature != null) { object.eSet(asStringFeature, "" + x); // TODO object.eSet(eStructuralFeature, x); } else if (eStructuralFeature instanceof EReference) { if (eStructuralFeature.getName().equals("GlobalId")) { IfcGloballyUniqueId globallyUniqueId = Ifc2x3tc1Factory.eINSTANCE.createIfcGloballyUniqueId(); globallyUniqueId.setWrappedValue(jsonReader.nextString()); object.eSet(eStructuralFeature, globallyUniqueId); } else if (embedded) { jsonReader.beginObject(); object.eSet(eStructuralFeature, wrappedObject); } else { if (jsonReader.nextName().equals("_v")) { EStructuralFeature wv = wrappedObject.eClass().getEStructuralFeature("wrappedValue"); wrappedObject.eSet(wv, readPrimitive(jsonReader, wv)); object.eSet(eStructuralFeature, wrappedObject); object.eSet(eStructuralFeature, model.getNoFetch(refOid)); } else { IdEObject refObject = (IdEObject) model.create(model.getPackageMetaData().getEClassIncludingDependencies(refType), refOid); ((IdEObjectImpl)refObject).setLoadingState(State.OPPOSITE_SETTING); model.add(refObject.getOid(), refObject); object.eSet(eStructuralFeature, refObject); ((IdEObjectImpl)refObject).setLoadingState(State.TO_BE_LOADED);
Object result = readList(newObject, originalQueryClass, buffer, model, query, todoList, newObject.eClass().getEStructuralFeature("List")); if (result != null) { newObject.eSet(newObject.eClass().getEStructuralFeature("List"), result);