public QueryIncludeStackFrame(QueryObjectProvider queryObjectProvider, QueryContext queryContext, CanInclude previousInclude, Include include, HashMapVirtualObject currentObject, QueryPart queryPart) throws QueryException, BimserverDatabaseException { super(queryContext, queryObjectProvider, queryPart); this.include = include; this.currentObject = currentObject; List<EReference> features = include.getFields(); List<EReference> featuresDirect = include.getFieldsDirect(); if ((features == null || features.isEmpty()) && (featuresDirect == null || featuresDirect.isEmpty())) { setDone(true); return; } if (features == null) { featureIterator = featuresDirect.iterator(); directFeatureSet = new HashSet<>(featuresDirect); } else if (featuresDirect == null) { featureIterator = features.iterator(); } else { featureIterator = Iterators.concat(features.iterator(), featuresDirect.iterator()); } if (include.getOutputTypes() != null) { this.outputFilterCids = new HashSet<>(); for (EClass eClass : include.getOutputTypes()) { short cid = queryObjectProvider.getDatabaseSession().getCidOfEClass(eClass); outputFilterCids.add(cid); } } }
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)); } }
for (EReference eReference : include.getFields()) { fieldsNode.add(eReference.getName());
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; } }
for (EReference field : getFields()) { sb.append(indent(indent + 1) + field.getName() + "\n");
Include inc = ((Include)canInclude); if (inc.hasFields()) { for (EReference field : inc.getFields()) { if (ifcProduct.isSuperTypeOf((EClass)field.getEType()) || ((EClass)field.getEType()).isSuperTypeOf(ifcProduct)) { Include newInclude = inc.createInclude();
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; } }
for (EStructuralFeature eStructuralFeature : include.getFields()) {