public void makeDirectRecursive(Set<Include> done) { if (done.contains(this)) { return; } done.add(this); if (this.fieldsDirect == null) { this.fieldsDirect = new ArrayList<>(); } if (this.fields != null) { this.fieldsDirect.addAll(this.fields); this.fields.clear(); } if (hasIncludes()) { for (Include inc : this.includes) { inc.makeDirectRecursive(done); } } if (hasReferences()) { for (Reference reference : references) { reference.getInclude().makeDirectRecursive(done); } } }
public void addIncludeReference(Include down, String name) { if (references == null) { references = new ArrayList<>(); } references.add(new Reference(down, name)); }
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; } }
includes.add(reference.getName());
includesNode.add(reference.getName());
apply(geometryFields, packageMetaData, reference.getInclude(), updatedIncludes);
@Override public void addIncludeReference(Include down, String name) { if (references == null) { references = new ArrayList<>(); } references.add(new Reference(down, name)); }
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); } } }
if (queryPart.hasReferences()) { for (Reference reference : queryPart.getReferences()) { apply(geometryFields, packageMetaData, reference.getInclude(), updatedIncludes);