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);
}
}
}