Refactor Argeo APIs
[gpl/argeo-suite.git] / org.argeo.app.jcr / src / org / argeo / app / jcr / terms / SuiteTermsManager.java
index 6327a552f9880cdfdb906b344058ef3a62d39d69..30ecb764301164a1145be5f33024cc3013a15b54 100644 (file)
@@ -4,17 +4,21 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 
 import javax.jcr.Node;
+import javax.jcr.NodeIterator;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
+import org.argeo.api.app.EntityNames;
+import org.argeo.api.app.EntityType;
+import org.argeo.api.app.Term;
+import org.argeo.api.app.TermsManager;
+import org.argeo.api.app.Typology;
 import org.argeo.api.cms.CmsConstants;
-import org.argeo.app.api.EntityNames;
-import org.argeo.app.api.EntityType;
-import org.argeo.app.api.Term;
-import org.argeo.app.api.TermsManager;
 import org.argeo.cms.jcr.CmsJcrUtils;
 import org.argeo.jcr.Jcr;
 import org.argeo.jcr.JcrException;
@@ -60,6 +64,16 @@ public class SuiteTermsManager implements TermsManager {
                return t;
        }
 
+       @Override
+       public Set<Typology> getTypologies() {
+               Set<Typology> res = new TreeSet<>((o1, o2) -> o1.getId().compareTo(o2.getId()));
+               NodeIterator termsNodes = Jcr.executeQuery(adminSession, "SELECT * FROM [{0}]", EntityType.terms.get());
+               for (Node termsNode : Jcr.iterate(termsNodes)) {
+                       res.add(loadTypology(termsNode));
+               }
+               return res;
+       }
+
        SuiteTypology loadTypology(Node termsNode) {
                try {
                        SuiteTypology typology = new SuiteTypology(termsNode);