cancel
Showing results for 
Search instead for 
Did you mean: 

Get an element list of an alfresco folder(or space)

alestudent
Champ in-the-making
Champ in-the-making
Hi,
i'am new in using alfresco.
I'm using webservices, and i want to access a folder ( i try with the company_home one ) and i would get the names of each element (the default ones that are the three folders "User Homes", "Dictionary Home", "Guest Home" and a file that i imported) in that folder . I think i have to use RepositoryWebService, in webServices API, but i can't find the way to obtain the elements' names.

Can someone help me please?
5 REPLIES 5

sidra
Champ in-the-making
Champ in-the-making
Hi,

I have the same question. If you found how it could be made please forward it.

Thanks in advance,
     Sidra.

robertoroberto
Champ in-the-making
Champ in-the-making
I think, You should do a lucene query and analyse the reasults.

alestudent
Champ in-the-making
Champ in-the-making
The way that i found is this:

First of all i call this method that will return the list name of the content in a folder (maybe there is to adjust the path expression in some way respect of situation in which one is):

public List<String> readFiles(UserSessionBean user, String pathFolder)
   {
      List<String> contenuto = null;
      List<ContentResult> resultContenuto = null;
      //System.out.println("metodo readFiles - EsiCmsAlfrescoFactory");
      try
      {
         //Autenticazione al repository
            AuthenticationUtils.startSession(user.getUserId(), user.getPassword());
             
            //Reistanzio l'oggetto STORE1 che mi da la root da cui partire per cercare il contenuto
            STORE1= new Store (WORKSPACE,SPACESSTORE);
           
            //Creo la reference alla cartella in cui voglio andare a vedere il contenuto da listare
            ref = new Reference(STORE1, null, pathFolder );
           
            //Creo la lista che conterrà i nomi dei contenuti della cartella company_home
            contenuto = new LinkedList<String>();
           
            //Faccio la query sempre sulla cartella iniziale company_home
            DoQuery dq = new DoQuery(ref,1);
            //Setto la lista mettendo all'interno i risultati della query corrispoindenti agli elementi della company_home
            resultContenuto = dq.getCrl();
           
            //Di ogni elemento della lista ContentResult, ovvero di ogni child di company_home ne prendo il nome e lo metto nella lista apposita
            for(int i=0; i<resultContenuto.size(); i++)
            {
               contenuto.add(resultContenuto.get(i).getName());
            }
            //Stampo a video i nomi           
            for(int i=0; i<contenuto.size(); i++)
            {
               System.out.println(contenuto.get(i));
            }

      }catch (Exception err)
      {
         err.printStackTrace();
      }
      finally
      {
         AuthenticationUtils.endSession();
      }
      
      return contenuto;
——————————————————————————————————————————————-
IN PARTICULAR THIS METHOD CALL AN OBJECT "DOQUERY"  that in this constructor call the following method:

private void createList1(Reference re)throws RepositoryFault, RemoteException
   {
      QueryResult qr = WebServiceFactory.getRepositoryService().queryChildren(re);
        // Ottiene i nodi figli del nodo corrente (nel nostro caso company_home)come se fossero in una tabella
        ResultSet childResultSet = qr.getResultSet();
       
        //Di tale tabella ne estrae le righe, e ogni riga corrisponde ad uno dei nodi figli, e le mette in un array
        ResultSetRow[] childRows = childResultSet.getRows();

        //Cerco di estrarre per ogni nodo figlio risultato dalla query le proprietà sue (dal nome alla data di creazione)
        if (childRows != null)
        {
           //Scorre l'array con i nodi figli all'interno (array delle righe della tabella risultato della query)
           for(int i=0; i<childRows.length; i++)
           {   
              
              //Per ogni riga estrae l'id del nodo corrispondente e ne crea il ContentResult object
              String nodeId = childRows.getNode().getId();
              
              ContentResult cr = new ContentResult(nodeId);
              //Di ogni nodo ne estrae il NamedValue[] che è l'insieme di tutte le proprietà dei nodi
              NamedValue[] nv1 = childRows.getColumns();
              
              //Scorre il NamedValue[] di ogni nodo, ne estrae ogni tipo di proprietà e la setta nell'ìoggetto ContentResult fatto appositamente
              for (int k=0; k<nv1.length; k++)
              {   
                 if (nv1[k].getName().endsWith(Constants.PROP_CREATED) == true)
                    {
                        cr.setCreateDate(nv1[k].getValue());
                    }
                    else if (nv1[k].getName().endsWith(Constants.PROP_NAME) == true)
                    {
                        cr.setName(nv1[k].getValue());
                    }
                    else if (nv1[k].getName().endsWith(Constants.PROP_DESCRIPTION) == true)
                    {
                        cr.setDescription(nv1[k].getValue());  
                    }
                    else if (nv1[k].getName().endsWith(Constants.PROP_CONTENT) == true)
                    {                                      
                        String contentString = nv1[k].getValue();
                        cr.setContent(contentString);
                    }
                }
                //mette l'oggetto nella lista creata inizialmente
                crl.add(cr);  
              }
           }
   }
————————————————————————————————————————————-
SORRY FOR THE COMMENT IN ITALIAN;

sidra
Champ in-the-making
Champ in-the-making
robertoroberto, could you be more specific..
an example maybe .. pls

sidra
Champ in-the-making
Champ in-the-making
Thank you Ale student,

I still have some questions..i get errors at  UserSessionBean, ContentResult, WORKSPACE,SPACESSTORE - i dont know with what to initalize,  DoQuery, getCrl - i don't know what members and methods should contain..
sry for bothering with this kind of questions..

salute,
  sidra