private void applyFields(Set<String> geometryFields, TypeDef typeDef, Include include) throws QueryException { include.addType(typeDef); include.addField("geometry"); Include geometryInclude = include.createInclude(); geometryInclude.addType(GeometryPackage.eINSTANCE.getGeometryInfo(), false); geometryInclude.addField("data"); Include geometryData = geometryInclude.createInclude(); geometryData.addType(GeometryPackage.eINSTANCE.getGeometryData(), false); geometryData.addField("color"); for (String field : geometryFields) { geometryData.addField(field); } }
private void createFilteredInclude(QueryPart result, Include include) throws QueryException { Include newInclude = result.createInclude(); for (TypeDef typeDef : include.getTypes()) { newInclude.addType(typeDef); } for (EReference field : include.getFields()) { newInclude.addField(field); } for (Include include2 : include.getIncludes()) { newInclude.addInclude(createFilteredInclude(include2)); } }
if (packageMetaData.getEClass("IfcElement").isSuperTypeOf(eClass)) { Include openingsInclude = queryPart.createInclude(); openingsInclude.addType(packageMetaData.getEClass(eClass.getName()), false); openingsInclude.addField("HasOpenings"); Include hasOpenings = openingsInclude.createInclude(); hasOpenings.addType(packageMetaData.getEClass("IfcRelVoidsElement"), false); hasOpenings.addField("RelatedOpeningElement"); hasOpenings.addInclude(representationInclude);
private Include createFilteredInclude(Include inputInclude) throws QueryException { Include newInclude = new Include(inputInclude.getPackageMetaData()); for (TypeDef typeDef : inputInclude.getTypes()) { newInclude.addType(typeDef); } if (inputInclude.hasFields()) { for (EReference field : inputInclude.getFields()) { if (field.getName().equals("data")) { // Skip, this is the actual filtering return newInclude; } newInclude.addField(field); } } if (inputInclude.hasIncludes()) { for (Include include2 : inputInclude.getIncludes()) { newInclude.addInclude(createFilteredInclude(include2)); } } return newInclude; } }
Include geometryDataInclude = queryPart.createInclude(); try { geometryDataInclude.addType(GeometryPackage.eINSTANCE.getGeometryData(), false); geometryDataInclude.addFieldDirect("vertices");
if (packageMetaData.getEClass("IfcElement").isSuperTypeOf(eClass)) { Include connected = queryPart.createInclude(); connected.addType(eClass, false); connected.addField("ConnectedTo"); connected.addField("ConnectedFrom"); Include connectedTo = connected.createInclude(); connectedTo.addType(packageMetaData.getEClass("IfcRelConnectsPathElements"), false); connectedTo.addField("RelatedElement"); connectedTo.addField("RelatingElement"); openingsInclude.addType(packageMetaData.getEClass(eClass.getName()), false); openingsInclude.addField("HasOpenings"); Include hasOpenings = openingsInclude.createInclude(); hasOpenings.addType(packageMetaData.getEClass("IfcRelVoidsElement"), false); hasOpenings.addField("RelatedOpeningElement"); hasOpenings.addInclude(representationInclude); fillsVoidsInclude.addType(eClass, false); fillsVoidsInclude.addField("VoidsElements"); Include fillsInclude = fillsVoidsInclude.createInclude(); fillsInclude.addType(packageMetaData.getEClass("IfcRelVoidsElement"), false); fillsInclude.addField("RelatingBuildingElement"); materialsInclude.addType(eClass, false); materialsInclude.addField("HasAssociations"); materialsInclude.addInclude(jsonQueryObjectModelConverter.getDefineFromFile(queryNameSpace + ":IfcRelAssociatesMaterial", true)); openingsInclude.addType(packageMetaData.getEClass(eClass.getName()), false); openingsInclude.addField("HasOpenings");
unitQueryPart.addType(packageMetaData.getEClass("IfcProject"), false); Include unitsInContextInclude = unitQueryPart.createInclude(); unitsInContextInclude.addType(packageMetaData.getEClass("IfcProject"), false); unitsInContextInclude.addField("UnitsInContext"); Include units = unitsInContextInclude.createInclude(); units.addType(packageMetaData.getEClass("IfcUnitAssignment"), false); units.addField("Units"); Include unit = units.createInclude(); unit.addType(packageMetaData.getEClass("IfcSIUnit"), false);
if (includeGeometry && getPackageMetaData().getEClass("IfcProduct").isSuperTypeOf(eClass)) { Include include = queryPart.createInclude(); include.addType(eClass, false); include.addField("geometry"); Include include2 = include.createInclude(); include2.addType(new TypeDef(GeometryPackage.eINSTANCE.getGeometryInfo(), false)); include2.addField("data");
EClass geometryInfoClass = getPackageMetaData().getEClassIncludingDependencies("GeometryInfo"); Include include = queryPart.createInclude(); include.addType(geometryInfoClass, false); include.addField("data"); Include geometryData = include.createInclude(); geometryData.addType(getPackageMetaData().getEClassIncludingDependencies("GeometryData"), false); geometryData.addFieldDirect("indices"); geometryData.addFieldDirect("normals");
for (EReference eReference : packageMetaData.getAllHasInverseReferences(eClass)) { Include include = queryPart.createInclude(); include.addType(eClass, true); include.addField(eReference.getName());
queryPart2.addType(eClass, false); Include representationInclude = queryPart2.createInclude(); representationInclude.addType(eClass, false); representationInclude.addFieldDirect("Representation"); Include representationsInclude = representationInclude.createInclude(); representationsInclude.addType(packageMetaData.getEClass("IfcProductRepresentation"), true); representationsInclude.addFieldDirect("Representations"); Include itemsInclude = representationsInclude.createInclude(); itemsInclude.addType(packageMetaData.getEClass("IfcShapeRepresentation"), false); itemsInclude.addFieldDirect("Items"); itemsInclude.addFieldDirect("ContextOfItems"); Include mappingSourceInclude = itemsInclude.createInclude(); mappingSourceInclude.addType(packageMetaData.getEClass("IfcMappedItem"), false); mappingSourceInclude.addFieldDirect("MappingSource"); mappingSourceInclude.addFieldDirect("MappingTarget"); Include representationMap = mappingSourceInclude.createInclude(); representationMap.addType(packageMetaData.getEClass("IfcRepresentationMap"), false); representationMap.addFieldDirect("MappedRepresentation"); Include createInclude = representationMap.createInclude(); createInclude.addType(packageMetaData.getEClass("IfcShapeRepresentation"), true); targetInclude.addType(packageMetaData.getEClass("IfcCartesianTransformationOperator3D"), false); targetInclude.addFieldDirect("Axis1"); targetInclude.addFieldDirect("Axis2"); queryPart3.addType(eClass, false); Include include3 = queryPart3.createInclude(); include3.addType(eClass, false); include3.addFieldDirect("Representation");
product.addType(packageMetaData.getEClass("IfcProduct"), true); product.addFieldDirect("geometry"); Include geometryInfo = product.createInclude(); geometryInfo.addType(GeometryPackage.eINSTANCE.getGeometryInfo(), false); geometryInfo.addFieldDirect("data"); geometryInfo.addFieldDirect("boundsMm"); Include boundsInclude = geometryInfo.createInclude(); boundsInclude.addType(GeometryPackage.eINSTANCE.getBounds(), false); boundsInclude.addFieldDirect("min"); boundsInclude.addFieldDirect("max"); Include dataInclude = geometryInfo.createInclude(); dataInclude.addType(GeometryPackage.eINSTANCE.getGeometryData(), false); dataInclude.addFieldDirect("boundsMm"); Include dataBoundsInclude = dataInclude.createInclude(); dataBoundsInclude.addType(GeometryPackage.eINSTANCE.getBounds(), false); dataBoundsInclude.addFieldDirect("min"); dataBoundsInclude.addFieldDirect("max");
public Include copy() throws QueryException { Include newInclude = new Include(getPackageMetaData()); if (hasDirectFields()) { for (EReference eReference : getFieldsDirect()) { newInclude.addFieldDirect(eReference.getName()); } } if (hasTypes()) { for (TypeDef typeDef : getTypes()) { newInclude.addType(typeDef); } } if (hasFields()) { for (EReference eReference : getFields()) { newInclude.addField(eReference); } } if (hasReferences()) { for (Reference reference : getReferences()) { newInclude.addIncludeReference(reference.getInclude(), reference.getName()); } } return newInclude; } }
protected void processPossibleIncludes(HashMapVirtualObject object, EClass previousType, CanInclude canInclude) throws QueryException, BimserverDatabaseException { if (object != null) { if (canInclude.hasReferences()) { for (Reference reference : canInclude.getReferences()) { processPossibleInclude(object, canInclude, reference.getInclude()); } } if (canInclude.hasIncludes()) { for (Include include : canInclude.getIncludes()) { processPossibleInclude(object, canInclude, include); } } if (canInclude.isIncludeAllFields()) { for (EReference eReference : object.eClass().getEAllReferences()) { Include include = new Include(reusable.getPackageMetaData()); include.addType(object.eClass(), false); include.addField(eReference.getName()); if (canInclude.hasIncludes()) { for (Include include2 : canInclude.getIncludes()) { include.addInclude(include2); } } processPossibleInclude(object, canInclude, include); } } if (canInclude instanceof Include) { processPossibleInclude(object, null, (Include) canInclude); } } }