Re: how to get collections tree from xindice
Todd Byrne <[email protected]>
| Newsgroups | gmane.text.xml.xindice.user |
|---|---|
| Message-ID | <[email protected]> |
Try collection.getResourceCount() it will return you the number of
documents in the collection and start.getChildCollectionCount() to get
the number of child collections.
Change
//int liczbaDokumentow = (int)kolekcja.getDocumentCount();
to
int liczbaDokumentow = (int)kolekcja.getResourceCount();
And that should get you going.
Todd
Marcin Goldyn wrote:
> i know how to get ChildCollections and built collection tree
> but also i have to get documents stores in particular collections. There
> are methods like getDocumentsCount() and listDocuments() in
> org.apache.xindice.core.Collection class but this class isn`t work with
> org.xmldb.api.DatabaseManager so i cant register database. Maybe there
> is another way to register database using
> org.apache.xindice.core.Collection class? or there is another way to
> listDocumetns and count their number??
>
> DBConnection.java
> package praca.app;
>
>
>
> import org.xmldb.api.base.Database;
> import org.xmldb.api.DatabaseManager;
>
>
>
> public final class DBConnection
> {
> public String addressIP;
> public String port;
> protected static Database db = null;
>
>
>
>
> Database getDB() throws Exception
> {
>
> try
> {
> db =
> (Database)Class.forName("org.apache.xindice.client.xmldb.DatabaseImpl").newInstance();
>
> DatabaseManager.registerDatabase(db);
> }
> catch(Exception e)
> {
> System.out.println(e.getMessage());
> e.printStackTrace();
> }
> return db;
> }
>
>
> }
>
> CollectionTree.java
> import org.xmldb.api.DatabaseManager;
> import org.xmldb.api.base.Collection;
> import org.xmldb.api.base.Database;
>
> //import org.apache.xindice.client.xmldb.DatabaseImpl;
> //import org.apache.xindice.core.Collection;
> //import org.apache.xindice.core.Database;
>
> public class CollectionTree
> {
> public static Database db = null;
> public static final String
> XINDICEURI="xmldb:xindice://localhost:8080/db/";
> protected static Collection collection;
> static int errorCode = 0;
> static int okCode = 1;
> static int liczbaSpacji = 0;
>
> public static void ileSpacji(int liczba)
> {
> if (liczba>0)
> {
> for (int i=0; i<liczba; i++)
> System.out.print(" ");
> }
> }
>
> public static int treeCreate(Collection kolekcja) throws Exception
> {
>
> int liczbaKolekcji = (int)kolekcja.getChildCollectionCount();
> //int liczbaDokumentow = (int)kolekcja.getDocumentCount();
>
> if (liczbaKolekcji > 0)
> {
> String tablica[] = new String[liczbaKolekcji];
> tablica = kolekcja.listChildCollections();
>
> for (int i=0; i<liczbaKolekcji; i++)
> {
> ileSpacji(liczbaSpacji);
> System.out.println("<"+tablica[i]+">");
> liczbaSpacji++;
> treeCreate(kolekcja.getChildCollection(tablica[i]));
> liczbaSpacji--;
> ileSpacji(liczbaSpacji);
> kolekcja.getClass();
> /*if (liczbaDokumentow > 0)
> {
> String tablicaDok[] = new String[liczbaDokumentow];
> tablicaDok = kolekcja.listDocuments();
> for (int j=0; j<liczbaDokumentow; j++)
> {
> System.out.println("<DOC "+tablicaDok[j]+" /");
> }
> }
> */
> System.out.println("</"+tablica[i]+">");
>
> }
>
> }
> else
> return errorCode;
> return okCode;
> }
> public static void main(String[] args) throws Exception
> {
>
>
>
> try
> {
> DBConnection dbcon = new DBConnection();
> db = dbcon.getDB();
> collection = DatabaseManager.getCollection(XINDICEURI);
>
> }
> catch(Exception e)
> {
> System.err.println("XML:DB Exception occured " +
> e.getMessage());
> e.printStackTrace();
> }
>
>
> if (collection.getChildCollectionCount() > 0)
> treeCreate(collection);
>
> }
>
> }
>