public void addType(EClass type, boolean includeAllSubTypes, Set<EClass> excludedEClasses) { if (types == null) { types = new LinkedHashSet<>(); } types.add(new TypeDef(type, includeAllSubTypes, excludedEClasses)); // if (includeAllSubTypes) { // types.addAll(packageMetaData.getAllSubClasses(type)); // } }
if (packageMetaData.getEClass("IfcProduct").isSuperTypeOf(typeDef.geteClass())) { Include include = queryPart.createInclude(); applyFields(geometryFields, new TypeDef(packageMetaData.getEClass("IfcProduct"), true), include); applyFields(geometryFields, new TypeDef(packageMetaData.getEClass("IfcProduct"), true), newInclude);
queryPartNode.set("types", typesNode); for (TypeDef type : queryPart.getTypes()) { if (type.isIncludeSubTypes()) { ObjectNode typeDefNode = OBJECT_MAPPER.createObjectNode(); typeDefNode.put("name", type.geteClass().getName()); typeDefNode.put("includeAllSubTypes", type.isIncludeSubTypes()); if (type.hasExcludes()) { ArrayNode exludeNodes = OBJECT_MAPPER.createArrayNode(); for (EClass excl : type.getExcluded()) { exludeNodes.add(excl.getName()); typesNode.add(type.geteClass().getName());
Set<EClass> set = new HashSet<>(); for (TypeDef typeDef : partialQuery.getTypes()) { set.add(typeDef.geteClass()); if (typeDef.isIncludeSubTypes()) { if (typeDef.hasExcludes()) { for (EClass eClass : reusable.getPackageMetaData().getAllSubClasses(typeDef.geteClass())) { if (!typeDef.excludes(eClass)) { set.add(eClass); set.addAll(reusable.getPackageMetaData().getAllSubClasses(typeDef.geteClass()));
for (TypeDef type : include.getTypes()) { ObjectNode typeDefNode = OBJECT_MAPPER.createObjectNode(); typeDefNode.put("name", type.geteClass().getName()); typeDefNode.put("includeAllSubTypes", type.isIncludeSubTypes()); if (type.getExcluded() != null) { ArrayNode excludesNode = OBJECT_MAPPER.createArrayNode(); for (EClass eClass : type.getExcluded()) { excludesNode.add(eClass.getName());
for (TypeDef filterClass : include.getTypes()) { if (!filterClass.geteClass().isSuperTypeOf(object.eClass())) {
sb.append(indent(indent) + "types\n"); for (TypeDef type : getTypes()) { sb.append(indent(indent + 1) + type.geteClass().getName() + ", " + type.isIncludeSubTypes() + "\n");
sb.append(indent(indent) + "types\n"); for (TypeDef typeDef : getTypes()) { sb.append(indent(indent + 1) + typeDef.geteClass().getName() + "\n");
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);
include.addField("geometry"); Include include2 = include.createInclude(); include2.addType(new TypeDef(GeometryPackage.eINSTANCE.getGeometryInfo(), false)); include2.addField("data");
include.addField("geometry"); Include include2 = include.createInclude(); include2.addType(new TypeDef(GeometryPackage.eINSTANCE.getGeometryInfo(), false)); include2.addField("data");
Set<String> exludeStrings = new HashSet<>(); for (TypeDef typeDef : queryPart.getTypes()) { if (typeDef.isIncludeSubTypes()) { if (typeDef.hasExcludes()) { for (EClass eClass2 : typeDef.getExcluded()) { exludeStrings.add(eClass2.getName());
/** * Add the fields _after_ adding the types, because the fields will be checked against the types, all types should have the given field. * * @param fieldName * @throws QueryException */ public void addField(String fieldName) throws QueryException { EReference feature = null; for (TypeDef typeDef : types) { if (typeDef.geteClass().getEStructuralFeature(fieldName) == null) { throw new QueryException("Class \"" + typeDef.geteClass().getName() + "\" does not have the field \"" + fieldName + "\""); } if (feature == null) { if (!(typeDef.geteClass().getEStructuralFeature(fieldName) instanceof EReference)) { throw new QueryException(fieldName + " is not a reference"); } feature = (EReference) typeDef.geteClass().getEStructuralFeature(fieldName); } else { if (feature != typeDef.geteClass().getEStructuralFeature(fieldName)) { throw new QueryException("Classes \"" + typeDef.geteClass().getName() + "\" and \"" + feature.getEContainingClass().getName() + "\" have fields with the same name, but they are not logically the same"); } } } if (fields == null) { fields = new ArrayList<>(); } fields.add(feature); }
public void addFieldDirect(String fieldName) throws QueryException { EReference feature = null; for (TypeDef typeDef : types) { if (typeDef.geteClass().getEStructuralFeature(fieldName) == null) { throw new QueryException("Class \"" + typeDef.geteClass().getName() + "\" does not have the field \"" + fieldName + "\""); } if (feature == null) { if (!(typeDef.geteClass().getEStructuralFeature(fieldName) instanceof EReference)) { throw new QueryException(fieldName + " is not a reference"); } feature = (EReference) typeDef.geteClass().getEStructuralFeature(fieldName); } else { if (feature != typeDef.geteClass().getEStructuralFeature(fieldName)) { throw new QueryException("Classes \"" + typeDef.geteClass().getName() + "\" and \"" + feature.getEContainingClass().getName() + "\" have fields with the same name, but they are not logically the same"); } } } if (fieldsDirect == null) { fieldsDirect = new ArrayList<>(); } fieldsDirect.add(feature); }
private boolean typeDefContains(QueryPart queryPart, EClass eClass) { for (TypeDef typeDef : queryPart.getTypes()) { if (typeDef.geteClass() == eClass) { return true; } if (typeDef.isIncludeSubTypes()) { for (EClass subType : packageMetaData.getAllSubClasses(eClass)) { if (subType == eClass && !typeDef.excludes(subType)) { return true; } } } } return false; }
public void addType(EClass type, boolean includeAllSubTypes) { if (types == null) { types = new LinkedHashSet<>(); } types.add(new TypeDef(type, includeAllSubTypes)); }
public void addType(EClass eClass, boolean includeAllSubTypes) { if (eClass == null) { throw new IllegalArgumentException("eClass cannot be null"); } if (types == null) { types = new HashSet<>(); } types.add(new TypeDef(eClass, includeAllSubTypes)); // if (includeAllSubTypes) { // types.addAll(packageMetaData.getAllSubClasses(eClass)); // } }
@Override public void addType(EClass eClass, boolean includeAllSubTypes, Set<EClass> excludedEClasses) { if (eClass == null) { throw new IllegalArgumentException("eClass cannot be null"); } if (types == null) { types = new HashSet<>(); } types.add(new TypeDef(eClass, includeAllSubTypes, excludedEClasses)); }