@Override public void getEClassRequirements(Set<EClass> classRequirements) { for (EClassifier eClassifier : eClass.getEPackage().getEClassifiers()) { if (eClassifier instanceof EClass) { EClass foundEClass = (EClass)eClassifier; if (eClass.isSuperTypeOf(foundEClass)) { classRequirements.add(foundEClass); } } } }
@Override public boolean matches(IdEObject object) { return eClass.isSuperTypeOf(object.eClass()); } }
private Set<EClass> initIndirectSubClasses(EClass eClass) { HashSet<EClass> set = new HashSet<EClass>(); indirectSubClasses.put(eClass, set); set.add(eClass); for (EClassifier eClassifier : eClass.getEPackage().getEClassifiers()) { if (eClassifier instanceof EClass) { EClass e = (EClass) eClassifier; if (eClass.isSuperTypeOf(e)) { set.add(e); } } } return set; }
@SuppressWarnings("unchecked") public void addUseForSerialization(EStructuralFeature eStructuralFeature, int index) { if (eStructuralFeature.getEContainingClass().isSuperTypeOf(eClass)) { Set<Object> set = (Set<Object>) useForSerializationFeatures.get(eStructuralFeature); if (set == null) { set = new HashSet<>(); useForSerializationFeatures.put(eStructuralFeature, set); } set.add(index); } else { throw new IllegalArgumentException(eStructuralFeature.getName() + " does not exist in " + eClass.getName()); } }
@Override public void getEClassRequirements(Set<EClass> classRequirements) { EClass eClass = attribute.getEContainingClass(); classRequirements.add(eClass); for (EClassifier subClass : eClass.getEPackage().getEClassifiers()) { if (subClass instanceof EClass && eClass.isSuperTypeOf((EClass) subClass)) { classRequirements.add((EClass) subClass); } } }
public void addUseForSerialization(EStructuralFeature eStructuralFeature) { if (eStructuralFeature.getEContainingClass().isSuperTypeOf(eClass)) { useForSerializationFeatures.put(eStructuralFeature, true); } else { throw new IllegalArgumentException(eStructuralFeature.getName() + " does not exist in " + eClass.getName()); } }
@Override public void newObject(HashMapVirtualObject next) { if (eClass.isSuperTypeOf(next.eClass())) { if (next.eGet(GeometryRunner.this.streamingGeometryGenerator.representationFeature) != null) { if (originalQuery.getQueryParts().get(0).getOids().contains(next.getOid())) { objects.add(next); } } } } });
@Override public boolean matches(IdEObject object) { if (object.eClass().isSuperTypeOf(reference.getEContainingClass())) { Object other = object.eGet(reference); if (other instanceof EList<?>) { EList<?> list = (EList<?>)other; for (Object eObject : list) { if (referencingObjects.contains(eObject)) { return true; } } return false; } else { return referencingObjects.contains(other); } } return false; } }
private void indexGuid(IdEObject idEObject) { EClass ifcRootEclass = packageMetaData.getEClass("IfcRoot"); EStructuralFeature guidFeature = ifcRootEclass.getEStructuralFeature("GlobalId"); if (ifcRootEclass.isSuperTypeOf(idEObject.eClass())) { Object guid = idEObject.eGet(guidFeature); if (guid != null) { guidIndexed.put((String)guid, idEObject); } } }
private void addToList(EStructuralFeature eStructuralFeature, int index, AbstractEList list, EObject referencedObject) throws DeserializeException { EClass referenceEClass = referencedObject.eClass(); if (((EClass) eStructuralFeature.getEType()).isSuperTypeOf(referenceEClass)) { while (list.size() <= index) { list.addUnique(referencedObject); } } else { throw new DeserializeException(-1, referenceEClass.getName() + " cannot be stored in " + eStructuralFeature.getName()); } }
public void buildNameIndex() { nameIndex = new HashMap<EClass, Map<String, IdEObject>>(); for (EClassifier classifier : objects.values().iterator().next().eClass().getEPackage().getEClassifiers()) { if (classifier instanceof EClass) { Map<String, IdEObject> map = new TreeMap<String, IdEObject>(); nameIndex.put((EClass) classifier, map); } } EClass ifcRootEclass = packageMetaData.getEClass("IfcRoot"); EStructuralFeature nameFeature = ifcRootEclass.getEStructuralFeature("Name"); for (Long key : objects.keySet()) { IdEObject value = objects.get((Long) key); if (ifcRootEclass.isSuperTypeOf(value.eClass())) { Object name = value.eGet(nameFeature); if (name != null) { nameIndex.get(value.eClass()).put((String)name, value); } } } }
public void buildGuidIndex() { guidIndex = new HashMap<EClass, Map<String, IdEObject>>(); if (objects.isEmpty()) { return; } for (EClassifier classifier : objects.values().iterator().next().eClass().getEPackage().getEClassifiers()) { if (classifier instanceof EClass) { Map<String, IdEObject> map = new TreeMap<String, IdEObject>(); guidIndex.put((EClass) classifier, map); } } EClass ifcRootEclass = packageMetaData.getEClass("IfcRoot"); EStructuralFeature guidFeature = ifcRootEclass.getEStructuralFeature("GlobalId"); for (Long key : objects.keySet()) { IdEObject value = objects.get((Long) key); if (ifcRootEclass.isSuperTypeOf(value.eClass())) { Object guid = value.eGet(guidFeature); if (guid != null) { guidIndex.get(value.eClass()).put((String)guid, value); } } } }
public ByteBuffer write() throws BimserverDatabaseException { EClass eClass = getDatabaseInterface().getEClassForOid(getOid()); if (!eClass.isSuperTypeOf(eClass())) { throw new BimserverDatabaseException("Object with oid " + getOid() + " is a " + eClass().getName() + " but it's cid-part says it's a " + eClass.getName()); } int nrFeatures = getPackageMetaData().getNrDatabaseFeatures(eClass); if (featureCounter > nrFeatures) { throw new BimserverDatabaseException("Too many features seem to have been set on " + this.eClass.getName() + " " + featureCounter + " / " + nrFeatures); } else if (featureCounter < nrFeatures) { throw new BimserverDatabaseException("Not all features seem to have been set on " + this.eClass.getName() + " " + featureCounter + " / " + nrFeatures); } if (referencedBuffers != null) { for (int startPosition : referencedBuffers.keySet()) { ByteBuffer otherBuffer = referencedBuffers.get(startPosition).write(); buffer.position(startPosition); buffer.put(otherBuffer.array(), 0, otherBuffer.position()); } } buffer.position(buffer.capacity()); return buffer; // // if (buffer.position() != bufferSize) { // throw new BimserverDatabaseException("Value buffer sizes do not match for " + eClass().getName() + " " + buffer.position() + "/" + bufferSize); // } // return buffer; }
@Override public boolean matches(IdEObject object) { if (object.eClass().isSuperTypeOf(reference.getEContainingClass())) { Object other = object.eGet(reference); if (other instanceof EList<?>) { EList<?> list = (EList<?>)other; for (Object eObject : list) { // TODO Actually the first test should suffice (object id), the second should always return the same because caching of the objects should allow only 1 per database session if (eObject == referencingObject || ((IdEObject)eObject).getOid() == referencingObject.getOid()) { return true; } } return false; } else { return other == referencingObject; } } return false; } }
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) {
if (inc.hasFields()) { for (EReference field : inc.getFields()) { if (ifcProduct.isSuperTypeOf((EClass)field.getEType()) || ((EClass)field.getEType()).isSuperTypeOf(ifcProduct)) { Include newInclude = inc.createInclude(); applyFields(geometryFields, new TypeDef(ifcProduct, true), newInclude); if (ifcProduct.isSuperTypeOf(typeDef.geteClass()) || ((EClass)typeDef.geteClass()).isSuperTypeOf(ifcProduct)) { Include include = canInclude.createInclude(); applyFields(geometryFields, new TypeDef(ifcProduct, true), include);
@Override public boolean matches(IdEObject object) { if (!attribute.getEContainingClass().isSuperTypeOf(object.eClass())) { return false; } else { if (object.eGet(attribute) == null && literal.getValue() == null) { return true; } if (object.eGet(attribute) == null && literal.getValue() != null) { return false; } if (object.eGet(attribute) != null && literal.getValue() == null) { return false; } return object.eGet(attribute).equals(literal.getValue()); } } }
} else { ListWaitingObject listWaitingObject = (ListWaitingObject)waitingObject; if (((EClass) waitingObject.getEReference().getEType()).isSuperTypeOf(eObject.eClass())) { while (list.size() <= listWaitingObject.getIndex()) { EObject create = ec.getEPackage().getEFactoryInstance().create(eObject.eClass()); if (((EClass) waitingObject.getEReference().getEType()).isSuperTypeOf(eObject.eClass())) { waitingObject.getObject().eSet(waitingObject.getEReference(), eObject); } else {
public void updateNode(int expressId, EClass ec, VirtualObject eObject) throws DeserializeException, BimserverDatabaseException { for (WaitingVirtualObject waitingObject : waitingObjects.get(expressId)) { if (waitingObject.getStructuralFeature().isMany()) { ListWaitingVirtualObject listWaitingObject = (ListWaitingVirtualObject)waitingObject; if (((EClass) waitingObject.getStructuralFeature().getEType()).isSuperTypeOf(eObject.eClass())) { if (waitingObject instanceof TwoDimensionalListWaitingVirtualObject) { TwoDimensionalListWaitingVirtualObject twoDimensionalListWaitingVirtualObject = (TwoDimensionalListWaitingVirtualObject)waitingObject; ListCapableVirtualObject object2 = twoDimensionalListWaitingVirtualObject.getObject2(); object2.setListItemReference(waitingObject.getStructuralFeature(), listWaitingObject.getIndex(), eObject.eClass(), eObject.getOid(), waitingObject.getBufferPosition()); } else { waitingObject.getObject().setListItemReference(waitingObject.getStructuralFeature(), listWaitingObject.getIndex(), eObject.eClass(), eObject.getOid(), waitingObject.getBufferPosition()); } decrementOpenConnections(waitingObject.getObject()); } else { throw new DeserializeException(waitingObject.getLineNumber(), "Field " + waitingObject.getStructuralFeature().getName() + " of " + waitingObject.getStructuralFeature().getEContainingClass().getName() + " cannot contain a " + eObject.eClass().getName()); } } else { if (((EClass) waitingObject.getStructuralFeature().getEType()).isSuperTypeOf(eObject.eClass())) { waitingObject.getObject().setReference(waitingObject.getStructuralFeature(), eObject.getOid(), waitingObject.getBufferPosition()); decrementOpenConnections(waitingObject.getObject()); } else { throw new DeserializeException(waitingObject.getLineNumber(), "Field " + waitingObject.getStructuralFeature().getName() + " of " + waitingObject.getStructuralFeature().getEContainingClass().getName() + " cannot contain a " + eObject.eClass().getName() + "/" + eObject.getOid()); } } } waitingObjects.remove(expressId); }
HashMapVirtualObject next = queryObjectProvider.next(); while (next != null) { if (packageMetaData.getEClass("IfcSIUnit").isSuperTypeOf(next.eClass())) { if (next.get("UnitType") == packageMetaData.getEEnumLiteral("IfcUnitEnum", "LENGTHUNIT").getInstance()) { Object prefix = next.get("Prefix");