diff --git a/src/main/java/org/gcube/informationsystem/utils/discovery/ElementSpecilizationDiscovery.java b/src/main/java/org/gcube/informationsystem/utils/discovery/ElementSpecilizationDiscovery.java index 10e0353..612a708 100644 --- a/src/main/java/org/gcube/informationsystem/utils/discovery/ElementSpecilizationDiscovery.java +++ b/src/main/java/org/gcube/informationsystem/utils/discovery/ElementSpecilizationDiscovery.java @@ -31,20 +31,31 @@ public class ElementSpecilizationDiscovery { protected final Class root; protected final List packages; protected final List> discovered; + protected final boolean includeRootPackage; public List> getDiscovered() { return discovered; } public ElementSpecilizationDiscovery(Class root) { + this(root, true); + } + + public ElementSpecilizationDiscovery(Class root, boolean includeRootPackage) { this.root = root; this.packages = new ArrayList<>(); - addPackage(root.getPackage()); + this.includeRootPackage = includeRootPackage; + if(includeRootPackage) { + addPackage(root.getPackage()); + } this.discovered = new ArrayList<>(); add(root); } public void addPackage(Package p) { + if(!includeRootPackage && p==root.getPackage()) { + return; + } packages.add(p); }