// generate EPackages from schemas XSDEcoreBuilder xsdEcoreBuilder = new XSDEcoreBuilder(); Collection generatedPackages = xsdEcoreBuilder.generate(schemaURI); // register the packages loaded from XSD for (EObject generatedEObject : generatedPackages) { if (generatedEObject instanceof EPackage) { EPackage generatedPackage = (EPackage) generatedEObject; EPackage.Registry.INSTANCE.put(generatedPackage.getNsURI(), generatedPackage); } } // add file extension to registry ResourceFactoryRegistryImpl.INSTANCE.getExtensionToFactoryMap() .put(MY_FILE_EXTENSION, new GenericXMLResourceFactoryImpl());
/** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getArcStringByBulgeType() { if (arcStringByBulgeTypeEClass == null) { arcStringByBulgeTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(Gml311Package.eNS_URI).getEClassifiers().get(54); } return arcStringByBulgeTypeEClass; }
private IdEObjectImpl createInternal(EClass eClass, QueryInterface queryInterface) { IdEObjectImpl object = (IdEObjectImpl) eClass.getEPackage().getEFactoryInstance().create(eClass); object.setQueryInterface(queryInterface); return object; }
public EPackage createEPackage(String name) { EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage(); ePackage.setName(name); ePackage.setNsPrefix(name); ePackage.setNsURI(name); packages.put(ePackage.getName(), ePackage); return ePackage; }
private EClass getOrCreateEClass(String name) { EClassifier eClassifier = schemaPack.getEClassifier(name); if (eClassifier == null) { eClassifier = eFactory.createEClass(); eClassifier.setName(name); schemaPack.getEClassifiers().add(eClassifier); } return (EClass) eClassifier; }
public void addEPackage(EPackage ePackage) { packages.put(ePackage.getName(), ePackage); changes.add(new NewPackageChange(ePackage)); Set<EClass> newClasses = new HashSet<>(); for (EClassifier eClassifier : ePackage.getEClassifiers()) { if (eClassifier instanceof EClass) { newClasses.add((EClass) eClassifier); } } addEClasses(ePackage, newClasses); }
public RecordIdentifierPlusType(EClass eClass, int pid, long oid, int rid) { this.packageName = eClass.getEPackage().getName(); this.className = eClass.getName(); this.pid = pid; this.oid = oid; this.rid = rid; }
protected void initializeFromLoadedEPackage(EPackage target, EPackage source) { target.setName(source.getName()); target.setNsPrefix(source.getNsPrefix()); target.setNsURI(source.getNsURI()); target.getEClassifiers().addAll(source.getEClassifiers()); target.getEAnnotations().addAll(source.getEAnnotations()); for (EPackage sourceSubpackage : source.getESubpackages()) { EPackage targetSubpackage = EPackage.Registry.INSTANCE.getEPackage(sourceSubpackage.getNsURI()); initializeFromLoadedEPackage(targetSubpackage, sourceSubpackage); target.getESubpackages().add(targetSubpackage); } }
@SuppressWarnings("unchecked") @Override public <T extends IdEObject> T create(EClass eClass) throws IfcModelInterfaceException, ObjectAlreadyExistsException { final IdEObjectImpl idEObject = (IdEObjectImpl) eClass.getEPackage().getEFactoryInstance().create(eClass); idEObject.setModel(this); if (recordChanges) { idEObject.eAdapters().add(adapter); try { Long oid = bimServerClient.getLowLevelInterface().createObject(tid, eClass.getName(), eClass.getEStructuralFeature("GlobalId") != null); idEObject.setOid(oid); } catch (Exception e) { LOGGER.error("", e); } add(idEObject.getOid(), idEObject); } return (T) idEObject; }
private void doRealDerivedAttributes() { for (EntityDefinition entityDefinition : schema.getEntities()) { for (DerivedAttribute2 attributeName : entityDefinition.getDerivedAttributes().values()) { EClass eClass = (EClass) schemaPack.getEClassifier(entityDefinition.getName()); EClassifier eType = schemaPack.getEClassifier(((DefinedType) attributeName.getType()).getName()); boolean found = false; for (EClass eSuperType : eClass.getEAllSuperTypes()) { if (eSuperType.getEStructuralFeature(attributeName.getName()) != null) { found = true; break; EAttribute eAttribute = eFactory.createEAttribute(); eAttribute.setDerived(true); eAttribute.setName(attributeName.getName()); eAttribute.setUnique(false); EClassifier type = ((EClass) eType).getEStructuralFeature("wrappedValue").getEType(); eAttribute.setEType(type); eAttribute.setUnsettable(true); // TODO find out EReference eReference = eFactory.createEReference(); eReference.setName(attributeName.getName()); eReference.setDerived(true);
RevisionSummaryContainer revisionSummaryContainerEntities = databaseSession.create(RevisionSummaryContainer.class); revisionSummaryContainerEntities.setName("IFC Entities"); revisionSummary.getList().add(revisionSummaryContainerEntities); RevisionSummaryContainer revisionSummaryContainerRelations = databaseSession.create(RevisionSummaryContainer.class); revisionSummaryContainerRelations.setName("IFC Relations"); revisionSummary.getList().add(revisionSummaryContainerRelations); RevisionSummaryContainer revisionSummaryContainerPrimitives = databaseSession.create(RevisionSummaryContainer.class); revisionSummaryContainerPrimitives.setName("IFC Primitives"); revisionSummary.getList().add(revisionSummaryContainerPrimitives); RevisionSummaryContainer revisionSummaryContainerOther = databaseSession.create(RevisionSummaryContainer.class); revisionSummaryContainerOther.setName("Rest"); if (((EClass) packageMetaData.getEPackage().getEClassifier("IfcObject")).isSuperTypeOf(eClass)) { subMap = revisionSummaryContainerEntities; } else if (((EClass) packageMetaData.getEPackage().getEClassifier("IfcRelationship")).isSuperTypeOf(eClass)) { subMap = revisionSummaryContainerRelations; } else if (eClass.getEAnnotation("wrapped") != null) { subMap = revisionSummaryContainerPrimitives; } else { createRevisionSummaryType.setSchema(eClass.getEPackage().getName()); createRevisionSummaryType.setCount(summaryMap.get(eClass)); createRevisionSummaryType.setName(eClass.getName());
private void addInverseAttribute(Attribute attrib, EClass cls) { InverseAttribute inverseAttribute = (InverseAttribute) attrib; EReference eRef = eFactory.createEReference(); eRef.setUnsettable(true); // Inverses are always optional? eRef.getEAnnotations().add(createInverseAnnotation()); eRef.setName(attrib.getName()); if (inverseAttribute.getMax_cardinality() != null) { EClass classifier = (EClass) schemaPack.getEClassifier(type); eRef.setEType(classifier); String reverseName = inverseAttribute.getInverted_attr().getName(); EReference reference = (EReference) classifier.getEStructuralFeature(reverseName); reference.getEAnnotations().add(createInverseAnnotation()); if (eRef.getEType() == classifier && reference.getEType() == cls) { if (eRef.isMany()) { } else { System.out.println("Inverse mismatch"); System.out.println(classifier.getName() + "." + reference.getName() + " => " + cls.getName() + "." + eRef.getName()); cls.getEStructuralFeatures().add(eRef);
private void addTwoDimensionalArray(String entityName, String attribName) { EClassifier finalType = null; if (entityName.equals("IfcBSplineSurface") && attribName.equals("ControlPointsList")) { finalType = schemaPack.getEClassifier("IfcCartesianPoint"); } else if (entityName.equals("IfcCartesianPointList3D") && attribName.equals("CoordList")) { finalType = schemaPack.getEClassifier("IfcLengthMeasure"); } else if (entityName.equals("IfcColourRgbList") && attribName.equals("ColourList")) { finalType = schemaPack.getEClassifier("IfcNormalisedRatioMeasure"); } else if (entityName.equals("IfcIndexedTriangleTextureMap") && attribName.equals("TexCoordIndex")) { finalType = EcorePackage.eINSTANCE.getELong(); finalType = EcorePackage.eINSTANCE.getEDouble(); } else if (entityName.equals("IfcStructuralLoadConfiguration") && attribName.equals("Locations")) { finalType = schemaPack.getEClassifier("IfcLengthMeasure"); } else if (entityName.equals("IfcTessellatedFaceSet") && attribName.equals("Normals")) { finalType = schemaPack.getEClassifier("IfcParameterValue"); } else if (entityName.equals("IfcTextureVertexList") && attribName.equals("TexCoordsList")) { finalType = schemaPack.getEClassifier("IfcParameterValue"); } else if (entityName.equals("IfcTriangulatedFaceSet") && attribName.equals("CoordIndex")) { finalType = EcorePackage.eINSTANCE.getELong(); } else if (entityName.equals("IfcCartesianPointList2D") && attribName.equals("CoordList")) { finalType = schemaPack.getEClassifier("IfcLengthMeasure"); } else if (entityName.equals("IfcIndexedPolygonalFaceWithVoids") && attribName.equals("InnerCoordIndices")) { finalType = EcorePackage.eINSTANCE.getELong(); } else if (entityName.equals("IfcTriangulatedFaceSet") && attribName.equals("Normals")) { finalType = schemaPack.getEClassifier("IfcParameterValue"); } else if (entityName.equals("IfcTriangulatedFaceSet") && attribName.equals("NormalIndex")) { finalType = EcorePackage.eINSTANCE.getELong(); EClass containerClass = (EClass) schemaPack.getEClassifier("ListOf" + finalType.getName());
public EClass createEClass(EPackage ePackage, String name, EClass... superClasses) { EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName(name); changes.add(new NewClassChange(eClass)); for (EClass superClass : superClasses) { eClass.getESuperTypes().add(superClass); } ePackage.getEClassifiers().add(eClass); return eClass; }
public boolean createIndexTable(EClass eClass, EStructuralFeature eStructuralFeature, DatabaseSession databaseSession, boolean transactional) throws BimserverDatabaseException { return keyValueStore.createIndexTable(eClass.getEPackage().getName() + "_" + eClass.getName() + "_" + eStructuralFeature.getName(), databaseSession, transactional); }
public List<ObjectIdentifier> getOids(EClass eClass, EStructuralFeature eStructuralFeature, Object value, DatabaseInterface databaseInterface, int pid, int rid) throws BimserverDatabaseException { if (eStructuralFeature.getEAnnotation("singleindex") != null) { List<ObjectIdentifier> result = new ArrayList<>(); String indexTableName = eStructuralFeature.getEContainingClass().getEPackage().getName() + "_" + eClass.getName() + "_" + eStructuralFeature.getName(); byte[] queryBytes = null; if (value instanceof String) {
boolean transactional = !(eClass.getEPackage() == Ifc2x3tc1Package.eINSTANCE || eClass.getEPackage() == Ifc4Package.eINSTANCE); for (EStructuralFeature eStructuralFeature : eClass.getEAllStructuralFeatures()) { if (eStructuralFeature.getEAnnotation("singleindex") != null) { String indexTableName = eClass.getEPackage().getName() + "_" + eClass.getName() + "_" + eStructuralFeature.getName(); try { keyValueStore.openIndexTable(databaseSession, indexTableName, transactional);
private void writeWrappedValue(int pid, int rid, Object value, ByteBuffer buffer, PackageMetaData packageMetaData) throws BimserverDatabaseException { IdEObject wrappedValue = (IdEObject) value; EStructuralFeature eStructuralFeature = wrappedValue.eClass().getEStructuralFeature("wrappedValue"); Short cid = database.getCidOfEClass(wrappedValue.eClass()); buffer.order(ByteOrder.LITTLE_ENDIAN); buffer.putShort((short) -cid); buffer.order(ByteOrder.BIG_ENDIAN); writePrimitiveValue(eStructuralFeature, wrappedValue.eGet(eStructuralFeature), buffer); if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDouble() || eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDoubleObject()) { EStructuralFeature fe = wrappedValue.eClass().getEStructuralFeature("wrappedValueAsString"); writePrimitiveValue(fe, wrappedValue.eGet(fe), buffer); } if (wrappedValue.eClass().getName().equals("IfcGloballyUniqueId")) { EClass eClass = packageMetaData.getEClass("IfcGloballyUniqueId"); if (wrappedValue.getOid() == -1) { ((IdEObjectImpl) wrappedValue).setOid(newOid(eClass)); } ByteBuffer valueBuffer = convertObjectToByteArray(wrappedValue, ByteBuffer.allocate(getExactSize(wrappedValue, packageMetaData, true)), packageMetaData); ByteBuffer keyBuffer = createKeyBuffer(pid, wrappedValue.getOid(), rid); try { database.getKeyValueStore().storeNoOverwrite(eClass.getEPackage().getName() + "_" + eClass.getName(), keyBuffer.array(), valueBuffer.array(), this); database.incrementCommittedWrites(1); } catch (BimserverLockConflictException e) { LOGGER.error("", e); } } }
@Override public void change(Database database, DatabaseSession databaseSession) throws NotImplementedException, BimserverDatabaseException { EClass eClass = eStructuralFeature.getEContainingClass(); KeyValueStore keyValueStore = database.getKeyValueStore(); if (subClass.getEAnnotation("nodatabase") == null) { String indexTableName = subClass.getEPackage().getName() + "_" + subClass.getName() + "_" + eStructuralFeature.getName(); boolean transactional = !(subClass.getEPackage() == Ifc4Package.eINSTANCE || subClass.getEPackage() == Ifc2x3tc1Package.eINSTANCE); keyValueStore.createIndexTable(indexTableName, databaseSession, transactional); RecordIterator recordIterator = keyValueStore.getRecordIterator(subClass.getEPackage().getName() + "_" + subClass.getName(), databaseSession); try { Record record = recordIterator.next();
@SuppressWarnings({ "rawtypes", "unchecked" }) private EObject from(JsonParser jp, EClass eClass) throws JsonParseException, IOException { EObject result = eClass.getEPackage().getEFactoryInstance().create(eClass); Map<String, EStructuralFeature> fieldFeatureMap = JsonMetadata.INSTANCE.getJsonFeatures(eClass); EDataType dataType = (EDataType) feature.getEType(); if (feature.isMany()) { if (nextToken == JsonToken.START_ARRAY) { EList values = new BasicEList(); while (jp.nextToken() != JsonToken.END_ARRAY) { values.add(parseValueForDataType(jp, dataType)); if (feature.isMany() && nextToken == JsonToken.START_ARRAY) { EList values = new BasicEList(); while (jp.nextToken() != JsonToken.END_ARRAY) { values.add(from(jp, eRef.getEReferenceType()));