pnever      02/05/10 09:22:22

  Modified:    src/stores/slidestore/file XMLFileDescriptorsStore.java
                        UriProperties.java AbstractUriProperties.java
  Log:
  - Fixed several bugs
  - Disabled println's to System.out
  
  Revision  Changes    Path
  1.4       +119 -119  
jakarta-slide/src/stores/slidestore/file/XMLFileDescriptorsStore.java
  
  Index: XMLFileDescriptorsStore.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/stores/slidestore/file/XMLFileDescriptorsStore.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XMLFileDescriptorsStore.java      25 Apr 2002 21:15:16 -0000      1.3
  +++ XMLFileDescriptorsStore.java      10 May 2002 16:22:21 -0000      1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-slide/src/stores/slidestore/file/XMLFileDescriptorsStore.java,v 1.3 
2002/04/25 21:15:16 jericho Exp $
  - * $Revision: 1.3 $
  - * $Date: 2002/04/25 21:15:16 $
  + * $Header: 
/home/cvs/jakarta-slide/src/stores/slidestore/file/XMLFileDescriptorsStore.java,v 1.4 
2002/05/10 16:22:21 pnever Exp $
  + * $Revision: 1.4 $
  + * $Date: 2002/05/10 16:22:21 $
    *
    * ====================================================================
    *
  @@ -78,10 +78,10 @@
    * Memory with persistence, reorganization of the <a 
href="mailto:[EMAIL PROTECTED]";>Remy Maucherat</a>
    * Reference implementation.
    * Use of UriProperties.
  - * 
  + *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Marc D�cugis</a>
  - * @contact <a href="mailto:[EMAIL PROTECTED]";>Remy Maucherat</a> 
  - * @version $Revision: 1.3 $ , $Date: 2002/04/25 21:15:16 $
  + * @contact <a href="mailto:[EMAIL PROTECTED]";>Remy Maucherat</a>
  + * @version $Revision: 1.4 $ , $Date: 2002/05/10 16:22:21 $
    */
   public class XMLFileDescriptorsStore extends AbstractService
       implements LockStore, NodeStore, RevisionDescriptorsStore,
  @@ -126,17 +126,17 @@
       public void setParameters(Hashtable parameters)
           throws ServiceParameterErrorException,
           ServiceParameterMissingException {
  -             // copy/paste of FileDescriptorsStoreNoVersioning
  -             
  -             
  +        // copy/paste of FileDescriptorsStoreNoVersioning
  +        
  +        
           // A parameter will tell were serialization files are.
           rootpath = (String) parameters.get("rootpath");
           if (rootpath == null) {
  -            // Default is that files are stored starting in the 
  +            // Default is that files are stored starting in the
               // current directory
               rootpath = "";
           }
  -             System.out.println("----------- XMLMemDescriptorsStore setParameters 
rootpath="+rootpath);
  +        // System.out.println("----------- XMLMemDescriptorsStore setParameters 
rootpath="+rootpath);
       }
       
       
  @@ -147,7 +147,7 @@
        */
       public synchronized void connect()
           throws ServiceConnectionFailedException {
  -             System.out.println("----------- XMLMemDescriptorsStore connect 
definitions="+definitions);
  +        // System.out.println("----------- XMLMemDescriptorsStore connect 
definitions="+definitions);
           if (definitions == null) {
               definitions = new Hashtable();
           }
  @@ -173,8 +173,8 @@
       public synchronized void initialize(NamespaceAccessToken token)
           throws ServiceInitializationFailedException {
           super.initialize(token);
  -             System.out.println("----------- XMLMemDescriptorsStore initialize 
token="+token);
  -             definitions = new Hashtable();
  +        // System.out.println("----------- XMLMemDescriptorsStore initialize 
token="+token);
  +        definitions = new Hashtable();
       }
       
       
  @@ -185,8 +185,8 @@
        */
       public synchronized void reset()
           throws ServiceResetFailedException {
  -             
  -             definitions = new Hashtable();
  +        
  +        definitions = new Hashtable();
       }
       
       
  @@ -226,21 +226,21 @@
       public ObjectNode retrieveObject(Uri uri)
           throws ServiceAccessException, ObjectNotFoundException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore retrieveObject 
uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore retrieveObject 
uri="+uri+" aProps="+aProps);
           if (aProps == null) {
  -                     File aFile=UriProperties.getFile(rootpath,uri);
  -                     if (aFile.exists()) {
  -                             try {
  -                                     aProps=new UriProperties(rootpath,uri);
  -                             }
  -                             catch (ServiceAccessException e) {
  -                                     throw new ObjectNotFoundException(uri);
  -                             }
  -                             definitions.put(uri.toString(),aProps);
  -                     }
  -                     else {
  -                             throw new ObjectNotFoundException(uri);
  -                     }
  +            File aFile=UriProperties.getFile(rootpath,uri);
  +            if (aFile.exists()) {
  +                try {
  +                    aProps=new UriProperties(rootpath,uri);
  +                }
  +                catch (ServiceAccessException e) {
  +                    throw new ObjectNotFoundException(uri);
  +                }
  +                definitions.put(uri.toString(),aProps);
  +            }
  +            else {
  +                throw new ObjectNotFoundException(uri);
  +            }
           }
           return aProps.retrieveObject(uri);
       }
  @@ -256,17 +256,17 @@
       public void storeObject(Uri uri, ObjectNode object)
           throws ServiceAccessException, ObjectNotFoundException {
           UriProperties aProps = getUriProperties(uri);
  -             try {
  -                     if (aProps == null) {
  -                             aProps=new UriProperties(rootpath,uri);
  -                             definitions.put(uri.toString(),aProps);
  -                     }
  -             }
  -             catch (Throwable t) {
  -                     t.printStackTrace();
  -             }
  -             aProps.storeObject(uri,object);
  -             System.out.println("----------- XMLMemDescriptorsStore storeObject 3/n 
uri="+uri+" aProps="+aProps);
  +        try {
  +            if (aProps == null) {
  +                aProps=new UriProperties(rootpath,uri);
  +                definitions.put(uri.toString(),aProps);
  +            }
  +        }
  +        catch (Throwable t) {
  +            t.printStackTrace();
  +        }
  +        aProps.storeObject(uri,object);
  +        // System.out.println("----------- XMLMemDescriptorsStore storeObject 3/n 
uri="+uri+" aProps="+aProps);
   
       }
       
  @@ -283,14 +283,14 @@
       public void createObject(Uri uri, ObjectNode object)
           throws ServiceAccessException, ObjectAlreadyExistsException {
           try {
  -                     UriProperties aProps = getUriProperties(uri);
  -                     System.out.println("----------- XMLMemDescriptorsStore 1/n 
createObject uri="+uri+" aProps="+aProps);
  -                     if (aProps == null) {
  -                             storeObject(uri,object);
  +            UriProperties aProps = getUriProperties(uri);
  +            // System.out.println("----------- XMLMemDescriptorsStore 1/n 
createObject uri="+uri+" aProps="+aProps);
  +            if (aProps == null) {
  +                storeObject(uri,object);
  +            }
  +            else {
  +                aProps.createObject(uri, object);
               }
  -                     else {
  -                             aProps.createObject(uri, object);
  -                     }
           } catch(ObjectNotFoundException e) {
               // Never happens
           }
  @@ -306,13 +306,13 @@
        */
       public void removeObject(Uri uri, ObjectNode object)
           throws ServiceAccessException, ObjectNotFoundException {
  -             UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore removeObject 
1/n uri="+uri+" aProps="+aProps);
  -             if (aProps == null) {
  +        UriProperties aProps = getUriProperties(uri);
  +        // System.out.println("----------- XMLMemDescriptorsStore removeObject 1/n 
uri="+uri+" aProps="+aProps);
  +        if (aProps == null) {
               throw new ObjectNotFoundException(uri);
           }
           aProps.removeObject(uri,object);
  -             System.out.println("----------- XMLMemDescriptorsStore removeObject 
2/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore removeObject 2/n 
uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -325,13 +325,13 @@
       public void grantPermission(Uri uri, NodePermission permission)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore grantPermission 
1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore grantPermission 
1/n uri="+uri+" aProps="+aProps);
           if (aProps == null) {
  -                     aProps=new UriProperties(rootpath,uri);
  -                     definitions.put(uri.toString(),aProps);
  +            aProps=new UriProperties(rootpath,uri);
  +            definitions.put(uri.toString(),aProps);
           }
  -             aProps.grantPermission(uri,permission);
  -             System.out.println("----------- XMLMemDescriptorsStore grantPermission 
2/n uri="+uri+" aProps="+aProps);
  +        aProps.grantPermission(uri,permission);
  +        // System.out.println("----------- XMLMemDescriptorsStore grantPermission 
2/n uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -344,11 +344,11 @@
       public void revokePermission(Uri uri, NodePermission permission)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
revokePermission 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore revokePermission 
1/n uri="+uri+" aProps="+aProps);
           if (aProps != null) {
  -                     aProps.revokePermission(uri,permission);
  +            aProps.revokePermission(uri,permission);
           }
  -             System.out.println("----------- XMLMemDescriptorsStore 
revokePermission 2/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore revokePermission 
2/n uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -361,11 +361,11 @@
       public void revokePermissions(Uri uri)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
revokePermissions 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore revokePermissions 
1/n uri="+uri+" aProps="+aProps);
           if (aProps != null) {
  -                     aProps.revokePermissions(uri);
  +            aProps.revokePermissions(uri);
           }
  -             System.out.println("----------- XMLMemDescriptorsStore 
revokePermissions 2/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore revokePermissions 
2/n uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -378,13 +378,13 @@
       public Enumeration enumeratePermissions(Uri uri)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
enumeratePermissions 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
enumeratePermissions 1/n uri="+uri+" aProps="+aProps);
           if (aProps == null) {
  -                     return new Vector().elements();
  +            return new Vector().elements();
           }
           else {
  -                     return aProps.enumeratePermissions();
  -             }
  +            return aProps.enumeratePermissions();
  +        }
       }
       
       
  @@ -397,13 +397,13 @@
       public void putLock(Uri uri, NodeLock lock)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore putLock 1/n 
uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore putLock 1/n 
uri="+uri+" aProps="+aProps);
           if (aProps == null) {
  -                     aProps=new UriProperties(rootpath,uri);
  -                     definitions.put(uri.toString(),aProps);
  +            aProps=new UriProperties(rootpath,uri);
  +            definitions.put(uri.toString(),aProps);
           }
  -             aProps.putLock(uri,lock);
  -             System.out.println("----------- XMLMemDescriptorsStore putLock 2/n 
uri="+uri+" aProps="+aProps);
  +        aProps.putLock(uri,lock);
  +        // System.out.println("----------- XMLMemDescriptorsStore putLock 2/n 
uri="+uri+" aProps="+aProps);
        }
       
       
  @@ -417,13 +417,13 @@
       public void renewLock(Uri uri, NodeLock lock)
           throws ServiceAccessException, LockTokenNotFoundException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore renewLock 1/n 
uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore renewLock 1/n 
uri="+uri+" aProps="+aProps);
           if (aProps == null) {
  -                     aProps=new UriProperties(rootpath,uri);
  -                     definitions.put(uri.toString(),aProps);
  +            aProps=new UriProperties(rootpath,uri);
  +            definitions.put(uri.toString(),aProps);
           }
  -             aProps.renewLock(uri,lock);
  -             System.out.println("----------- XMLMemDescriptorsStore renewLock 2/n 
uri="+uri+" aProps="+aProps);
  +        aProps.renewLock(uri,lock);
  +        // System.out.println("----------- XMLMemDescriptorsStore renewLock 2/n 
uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -437,13 +437,13 @@
       public void removeLock(Uri uri, NodeLock lock)
           throws ServiceAccessException, LockTokenNotFoundException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore removeLock 1/n 
uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore removeLock 1/n 
uri="+uri+" aProps="+aProps);
           if (aProps == null) {
               throw new LockTokenNotFoundException(lock);
           } else {
  -                     aProps.removeLock(uri,lock);
  +            aProps.removeLock(uri,lock);
           }
  -             System.out.println("----------- XMLMemDescriptorsStore removeLock 2/n 
uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore removeLock 2/n 
uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -470,13 +470,13 @@
       public Enumeration enumerateLocks(Uri uri)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore enumerateLocks 
1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore enumerateLocks 
1/n uri="+uri+" aProps="+aProps);
           if (aProps == null) {
  -                     return new Vector().elements();
  +            return new Vector().elements();
           }
           else {
  -                     return aProps.enumerateLocks();
  -             }
  +            return aProps.enumerateLocks();
  +        }
       }
       
       
  @@ -491,11 +491,11 @@
       public NodeRevisionDescriptors retrieveRevisionDescriptors(Uri uri)
           throws ServiceAccessException, RevisionDescriptorNotFoundException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptors 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptors 1/n uri="+uri+" aProps="+aProps);
           if (aProps == null) {
               throw new RevisionDescriptorNotFoundException(uri.toString());
           }
  -             System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptors 2/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptors 2/n uri="+uri+" aProps="+aProps);
           return aProps.retrieveRevisionDescriptors(uri);
       }
       
  @@ -511,13 +511,13 @@
           (Uri uri, NodeRevisionDescriptors revisionDescriptors)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
createRevisionDescriptors 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
createRevisionDescriptors 1/n uri="+uri+" aProps="+aProps);
           if (aProps == null) {
  -                     aProps=new UriProperties(rootpath,uri);
  -                     definitions.put(uri.toString(),aProps);
  +            aProps=new UriProperties(rootpath,uri);
  +            definitions.put(uri.toString(),aProps);
           }
  -             aProps.createRevisionDescriptors(uri,revisionDescriptors);
  -             System.out.println("----------- XMLMemDescriptorsStore 
createRevisionDescriptors 2/n uri="+uri+" aProps="+aProps);
  +        aProps.createRevisionDescriptors(uri,revisionDescriptors);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
createRevisionDescriptors 2/n uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -534,12 +534,12 @@
           (Uri uri, NodeRevisionDescriptors revisionDescriptors)
           throws ServiceAccessException, RevisionDescriptorNotFoundException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
storeRevisionDescriptors 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
storeRevisionDescriptors 1/n uri="+uri+" aProps="+aProps);
           if (aProps == null) {
               throw new RevisionDescriptorNotFoundException(uri.toString());
           }
           aProps.storeRevisionDescriptors(uri, revisionDescriptors);
  -             System.out.println("----------- XMLMemDescriptorsStore 
storeRevisionDescriptors 2/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
storeRevisionDescriptors 2/n uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -552,11 +552,11 @@
       public void removeRevisionDescriptors(Uri uri)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
removeRevisionDescriptors 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
removeRevisionDescriptors 1/n uri="+uri+" aProps="+aProps);
           if (aProps != null) {
  -                     aProps.removeRevisionDescriptors(uri);
  +            aProps.removeRevisionDescriptors(uri);
           }
  -             System.out.println("----------- XMLMemDescriptorsStore 
removeRevisionDescriptors 2/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
removeRevisionDescriptors 2/n uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -569,20 +569,20 @@
       public NodeRevisionDescriptor retrieveRevisionDescriptor (Uri uri, 
NodeRevisionNumber revisionNumber)
           throws ServiceAccessException, RevisionDescriptorNotFoundException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptor 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptor 1/n uri="+uri+" aProps="+aProps);
           if (aProps == null) {
  -                     aProps=new UriProperties(rootpath,uri);
  -                     definitions.put(uri.toString(),aProps);
  +            aProps=new UriProperties(rootpath,uri);
  +            definitions.put(uri.toString(),aProps);
  +        }
  +        // System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptor 2/n uri="+uri+" revisionNumber="+revisionNumber);
  +        try {
  +            return aProps.retrieveRevisionDescriptor(uri,revisionNumber);
  +        }
  +        catch (RevisionDescriptorNotFoundException e) {
  +            // System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptor 3/n uri="+uri+" aProps="+aProps);
  +            e.printStackTrace();
  +            throw e;
           }
  -             System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptor 2/n uri="+uri+" revisionNumber="+revisionNumber);
  -             try {
  -                     return aProps.retrieveRevisionDescriptor(uri,revisionNumber);
  -             }
  -             catch (RevisionDescriptorNotFoundException e) {
  -                     System.out.println("----------- XMLMemDescriptorsStore 
retrieveRevisionDescriptor 3/n uri="+uri+" aProps="+aProps);
  -                     e.printStackTrace();
  -                     throw e;
  -             }
       }
       
       
  @@ -597,13 +597,13 @@
           (Uri uri, NodeRevisionDescriptor revisionDescriptor)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
createRevisionDescriptor 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
createRevisionDescriptor 1/n uri="+uri+" aProps="+aProps);
           if (aProps == null) {
  -                     aProps=new UriProperties(rootpath,uri);
  -                     definitions.put(uri.toString(),aProps);
  +            aProps=new UriProperties(rootpath,uri);
  +            definitions.put(uri.toString(),aProps);
           }
  -             aProps.createRevisionDescriptor(uri,revisionDescriptor);
  -             System.out.println("----------- XMLMemDescriptorsStore 
createRevisionDescriptor 2/n uri="+uri+" aProps="+aProps);
  +        aProps.createRevisionDescriptor(uri,revisionDescriptor);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
createRevisionDescriptor 2/n uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -619,12 +619,12 @@
       public void storeRevisionDescriptor(Uri uri, NodeRevisionDescriptor 
revisionDescriptor)
           throws ServiceAccessException, RevisionDescriptorNotFoundException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
storeRevisionDescriptor 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
storeRevisionDescriptor 1/n uri="+uri+" aProps="+aProps);
           if (aProps == null) {
               throw new RevisionDescriptorNotFoundException(uri.toString());
           }
  -             aProps.storeRevisionDescriptor(uri,revisionDescriptor);
  -             System.out.println("----------- XMLMemDescriptorsStore 
storeRevisionDescriptor 2/n uri="+uri+" aProps="+aProps);
  +        aProps.storeRevisionDescriptor(uri,revisionDescriptor);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
storeRevisionDescriptor 2/n uri="+uri+" aProps="+aProps);
       }
       
       
  @@ -638,11 +638,11 @@
       public void removeRevisionDescriptor(Uri uri, NodeRevisionNumber number)
           throws ServiceAccessException {
           UriProperties aProps = getUriProperties(uri);
  -             System.out.println("----------- XMLMemDescriptorsStore 
removeRevisionDescriptor 1/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
removeRevisionDescriptor 1/n uri="+uri+" aProps="+aProps);
           if (aProps != null) {
  -                     aProps.removeRevisionDescriptor(uri,number);
  +            aProps.removeRevisionDescriptor(uri,number);
           }
  -             System.out.println("----------- XMLMemDescriptorsStore 
removeRevisionDescriptor 2/n uri="+uri+" aProps="+aProps);
  +        // System.out.println("----------- XMLMemDescriptorsStore 
removeRevisionDescriptor 2/n uri="+uri+" aProps="+aProps);
       }
   
   
  
  
  
  1.4       +489 -487  jakarta-slide/src/stores/slidestore/file/UriProperties.java
  
  Index: UriProperties.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/stores/slidestore/file/UriProperties.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- UriProperties.java        25 Apr 2002 21:15:16 -0000      1.3
  +++ UriProperties.java        10 May 2002 16:22:21 -0000      1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/file/UriProperties.java,v 
1.3 2002/04/25 21:15:16 jericho Exp $
  - * $Revision: 1.3 $
  - * $Date: 2002/04/25 21:15:16 $
  + * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/file/UriProperties.java,v 
1.4 2002/05/10 16:22:21 pnever Exp $
  + * $Revision: 1.4 $
  + * $Date: 2002/05/10 16:22:21 $
    *
    * ====================================================================
    *
  @@ -83,8 +83,8 @@
   /**
    * Handles the saving and retreiving of descriptions attached to an Uri</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Marc D�cugis</a>
  - * @contact <a href="mailto:[EMAIL PROTECTED]";>Remy Maucherat</a> 
  - * @version $Revision: 1.3 $ , $Date: 2002/04/25 21:15:16 $
  + * @contact <a href="mailto:[EMAIL PROTECTED]";>Remy Maucherat</a>
  + * @version $Revision: 1.4 $ , $Date: 2002/05/10 16:22:21 $
    */
   
   //----------------------------------------
  @@ -93,491 +93,493 @@
   
   //----------------------------------------
   public class UriProperties extends AbstractUriProperties {
  -     /** A simple date format.*/
  -     protected SimpleDateFormat dateFormat;
  -     
  -     //----------------------------------------
  -     public UriProperties(String aRootPath,Uri aUri) throws ServiceAccessException {
  -             super(aRootPath,aUri);
  -             dateFormat=new SimpleDateFormat();
  -             File aFile=getFile(aUri);
  -             if (aFile.exists()) {
  -                     init(aFile);
  -             }
  -     }
  -     // --------------------------------------
  +    /** A simple date format.*/
  +    protected SimpleDateFormat dateFormat;
  +    
  +    //----------------------------------------
  +    public UriProperties(String aRootPath,Uri aUri) throws ServiceAccessException {
  +        super(aRootPath,aUri);
  +        dateFormat=new SimpleDateFormat();
  +        File aFile=getFile(aUri);
  +        if (aFile.exists()) {
  +            init(aFile);
  +        }
  +    }
  +    // --------------------------------------
       public static File getFile(String aRootPath,Uri aUri) {
  -             System.out.println("----------- UriProperties getFile 1/n aUri="+aUri);
  +        // System.out.println("----------- UriProperties getFile 1/n aUri="+aUri);
           // String aRelative = aUri.getRelative();
  -             // System.out.println("----------- UriProperties getFile 2/n 
aRelative="+aRelative);
  +        // // System.out.println("----------- UriProperties getFile 2/n 
aRelative="+aRelative);
          //  if (aRelative.equals("")) aRelative = "/";
  -             // System.out.println("----------- UriProperties getFile 3/n 
aRelative="+aRelative);
  +        // // System.out.println("----------- UriProperties getFile 3/n 
aRelative="+aRelative);
   
  -             // File aFile = new File(rootpath + aRelative + ".def.xml");
  -             File aFile = new File(aRootPath + aUri + ".def.xml");
  -             File aParentFile = new File(aFile.getParent());
  -             if ((aParentFile != null) && (!aParentFile.exists())) {
  -                     aParentFile.mkdirs();
  -             }
  -             return aFile;
  -     }
  -     // --------------------------------------
  +        // File aFile = new File(rootpath + aRelative + ".def.xml");
  +        File aFile = new File(aRootPath + aUri + ".def.xml");
  +        File aParentFile = new File(aFile.getParent());
  +        if ((aParentFile != null) && (!aParentFile.exists())) {
  +            aParentFile.mkdirs();
  +        }
  +        return aFile;
  +    }
  +    // --------------------------------------
       public File getFile(Uri aUri) {
  -             return getFile(rootpath,aUri);
  -     }
  -     // --------------------------------------
  -     public static XMLOutputter getXMLOutputter() {
  -             XMLOutputter aOutputter = new XMLOutputter();
  -             aOutputter.setEncoding("ISO-8859-1");//Unicode
  -             aOutputter.setNewlines(true);
  -             aOutputter.setIndent(true);
  -             aOutputter.setLineSeparator("\n");
  -             //aOutputter.setTextNormalize(true);
  -
  -
  -             return aOutputter;
  -     }
  -     // --------------------------------------
  -     public static String booleanToString(boolean aBoolean) {
  -             return aBoolean ? "true" : "false";
  -     }
  -     //----------------------------------------
  -     //----------------------------------------
  -     //----------------------------------------
  -     
  -     //----------------------------------------
  -     protected void save(Uri aUri) throws ServiceAccessException {
  -             try {
  -                     File aFile=getFile(aUri);
  -                     System.out.println("--------- save 1/n aFile="+aFile);
  -                     Element aRoot=encode();
  -                     System.out.println("--------- save 2/n");
  -                     Document aDocument=new Document(aRoot);
  -                     System.out.println("--------- save 3/n");
  -                     OutputStream aOut=new FileOutputStream(aFile);
  -                     XMLOutputter aOutputter = getXMLOutputter();
  -                     // aOutputter.output(aDocument, System.out);
  -                     aOutputter.output(aDocument, aOut);
  -                     // if (DEBUG) trace("--------- enregistre 3/n");
  -                     System.out.println("--------- save 4/n");
  -                     aOut.flush();
  -                     aOut.close();
  -                     System.out.println("--------- save 5/n");
  -             }
  -             catch (Exception e) {
  -                     e.printStackTrace();
  -                     throw new ServiceAccessException(null,e);
  -             }
  -     }
  -     //----------------------------------------
  -     protected Element encode() throws ServiceAccessException {
  -             Element aRoot=new Element("data");
  -             aRoot.addContent(encodeObject());
  -             aRoot.addContent(encodePermissions());
  -             aRoot.addContent(encodeLocks());
  -             aRoot.addContent(encodeRevisionDescriptors());
  -             aRoot.addContent(encodeRevisionDescriptor());
  -             return aRoot;
  -     }
  -     // --------------------------------------
  -     public Element encodeObject() {
  -             Element aElementObjectNode=new Element("objectnode");
  -             
aElementObjectNode.setAttribute("classname",object.getClass().getName());
  -             aElementObjectNode.setAttribute("uri",object.getUri());
  -             
aElementObjectNode.addContent(createElements("childs","child",object.enumerateChildren()));
  -             
aElementObjectNode.addContent(createElements("links","link",object.enumerateLinks()));
  -             if (object instanceof LinkNode) {
  -                     
aElementObjectNode.setAttribute("linkTo",((LinkNode)object).getLinkedUri());
  -             }
  -             return aElementObjectNode;
  -     }
  -     // --------------------------------------
  -     public Element encodePermissions() {
  -             Element aPermissions=new Element("permissions");
  -             if (permissions==null) return aPermissions;
  -             
  -             for (int aSize=permissions.size(),i=0;i<aSize;i++) {
  -                     NodePermission 
aPermission=(NodePermission)permissions.elementAt(i);
  -                     aPermissions.addContent(encodeNodePermission(aPermission));
  -             }
  -             return aPermissions;
  -     }
  -     // --------------------------------------
  -     public Element encodeNodePermission(NodePermission aPermission) {
  -             Element aElementPermission=new Element("permission");
  -             NodeRevisionNumber aRevisionNumber=aPermission.getRevisionNumber();
  -             if (aRevisionNumber!=null) {
  -                     
aElementPermission.setAttribute("revisionNumber",encodeRevisionNumber(aRevisionNumber));
  -             }
  -             
aElementPermission.setAttribute("subjectUri",aPermission.getSubjectUri());
  -             
aElementPermission.setAttribute("actionUri",aPermission.getActionUri());
  -             
aElementPermission.setAttribute("inheritable",booleanToString(aPermission.isInheritable()));
  -             
aElementPermission.setAttribute("negative",booleanToString(aPermission.isNegative()));
  -             return aElementPermission;
  -    }
  -     // --------------------------------------
  -     public Element encodeLocks() {
  -             Element aElementLocks=new Element("locks");
  -             if (locks==null) return aElementLocks;
  -             
  -             for (int aSize=locks.size(),i=0;i<aSize;i++) {
  -                     NodeLock aLock=(NodeLock)locks.elementAt(i);
  -                     Element aElementLock=new Element("lock");
  -                     aElementLock.setAttribute("subjectUri",aLock.getSubjectUri());
  -                     aElementLock.setAttribute("typeUri",aLock.getTypeUri());
  -                     
aElementLock.setAttribute("date",dateFormat.format(aLock.getExpirationDate()));
  -                     
aElementLock.setAttribute("inheritance",booleanToString(aLock.isInheritable()));
  -                     
aElementLock.setAttribute("exclusive",booleanToString(aLock.isExclusive()));
  -                     aElementLock.setAttribute("lockId",aLock.getLockId());
  -                     aElementLocks.addContent(aElementLock);
  -             }
  -             return aElementLocks;
  -     }
  -     // --------------------------------------
  -     public Element encodeRevisionDescriptors() {
  -             
  -             Element aRevisionsHistory=new Element("revisionsHistory");
  -             if (revisionDescriptors==null) return aRevisionsHistory;
  -
  -             
aRevisionsHistory.setAttribute("initialRevision",encodeRevisionNumber(revisionDescriptors.getInitialRevision()));
  -             
aRevisionsHistory.setAttribute("useVersioning",booleanToString(revisionDescriptors.hasRevisions()));
  -             
  -             System.out.println("---------- encodeRevisionDescriptors 
getLatestRevision="+
  -                     revisionDescriptors.getLatestRevision());
  -             
  -             Element aBranchesElement=new Element("branches");
  -             Enumeration aBranches=revisionDescriptors.enumerateBranchNames();
  -             while (aBranches.hasMoreElements()) {
  -                     String aBranchName=(String)aBranches.nextElement();
  -                     Element aElementBranch=new Element("branch");
  -                     aElementBranch.setAttribute("name",aBranchName);
  -                     NodeRevisionNumber 
aRevisionNumber=revisionDescriptors.getLatestRevision(aBranchName);
  -                     
aElementBranch.setAttribute("lastestRevision",encodeRevisionNumber(aRevisionNumber));
  -                     aBranchesElement.addContent(aElementBranch);
  -             }
  -             aRevisionsHistory.addContent(aBranchesElement);
  -             
  -             Element aRevisionsElement=new Element("revisions");
  -             Enumeration aRevisions=revisionDescriptors.enumerateRevisionNumbers();
  -             while (aRevisions.hasMoreElements()) {
  -                     NodeRevisionNumber 
aRevisionNumber=(NodeRevisionNumber)aRevisions.nextElement();
  -                     Element aRevisionElement=new Element("branch");
  -                     
aRevisionElement.setAttribute("start",encodeRevisionNumber(aRevisionNumber));
  -                     
  -                     Enumeration 
aSuccessors=revisionDescriptors.getSuccessors(aRevisionNumber);
  -                     while (aSuccessors.hasMoreElements()) {
  -                             NodeRevisionNumber 
aSuccessorRevisionNumber=(NodeRevisionNumber)aRevisions.nextElement();
  -                             Element aSuccessorRevisionElement=new 
Element("revision");
  -                             
aSuccessorRevisionElement.setAttribute("number",encodeRevisionNumber(aSuccessorRevisionNumber));
  -                             aRevisionElement.addContent(aSuccessorRevisionElement);
  -                     }
  -                     aRevisionsElement.addContent(aRevisionElement);
  -             }
  -             aRevisionsHistory.addContent(aRevisionsElement);
  -             
  -             return aRevisionsHistory;
  -     }
  -     // --------------------------------------
  -     public Element encodeRevisionDescriptor() {
  -             Element aRet=new Element("descriptor");
  -             if (descriptor==null) return aRet;
  -
  -             for (Enumeration aEnum=descriptor.elements();aEnum.hasMoreElements();) 
{
  -                     NodeRevisionDescriptor 
aRevisionDescriptor=(NodeRevisionDescriptor)aEnum.nextElement();
  -                     aRet.addContent(encodeRevisionDescriptor(aRevisionDescriptor));
  -             }
  -             return aRet;
  -     }
  -     // --------------------------------------
  -     public Element encodeRevisionDescriptor(NodeRevisionDescriptor aDescriptor) {
  -             Element aRevisions=new Element("revisions");
  -             aRevisions.setAttribute("branchName",aDescriptor.getBranchName());
  -             
aRevisions.setAttribute("number",encodeRevisionNumber(aDescriptor.getRevisionNumber()));
  -             
aRevisions.addContent(createElements("labels","label",aDescriptor.enumerateLabels()));
  -             Element aProperties=new Element("properties");          
  -             
  -             for (Enumeration 
aEnum=aDescriptor.enumerateProperties();aEnum.hasMoreElements();) {
  -                     Object aObject=aEnum.nextElement();
  -                     System.out.println("---------- encodeRevisionDescriptor 
aObject="+aObject+" "+aObject.getClass().getName());
  -                     NodeProperty aProp=(NodeProperty)aObject;
  -                     aProperties.addContent(encodeNodeProperty(aProp));
  -             }
  -             aRevisions.addContent(aProperties);
  -             return aRevisions;
  -     }
  -     // --------------------------------------
  -     public String encodeRevisionNumber(NodeRevisionNumber aRevisionNumber) {
  -             return aRevisionNumber.getMajor()+"."+aRevisionNumber.getMinor();
  -     }
  -     // --------------------------------------
  -     public Element encodeNodeProperty(NodeProperty aProp) {
  -             Element aElement=new Element("property");
  -             aElement.setAttribute("name",aProp.getName());
  -             aElement.setAttribute("namespace",aProp.getNamespace());
  -             aElement.setAttribute("value",aProp.getValue().toString());
  -             aElement.setAttribute("type",aProp.getType());
  -             
aElement.setAttribute("protected",booleanToString(aProp.isProtected()));
  -             Element aPermissions=new Element("permissions");
  -             
  -             for (Enumeration 
aEnum=aProp.enumeratePermissions();aEnum.hasMoreElements();) {
  -                     NodePermission aPermission=(NodePermission)aEnum.nextElement();
  -                     aPermissions.addContent(encodeNodePermission(aPermission));
  -             }
  -             aElement.addContent(aPermissions);
  -             return aElement;
  -     }
  -     // --------------------------------------
  -     public Element createElements(String aParent,String aChild,Enumeration aEnum) {
  -             Element aElement=new Element(aParent);
  -             while (aEnum.hasMoreElements()) {
  -                     Object aObject=aEnum.nextElement();
  -                     Element aItem=new Element(aChild);
  -                     aItem.setAttribute("val",aObject.toString());
  -                     aElement.addContent(aItem);
  -             }
  -             return aElement;
  -     }
  -     //----------------------------------------
  -     //----------------------------------------
  -     //----------------------------------------
  -     
  -     //----------------------------------------
  -     protected void init(File aFile) throws ServiceAccessException {
  -             try {
  -                     System.out.println("--------- init 1/n aFile="+aFile);
  -                     SAXBuilder aBuilder=new SAXBuilder();
  -                     FileInputStream aIn=new FileInputStream(aFile);
  -                     Document aDocument=aBuilder.build(aIn);
  -                     System.out.println("--------- init 2/n");
  -                     decode(aDocument.getRootElement());
  -                     System.out.println("--------- init 3/n");
  -                     aIn.close();
  -                     System.out.println("--------- init 5/n");
  -             }
  -             catch (Exception e) {
  -                     e.printStackTrace();
  -                     throw new ServiceAccessException(null,e);
  -             }
  -     }
  -     //----------------------------------------
  -     protected void decode(Element aRoot) throws ServiceAccessException {
  -             decodeObject(aRoot);
  -             decodePermissions(aRoot);
  -             decodeLocks(aRoot);
  -             decodeRevisionDescriptors(aRoot);
  -             decodeRevisionDescriptor(aRoot);
  -     }
  -     // --------------------------------------
  -     public void decodeObject(Element aElement) throws ServiceAccessException {
  -             try {
  -                     Element aElementObjectNode=aElement.getChild("objectnode");
  -                     String 
aClasseName=aElementObjectNode.getAttributeValue("classname");
  -                     String aUri=aElementObjectNode.getAttributeValue("uri");
  -                     Vector 
aChilds=createVector(aElementObjectNode,"childs","child");
  -                     Vector aLinks=createVector(aElementObjectNode,"links","link");
  -                     System.out.println("--------- decodeObject  aChilds="+aChilds);
  -                     System.out.println("--------- decodeObject  aLinks="+aLinks);
  -                     Class aTypes[] = null;
  -                     Object aArgs[] = null;
  -
  -                     if (aClasseName.equals(LinkNode.class.getName())) {
  -                             String 
aLinkTo=aElementObjectNode.getAttributeValue("linkTo");
  -                             aTypes= new 
Class[]{String.class,Vector.class,Vector.class,String.class};
  -                             aArgs= new Object[]{aUri, aChilds, aLinks,aLinkTo};
  -                     }
  -                     else {
  -                             aTypes=new Class[] 
{String.class,Vector.class,Vector.class};
  -                             aArgs=new Object[] {aUri, aChilds, aLinks};
  -                     }
  -                     object=(ObjectNode) createObject(aClasseName,aTypes,aArgs);
  -             }
  -             catch (Exception e) {
  -                     e.printStackTrace();
  -                     throw new ServiceAccessException(null,e);
  -             }
  -     }
  -     
  -     // --------------------------------------
  -     public void decodePermissions(Element aElement) {
  -             permissions=new Vector();
  -             String aUri=object.getUri().toString();
  -             Element aPermissions=aElement.getChild("permissions");
  -             List aList=aPermissions.getChildren();
  -             for (int i=0;i<aList.size();i++) {
  -                     Element aChild=(Element)aList.get(i);
  -                     permissions.addElement(decodePermission(aChild,aUri));
  -             }
  -     }
  -     // --------------------------------------
  -     public void decodeLocks(Element aElement) throws ServiceAccessException {
  -             try {
  -                     locks=new Vector();
  -                     Element aElementLocks=aElement.getChild("locks");
  -                     List aList=aElementLocks.getChildren();
  -                     
  -                     for (int i=0;i<aList.size();i++) {
  -                             Element aChild=(Element)aList.get(i);
  -                             String aSubject=aChild.getAttributeValue("subjectUri");
  -                             String aType=aChild.getAttributeValue("typeUri");
  -                             Date 
aDateExpiration=dateFormat.parse(aChild.getAttributeValue("date"));
  -                             boolean 
aInheritable=Boolean.getBoolean(aChild.getAttributeValue("inheritance"));
  -                             boolean 
aNegative=Boolean.getBoolean(aChild.getAttributeValue("exclusive"));
  -                             String aLockId=aChild.getAttributeValue("lockId");
  -                             locks.addElement(
  -                                     new 
NodeLock(aLockId,object.getUri(),aSubject,aType,aDateExpiration,aInheritable,aNegative)
  -                             );
  -                     }
  -             }
  -             catch (Exception e) {
  -                     e.printStackTrace();
  -                     throw new ServiceAccessException(null,e);
  -             }
  -             
  -     }
  -     // --------------------------------------
  -     public void decodeRevisionDescriptors(Element aElement) {
  -             Element aRevisionsHistory=aElement.getChild("revisionsHistory");
  -
  -             NodeRevisionNumber 
aInitialRevision=decodeRevisionNumber(aRevisionsHistory.getAttributeValue("initialRevision"));
  -             boolean 
aUseVersionning=Boolean.getBoolean(aRevisionsHistory.getAttributeValue("useVersioning"));
  -
  -             Element aBranchesElement=aElement.getChild("branches");
  -             if (aBranchesElement==null) {
  -                     revisionDescriptors=new NodeRevisionDescriptors(
  -                             object.getUri().toString(),aInitialRevision,new 
Hashtable(),new Hashtable(),new Hashtable(),aUseVersionning);                   
  -                             return; 
  -             }
  -             
  -             List aList=aBranchesElement.getChildren();
  -             Hashtable aLastestRevisions=new Hashtable();
  -             for (int i=0;i<aList.size();i++) {
  -                     Element aChild=(Element)aList.get(i);
  -                     String aName=aChild.getAttributeValue("name");
  -                     NodeRevisionNumber 
aRevisionNumber=decodeRevisionNumber(aChild.getAttributeValue("lastestRevision"));
  -                     aLastestRevisions.put(aName,aRevisionNumber);
  -             }
  -             Hashtable aBranches=new Hashtable();
  -             Element aRevisionsElement=aElement.getChild("revisions");
  -             aList=aRevisionsElement.getChildren();
  -             for (int i=0;i<aList.size();i++) {
  -                     Element aChild=(Element)aList.get(i);
  -                     NodeRevisionNumber 
aStartNumber=decodeRevisionNumber(aChild.getAttributeValue("start"));
  -                     List aSuccessors=aChild.getChildren();
  -                     Vector aSuccessorsNumbers=new Vector();
  -                     for (int k=0;k<aSuccessors.size();k++) {
  -                             Element aSuccessor=(Element)aSuccessors.get(i);
  -                             NodeRevisionNumber 
aRevisionNumber=decodeRevisionNumber(aChild.getAttributeValue("number"));
  -                             aSuccessorsNumbers.addElement(aRevisionNumber);
  -                     }
  -                     aBranches.put(aStartNumber,aSuccessorsNumbers);
  -             }
  -             revisionDescriptors=new NodeRevisionDescriptors(
  -                             object.getUri().toString(),aInitialRevision,new 
Hashtable(),aLastestRevisions,aBranches,aUseVersionning);
  -     }
  -     // --------------------------------------
  -     public void decodeRevisionDescriptor(Element aParent) {
  -             descriptor=new Hashtable();
  -             
  -             Element aElement=aParent.getChild("descriptor");
  -             if (aElement==null) return;
  -             
  -             List aList=aElement.getChildren();
  -             String aUri=object.getUri().toString();
  -             
  -             for (int i=0;i<aList.size();i++) {
  -                     Element aChild=(Element)aList.get(i);
  -                     String aBranchName=aChild.getAttributeValue("branchName");
  -                     NodeRevisionNumber 
aRevisionNumber=decodeRevisionNumber(aChild.getAttributeValue("number"));
  -
  -                     Vector aLabels=new Vector();
  -                     Element aLabelsElement=(Element)aChild.getChild("labels");
  -                     List aLabelList=aLabelsElement.getChildren();
  -                     for (int k=0;k<aLabelList.size();k++) {
  -                             Element aLabel=(Element)aLabelList.get(i);
  -                             aLabels.addElement(aLabel.getAttributeValue("val"));
  -                     }
  -
  -                     Hashtable aProperties=new Hashtable();
  -                     Element 
aPropertiesElement=(Element)aChild.getChild("properties");
  -                     List aPropertiesList=aPropertiesElement.getChildren();
  -                     for (int k=0;k<aPropertiesList.size();k++) {
  -                             Element aPropertie=(Element)aPropertiesList.get(i);
  -                             NodeProperty aProp=decodeNodeProperty(aPropertie,aUri);
  -                             aProperties.put(aPropertie.getNamespace() + 
aPropertie.getName(),aProp);
  -                     }
  -                     NodeRevisionDescriptor aNode=new 
NodeRevisionDescriptor(aRevisionNumber,aBranchName,aLabels,aProperties);
  -                     descriptor.put(aRevisionNumber,aNode);
  -             }               
  -     }
  -     // --------------------------------------
  -     public NodePermission decodePermission(Element aElement,String aUri) {
  -             String aRevisionNumber=aElement.getAttributeValue("revisionNumber");
  -             String aSubject=aElement.getAttributeValue("subjectUri");
  -             String aAction=aElement.getAttributeValue("actionUri");
  -             boolean 
aInheritable=Boolean.getBoolean(aElement.getAttributeValue("inheritable"));
  -             boolean 
aNegative=Boolean.getBoolean(aElement.getAttributeValue("negative"));
  -             return new 
NodePermission(aUri,aRevisionNumber,aSubject,aAction,aInheritable,aNegative);
  -
  -     }
  -     // --------------------------------------
  -     public NodeRevisionNumber decodeRevisionNumber(Element aElement) {
  -             Element aElementRevision=aElement.getChild("revision");
  -             return new 
NodeRevisionNumber(Integer.parseInt(aElementRevision.getAttributeValue("major")),
  -                                                                       
Integer.parseInt(aElementRevision.getAttributeValue("minor")));
  -     }
  -     // --------------------------------------
  -     public NodeRevisionNumber decodeRevisionNumber(String aStr) {
  -             return (aStr==null ? null : new NodeRevisionNumber(aStr));
  -     }
  -     // --------------------------------------
  -     public NodeProperty decodeNodeProperty(Element aElement,String aUri) {
  -             String aName=aElement.getAttributeValue("name");
  -             String aValue=aElement.getAttributeValue("value");
  -             String aNamespace=aElement.getAttributeValue("namespace");
  -             String aType=aElement.getAttributeValue("type");
  -             boolean 
aProtected=Boolean.getBoolean(aElement.getAttributeValue("protected"));
  -             
  -             Element aPermisionsElement=aElement.getChild("permissions");
  -             List aList=aPermisionsElement.getChildren();
  -             Vector aPermission=new Vector();
  -             for (int i=0;i<aList.size();i++) {
  -                     Element aChild=(Element)aList.get(i);
  -                     aPermission.addElement(decodePermission(aChild,aUri));
  -             }
  -             return new NodeProperty(aName,aValue,aNamespace,aType,aProtected);
  -     }
  -
  -     // --------------------------------------
  -     public Vector createVector(Element aElement,String aParentName,String 
aChildName) {
  -             Element aParent=aElement.getChild(aParentName);
  -             Vector aRet=new Vector();
  -             System.out.println("--------- createVector  
aParentName="+aParentName+" aChildName="+aChildName);
  -             List aList=aParent.getChildren(aChildName);
  -             System.out.println("--------- createVector  aList="+aList);
  -             for (int i=0;i<aList.size();i++) {
  -                     Element aChild=(Element)aList.get(i);
  -                     aRet.addElement(aChild.getAttributeValue("val"));
  -             }
  -             return aRet;
  -     }
  -     // --------------------------------------
  -     public Object createObject(String aNomClasse,Class aTypes[],Object aArgs[]) 
throws UnknownObjectClassException {
  -             Class aClasse = null;
  -             try {
  -                     // First, load the object's class
  -                     aClasse = Class.forName(aNomClasse);
  -                     Constructor aConstructor = aClasse.getConstructor(aTypes);
  -                     if (aConstructor==null) 
aConstructor=aClasse.getSuperclass().getConstructor(aTypes);
  -                     return aConstructor.newInstance(aArgs);
  -                     
  -             }
  -             catch (Exception e) {
  -                     throw new UnknownObjectClassException(aNomClasse);
  -             }
  -     }
  -     /*
  -     // --------------------------------------
  -     public Vector decodeObject(Vector aVector,Enumeration aEnum) {
  -     }
  -     */
  +        return getFile(rootpath,aUri);
  +    }
  +    // --------------------------------------
  +    public static XMLOutputter getXMLOutputter() {
  +        XMLOutputter aOutputter = new XMLOutputter();
  +        aOutputter.setEncoding("ISO-8859-1");//Unicode
  +        aOutputter.setNewlines(true);
  +        aOutputter.setIndent(true);
  +        aOutputter.setLineSeparator("\n");
  +        //aOutputter.setTextNormalize(true);
  +
  +
  +        return aOutputter;
  +    }
  +    // --------------------------------------
  +    public static String booleanToString(boolean aBoolean) {
  +        return aBoolean ? "true" : "false";
  +    }
  +    //----------------------------------------
  +    //----------------------------------------
  +    //----------------------------------------
  +    
  +    //----------------------------------------
  +    protected void save(Uri aUri) throws ServiceAccessException {
  +        try {
  +            File aFile=getFile(aUri);
  +            // System.out.println("--------- save 1/n aFile="+aFile);
  +            Element aRoot=encode();
  +            // System.out.println("--------- save 2/n");
  +            Document aDocument=new Document(aRoot);
  +            // System.out.println("--------- save 3/n");
  +            OutputStream aOut=new FileOutputStream(aFile);
  +            XMLOutputter aOutputter = getXMLOutputter();
  +            // aOutputter.output(aDocument, // System.out);
  +            aOutputter.output(aDocument, aOut);
  +            // if (DEBUG) trace("--------- enregistre 3/n");
  +            // System.out.println("--------- save 4/n");
  +            aOut.flush();
  +            aOut.close();
  +            // System.out.println("--------- save 5/n");
  +        }
  +        catch (Exception e) {
  +            e.printStackTrace();
  +            throw new ServiceAccessException(null,e);
  +        }
  +    }
  +    //----------------------------------------
  +    protected Element encode() throws ServiceAccessException {
  +        Element aRoot=new Element("data");
  +        aRoot.addContent(encodeObject());
  +        aRoot.addContent(encodePermissions());
  +        aRoot.addContent(encodeLocks());
  +        aRoot.addContent(encodeRevisionDescriptors());
  +        aRoot.addContent(encodeRevisionDescriptor());
  +        return aRoot;
  +    }
  +    // --------------------------------------
  +    public Element encodeObject() {
  +        Element aElementObjectNode=new Element("objectnode");
  +        aElementObjectNode.setAttribute("classname",object.getClass().getName());
  +        aElementObjectNode.setAttribute("uri",object.getUri());
  +        
aElementObjectNode.addContent(createElements("childs","child",object.enumerateChildren()));
  +        
aElementObjectNode.addContent(createElements("links","link",object.enumerateLinks()));
  +        if (object instanceof LinkNode) {
  +            
aElementObjectNode.setAttribute("linkTo",((LinkNode)object).getLinkedUri());
  +        }
  +        return aElementObjectNode;
  +    }
  +    // --------------------------------------
  +    public Element encodePermissions() {
  +        Element aPermissions=new Element("permissions");
  +        if (permissions==null) return aPermissions;
  +        
  +        for (int aSize=permissions.size(),i=0;i<aSize;i++) {
  +            NodePermission aPermission=(NodePermission)permissions.elementAt(i);
  +            aPermissions.addContent(encodeNodePermission(aPermission));
  +        }
  +        return aPermissions;
  +    }
  +    // --------------------------------------
  +    public Element encodeNodePermission(NodePermission aPermission) {
  +        Element aElementPermission=new Element("permission");
  +        NodeRevisionNumber aRevisionNumber=aPermission.getRevisionNumber();
  +        if (aRevisionNumber!=null) {
  +            
aElementPermission.setAttribute("revisionNumber",encodeRevisionNumber(aRevisionNumber));
  +        }
  +        aElementPermission.setAttribute("subjectUri",aPermission.getSubjectUri());
  +        aElementPermission.setAttribute("actionUri",aPermission.getActionUri());
  +        
aElementPermission.setAttribute("inheritable",booleanToString(aPermission.isInheritable()));
  +        
aElementPermission.setAttribute("negative",booleanToString(aPermission.isNegative()));
  +        return aElementPermission;
  +    }
  +    // --------------------------------------
  +    public Element encodeLocks() {
  +        Element aElementLocks=new Element("locks");
  +        if (locks==null) return aElementLocks;
  +        
  +        for (int aSize=locks.size(),i=0;i<aSize;i++) {
  +            NodeLock aLock=(NodeLock)locks.elementAt(i);
  +            Element aElementLock=new Element("lock");
  +            aElementLock.setAttribute("subjectUri",aLock.getSubjectUri());
  +            aElementLock.setAttribute("typeUri",aLock.getTypeUri());
  +            
aElementLock.setAttribute("date",dateFormat.format(aLock.getExpirationDate()));
  +            
aElementLock.setAttribute("inheritance",booleanToString(aLock.isInheritable()));
  +            
aElementLock.setAttribute("exclusive",booleanToString(aLock.isExclusive()));
  +            aElementLock.setAttribute("lockId",aLock.getLockId());
  +            aElementLocks.addContent(aElementLock);
  +        }
  +        return aElementLocks;
  +    }
  +    // --------------------------------------
  +    public Element encodeRevisionDescriptors() {
  +        
  +        Element aRevisionsHistory=new Element("revisionsHistory");
  +        if (revisionDescriptors==null) return aRevisionsHistory;
  +
  +        
aRevisionsHistory.setAttribute("initialRevision",encodeRevisionNumber(revisionDescriptors.getInitialRevision()));
  +        
aRevisionsHistory.setAttribute("useVersioning",booleanToString(revisionDescriptors.hasRevisions()));
  +        
  +        // System.out.println("---------- encodeRevisionDescriptors 
getLatestRevision="+
  +        //  revisionDescriptors.getLatestRevision());
  +        
  +        Element aBranchesElement=new Element("branches");
  +        Enumeration aBranches=revisionDescriptors.enumerateBranchNames();
  +        while (aBranches.hasMoreElements()) {
  +            String aBranchName=(String)aBranches.nextElement();
  +            Element aElementBranch=new Element("branch");
  +            aElementBranch.setAttribute("name",aBranchName);
  +            NodeRevisionNumber 
aRevisionNumber=revisionDescriptors.getLatestRevision(aBranchName);
  +            
aElementBranch.setAttribute("lastestRevision",encodeRevisionNumber(aRevisionNumber));
  +            aBranchesElement.addContent(aElementBranch);
  +        }
  +        aRevisionsHistory.addContent(aBranchesElement);
  +        
  +        Element aRevisionsElement=new Element("revisions");
  +        Enumeration aRevisions=revisionDescriptors.enumerateRevisionNumbers();
  +        while (aRevisions.hasMoreElements()) {
  +            NodeRevisionNumber 
aRevisionNumber=(NodeRevisionNumber)aRevisions.nextElement();
  +            Element aRevisionElement=new Element("branch");
  +            
aRevisionElement.setAttribute("start",encodeRevisionNumber(aRevisionNumber));
  +            
  +            Enumeration 
aSuccessors=revisionDescriptors.getSuccessors(aRevisionNumber);
  +            while (aSuccessors.hasMoreElements()) {
  +                NodeRevisionNumber 
aSuccessorRevisionNumber=(NodeRevisionNumber)aSuccessors.nextElement();
  +                Element aSuccessorRevisionElement=new Element("revision");
  +                
aSuccessorRevisionElement.setAttribute("number",encodeRevisionNumber(aSuccessorRevisionNumber));
  +                aRevisionElement.addContent(aSuccessorRevisionElement);
  +            }
  +            aRevisionsElement.addContent(aRevisionElement);
  +        }
  +        aRevisionsHistory.addContent(aRevisionsElement);
  +        
  +        return aRevisionsHistory;
  +    }
  +    // --------------------------------------
  +    public Element encodeRevisionDescriptor() {
  +        Element aRet=new Element("descriptor");
  +        if (descriptor==null) return aRet;
  +
  +        for (Enumeration aEnum=descriptor.elements();aEnum.hasMoreElements();) {
  +            NodeRevisionDescriptor 
aRevisionDescriptor=(NodeRevisionDescriptor)aEnum.nextElement();
  +            aRet.addContent(encodeRevisionDescriptor(aRevisionDescriptor));
  +        }
  +        return aRet;
  +    }
  +    // --------------------------------------
  +    public Element encodeRevisionDescriptor(NodeRevisionDescriptor aDescriptor) {
  +        Element aRevisions=new Element("revisions");
  +        aRevisions.setAttribute("branchName",aDescriptor.getBranchName());
  +        
aRevisions.setAttribute("number",encodeRevisionNumber(aDescriptor.getRevisionNumber()));
  +        
aRevisions.addContent(createElements("labels","label",aDescriptor.enumerateLabels()));
  +        Element aProperties=new Element("properties");
  +        
  +        for (Enumeration 
aEnum=aDescriptor.enumerateProperties();aEnum.hasMoreElements();) {
  +            Object aObject=aEnum.nextElement();
  +            // System.out.println("---------- encodeRevisionDescriptor 
aObject="+aObject+" "+aObject.getClass().getName());
  +            NodeProperty aProp=(NodeProperty)aObject;
  +            aProperties.addContent(encodeNodeProperty(aProp));
  +        }
  +        aRevisions.addContent(aProperties);
  +        return aRevisions;
  +    }
  +    // --------------------------------------
  +    public String encodeRevisionNumber(NodeRevisionNumber aRevisionNumber) {
  +        return aRevisionNumber.getMajor()+"."+aRevisionNumber.getMinor();
  +    }
  +    // --------------------------------------
  +    public Element encodeNodeProperty(NodeProperty aProp) {
  +        Element aElement=new Element("property");
  +        aElement.setAttribute("name",aProp.getName());
  +        aElement.setAttribute("namespace",aProp.getNamespace());
  +        aElement.setAttribute("value",aProp.getValue().toString());
  +        aElement.setAttribute("type",aProp.getType());
  +        aElement.setAttribute("protected",booleanToString(aProp.isProtected()));
  +        Element aPermissions=new Element("permissions");
  +        
  +        for (Enumeration 
aEnum=aProp.enumeratePermissions();aEnum.hasMoreElements();) {
  +            NodePermission aPermission=(NodePermission)aEnum.nextElement();
  +            aPermissions.addContent(encodeNodePermission(aPermission));
  +        }
  +        aElement.addContent(aPermissions);
  +        return aElement;
  +    }
  +    // --------------------------------------
  +    public Element createElements(String aParent,String aChild,Enumeration aEnum) {
  +        Element aElement=new Element(aParent);
  +        while (aEnum.hasMoreElements()) {
  +            Object aObject=aEnum.nextElement();
  +            Element aItem=new Element(aChild);
  +            aItem.setAttribute("val",aObject.toString());
  +            aElement.addContent(aItem);
  +        }
  +        return aElement;
  +    }
  +    //----------------------------------------
  +    //----------------------------------------
  +    //----------------------------------------
  +    
  +    //----------------------------------------
  +    protected void init(File aFile) throws ServiceAccessException {
  +        try {
  +            // System.out.println("--------- init 1/n aFile="+aFile);
  +            SAXBuilder aBuilder=new SAXBuilder();
  +            FileInputStream aIn=new FileInputStream(aFile);
  +            Document aDocument=aBuilder.build(aIn);
  +            // System.out.println("--------- init 2/n");
  +            decode(aDocument.getRootElement());
  +            // System.out.println("--------- init 3/n");
  +            aIn.close();
  +            // System.out.println("--------- init 5/n");
  +        }
  +        catch (Exception e) {
  +            e.printStackTrace();
  +            throw new ServiceAccessException(null,e);
  +        }
  +    }
  +    //----------------------------------------
  +    protected void decode(Element aRoot) throws ServiceAccessException {
  +        decodeObject(aRoot);
  +        decodePermissions(aRoot);
  +        decodeLocks(aRoot);
  +        decodeRevisionDescriptors(aRoot);
  +        decodeRevisionDescriptor(aRoot);
  +    }
  +    // --------------------------------------
  +    public void decodeObject(Element aElement) throws ServiceAccessException {
  +        try {
  +            Element aElementObjectNode=aElement.getChild("objectnode");
  +            String aClasseName=aElementObjectNode.getAttributeValue("classname");
  +            String aUri=aElementObjectNode.getAttributeValue("uri");
  +            Vector aChilds=createVector(aElementObjectNode,"childs","child");
  +            Vector aLinks=createVector(aElementObjectNode,"links","link");
  +            // System.out.println("--------- decodeObject  aChilds="+aChilds);
  +            // System.out.println("--------- decodeObject  aLinks="+aLinks);
  +            Class aTypes[] = null;
  +            Object aArgs[] = null;
  +
  +            if (aClasseName.equals(LinkNode.class.getName())) {
  +                String aLinkTo=aElementObjectNode.getAttributeValue("linkTo");
  +                aTypes= new 
Class[]{String.class,Vector.class,Vector.class,String.class};
  +                aArgs= new Object[]{aUri, aChilds, aLinks,aLinkTo};
  +            }
  +            else {
  +                aTypes=new Class[] {String.class,Vector.class,Vector.class};
  +                aArgs=new Object[] {aUri, aChilds, aLinks};
  +            }
  +            object=(ObjectNode) createObject(aClasseName,aTypes,aArgs);
  +        }
  +        catch (Exception e) {
  +            e.printStackTrace();
  +            throw new ServiceAccessException(null,e);
  +        }
  +    }
  +    
  +    // --------------------------------------
  +    public void decodePermissions(Element aElement) {
  +        permissions=new Vector();
  +        String aUri=object.getUri().toString();
  +        Element aPermissions=aElement.getChild("permissions");
  +        List aList=aPermissions.getChildren();
  +        for (int i=0;i<aList.size();i++) {
  +            Element aChild=(Element)aList.get(i);
  +            permissions.addElement(decodePermission(aChild,aUri));
  +        }
  +    }
  +    // --------------------------------------
  +    public void decodeLocks(Element aElement) throws ServiceAccessException {
  +        try {
  +            locks=new Vector();
  +            Element aElementLocks=aElement.getChild("locks");
  +            List aList=aElementLocks.getChildren();
  +            
  +            for (int i=0;i<aList.size();i++) {
  +                Element aChild=(Element)aList.get(i);
  +                String aSubject=aChild.getAttributeValue("subjectUri");
  +                String aType=aChild.getAttributeValue("typeUri");
  +                Date 
aDateExpiration=dateFormat.parse(aChild.getAttributeValue("date"));
  +                boolean 
aInheritable=Boolean.getBoolean(aChild.getAttributeValue("inheritance"));
  +                boolean 
aNegative=Boolean.getBoolean(aChild.getAttributeValue("exclusive"));
  +                String aLockId=aChild.getAttributeValue("lockId");
  +                locks.addElement(
  +                    new 
NodeLock(aLockId,object.getUri(),aSubject,aType,aDateExpiration,aInheritable,aNegative)
  +                );
  +            }
  +        }
  +        catch (Exception e) {
  +            e.printStackTrace();
  +            throw new ServiceAccessException(null,e);
  +        }
  +        
  +    }
  +    // --------------------------------------
  +    public void decodeRevisionDescriptors(Element aElement) {
  +        Element aRevisionsHistory=aElement.getChild("revisionsHistory");
  +
  +        NodeRevisionNumber 
aInitialRevision=decodeRevisionNumber(aRevisionsHistory.getAttributeValue("initialRevision"));
  +        boolean 
aUseVersionning=Boolean.getBoolean(aRevisionsHistory.getAttributeValue("useVersioning"));
  +
  +        Element aBranchesElement=aRevisionsHistory.getChild("branches");
  +        if (aBranchesElement==null) {
  +            revisionDescriptors=new NodeRevisionDescriptors(
  +                object.getUri().toString(),aInitialRevision,new Hashtable(),new 
Hashtable(),new Hashtable(),aUseVersionning);
  +                return;
  +        }
  +        
  +        List aList=aBranchesElement.getChildren();
  +        Hashtable aLastestRevisions=new Hashtable();
  +        for (int i=0;i<aList.size();i++) {
  +            Element aChild=(Element)aList.get(i);
  +            String aName=aChild.getAttributeValue("name");
  +            NodeRevisionNumber 
aRevisionNumber=decodeRevisionNumber(aChild.getAttributeValue("lastestRevision"));
  +            aLastestRevisions.put(aName,aRevisionNumber);
  +        }
  +        Hashtable aBranches=new Hashtable();
  +        Element aRevisionsElement=aRevisionsHistory.getChild("revisions");
  +        aList=aRevisionsElement.getChildren();
  +        for (int i=0;i<aList.size();i++) {
  +            Element aChild=(Element)aList.get(i);
  +            NodeRevisionNumber 
aStartNumber=decodeRevisionNumber(aChild.getAttributeValue("start"));
  +            List aSuccessors=aChild.getChildren();
  +            Vector aSuccessorsNumbers=new Vector();
  +            for (int k=0;k<aSuccessors.size();k++) {
  +                Element aSuccessor=(Element)aSuccessors.get(k);
  +                NodeRevisionNumber 
aRevisionNumber=decodeRevisionNumber(aChild.getAttributeValue("number"));
  +                aSuccessorsNumbers.addElement(aRevisionNumber);
  +            }
  +            aBranches.put(aStartNumber,aSuccessorsNumbers);
  +        }
  +        revisionDescriptors=new NodeRevisionDescriptors(
  +                object.getUri().toString(),aInitialRevision,new 
Hashtable(),aLastestRevisions,aBranches,aUseVersionning);
  +    }
  +    // --------------------------------------
  +    public void decodeRevisionDescriptor(Element aParent) {
  +        descriptor=new Hashtable();
  +        
  +        Element aElement=aParent.getChild("descriptor");
  +        if (aElement==null) return;
  +        
  +        List aList=aElement.getChildren();
  +        String aUri=object.getUri().toString();
  +        
  +        for (int i=0;i<aList.size();i++) {
  +            Element aChild=(Element)aList.get(i);
  +            String aBranchName=aChild.getAttributeValue("branchName");
  +            NodeRevisionNumber 
aRevisionNumber=decodeRevisionNumber(aChild.getAttributeValue("number"));
  +
  +            Vector aLabels=new Vector();
  +            Element aLabelsElement=(Element)aChild.getChild("labels");
  +            List aLabelList=aLabelsElement.getChildren();
  +            for (int k=0;k<aLabelList.size();k++) {
  +                Element aLabel=(Element)aLabelList.get(k);
  +                aLabels.addElement(aLabel.getAttributeValue("val"));
  +            }
  +
  +            Hashtable aProperties=new Hashtable();
  +            Element aPropertiesElement=(Element)aChild.getChild("properties");
  +            List aPropertiesList=aPropertiesElement.getChildren();
  +            for (int k=0;k<aPropertiesList.size();k++) {
  +                Element aProperty=(Element)aPropertiesList.get(k);
  +                NodeProperty aProp=decodeNodeProperty(aProperty,aUri);
  +                String key =
  +                    
aProperty.getAttributeValue("namespace")+aProperty.getAttributeValue("name");
  +                aProperties.put(key,aProp);
  +            }
  +            NodeRevisionDescriptor aNode=new 
NodeRevisionDescriptor(aRevisionNumber,aBranchName,aLabels,aProperties);
  +            descriptor.put(aRevisionNumber.toString(),aNode);
  +        }
  +    }
  +    // --------------------------------------
  +    public NodePermission decodePermission(Element aElement,String aUri) {
  +        String aRevisionNumber=aElement.getAttributeValue("revisionNumber");
  +        String aSubject=aElement.getAttributeValue("subjectUri");
  +        String aAction=aElement.getAttributeValue("actionUri");
  +        boolean 
aInheritable=Boolean.getBoolean(aElement.getAttributeValue("inheritable"));
  +        boolean 
aNegative=Boolean.getBoolean(aElement.getAttributeValue("negative"));
  +        return new 
NodePermission(aUri,aRevisionNumber,aSubject,aAction,aInheritable,aNegative);
  +
  +    }
  +    // --------------------------------------
  +    public NodeRevisionNumber decodeRevisionNumber(Element aElement) {
  +        Element aElementRevision=aElement.getChild("revision");
  +        return new 
NodeRevisionNumber(Integer.parseInt(aElementRevision.getAttributeValue("major")),
  +                                      
Integer.parseInt(aElementRevision.getAttributeValue("minor")));
  +    }
  +    // --------------------------------------
  +    public NodeRevisionNumber decodeRevisionNumber(String aStr) {
  +        return (aStr==null ? null : new NodeRevisionNumber(aStr));
  +    }
  +    // --------------------------------------
  +    public NodeProperty decodeNodeProperty(Element aElement,String aUri) {
  +        String aName=aElement.getAttributeValue("name");
  +        String aValue=aElement.getAttributeValue("value");
  +        String aNamespace=aElement.getAttributeValue("namespace");
  +        String aType=aElement.getAttributeValue("type");
  +        boolean 
aProtected=Boolean.getBoolean(aElement.getAttributeValue("protected"));
  +        
  +        Element aPermisionsElement=aElement.getChild("permissions");
  +        List aList=aPermisionsElement.getChildren();
  +        Vector aPermission=new Vector();
  +        for (int i=0;i<aList.size();i++) {
  +            Element aChild=(Element)aList.get(i);
  +            aPermission.addElement(decodePermission(aChild,aUri));
  +        }
  +        return new NodeProperty(aName,aValue,aNamespace,aType,aProtected);
  +    }
  +
  +    // --------------------------------------
  +    public Vector createVector(Element aElement,String aParentName,String 
aChildName) {
  +        Element aParent=aElement.getChild(aParentName);
  +        Vector aRet=new Vector();
  +        // System.out.println("--------- createVector  aParentName="+aParentName+" 
aChildName="+aChildName);
  +        List aList=aParent.getChildren(aChildName);
  +        // System.out.println("--------- createVector  aList="+aList);
  +        for (int i=0;i<aList.size();i++) {
  +            Element aChild=(Element)aList.get(i);
  +            aRet.addElement(aChild.getAttributeValue("val"));
  +        }
  +        return aRet;
  +    }
  +    // --------------------------------------
  +    public Object createObject(String aNomClasse,Class aTypes[],Object aArgs[]) 
throws UnknownObjectClassException {
  +        Class aClasse = null;
  +        try {
  +            // First, load the object's class
  +            aClasse = Class.forName(aNomClasse);
  +            Constructor aConstructor = aClasse.getConstructor(aTypes);
  +            if (aConstructor==null) 
aConstructor=aClasse.getSuperclass().getConstructor(aTypes);
  +            return aConstructor.newInstance(aArgs);
  +            
  +        }
  +        catch (Exception e) {
  +            throw new UnknownObjectClassException(aNomClasse);
  +        }
  +    }
  +    /*
  +    // --------------------------------------
  +    public Vector decodeObject(Vector aVector,Enumeration aEnum) {
  +    }
  +    */
   }
  
  
  
  1.4       +292 -292  
jakarta-slide/src/stores/slidestore/file/AbstractUriProperties.java
  
  Index: AbstractUriProperties.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/stores/slidestore/file/AbstractUriProperties.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AbstractUriProperties.java        25 Apr 2002 21:12:27 -0000      1.3
  +++ AbstractUriProperties.java        10 May 2002 16:22:21 -0000      1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-slide/src/stores/slidestore/file/AbstractUriProperties.java,v 1.3 
2002/04/25 21:12:27 jericho Exp $
  - * $Revision: 1.3 $
  - * $Date: 2002/04/25 21:12:27 $
  + * $Header: 
/home/cvs/jakarta-slide/src/stores/slidestore/file/AbstractUriProperties.java,v 1.4 
2002/05/10 16:22:21 pnever Exp $
  + * $Revision: 1.4 $
  + * $Date: 2002/05/10 16:22:21 $
    *
    * ====================================================================
    *
  @@ -80,101 +80,101 @@
   /**
     * Handles the descriptions attached to an Uri</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Marc D�cugis</a>
  - * @contact <a href="mailto:[EMAIL PROTECTED]";>Remy Maucherat</a> 
  - * @version $Revision: 1.3 $ , $Date: 2002/04/25 21:12:27 $
  + * @contact <a href="mailto:[EMAIL PROTECTED]";>Remy Maucherat</a>
  + * @version $Revision: 1.4 $ , $Date: 2002/05/10 16:22:21 $
   */
   
   //----------------------------------------
   public class AbstractUriProperties  {
  -     
  -     
  -     /** Stored object.*/
  -     protected ObjectNode object;
  -     
  -     /** Permissions vector. */
  -     protected Vector permissions;
  -     
  -     /** Locks vector.*/
  -     protected Vector locks;
  -     
  -     /** Revision descriptors.*/
  -     protected NodeRevisionDescriptors revisionDescriptors;
  -     
  -     /** Revision descriptor hashtable.*/
  -     protected Hashtable descriptor;
  -     
  -     /** The rootpath user to store uri descriptions.*/
  -     protected String rootpath;
  -     
  -     
  -     
  -     //----------------------------------------
  -     public AbstractUriProperties(String aRootPath,Uri aUri) {
  -             rootpath=aRootPath;
  -     }
  -     //----------------------------------------
  -     protected void save(Uri aUri) throws ServiceAccessException {
  -             
System.out.println("------------------------------------------------------------------------");
  -             System.out.println("----------- AbstractUriProperties save 
aUri="+aUri);
  -             System.out.println("----------- AbstractUriProperties save 
object="+object);
  -             System.out.println("----------- AbstractUriProperties save 
permissions="+permissions);
  -             System.out.println("----------- AbstractUriProperties save 
locks="+locks);
  -             System.out.println("----------- AbstractUriProperties save 
revisionDescriptors="+revisionDescriptors);
  -             System.out.println("----------- AbstractUriProperties save 
descriptor="+descriptor);
  -             
System.out.println("------------------------------------------------------------------------");
  -     }
  +    
  +    
  +    /** Stored object.*/
  +    protected ObjectNode object;
  +    
  +    /** Permissions vector. */
  +    protected Vector permissions;
  +    
  +    /** Locks vector.*/
  +    protected Vector locks;
  +    
  +    /** Revision descriptors.*/
  +    protected NodeRevisionDescriptors revisionDescriptors;
  +    
  +    /** Revision descriptor hashtable.*/
  +    protected Hashtable descriptor;
  +    
  +    /** The rootpath user to store uri descriptions.*/
  +    protected String rootpath;
  +    
  +    
  +    
  +    //----------------------------------------
  +    public AbstractUriProperties(String aRootPath,Uri aUri) {
  +        rootpath=aRootPath;
  +    }
  +    //----------------------------------------
  +    protected void save(Uri aUri) throws ServiceAccessException {
  +        // 
System.out.println("------------------------------------------------------------------------");
  +        // System.out.println("----------- AbstractUriProperties save aUri="+aUri);
  +        // System.out.println("----------- AbstractUriProperties save 
object="+object);
  +        // System.out.println("----------- AbstractUriProperties save 
permissions="+permissions);
  +        // System.out.println("----------- AbstractUriProperties save 
locks="+locks);
  +        // System.out.println("----------- AbstractUriProperties save 
revisionDescriptors="+revisionDescriptors);
  +        // System.out.println("----------- AbstractUriProperties save 
descriptor="+descriptor);
  +        // 
System.out.println("------------------------------------------------------------------------");
  +    }
      
  -     //----------------------------------------
  -     //----------------------------------------
  -     //----------------------------------------
  -     
  -     //----------------------------------------
  -     /**
  -     * Retrive an object from the Descriptors Store.
  -     *
  -     * @param uri Uri of the object we want to retrieve
  -     * @exception ServiceAccessException Error accessing the Descriptors Store
  -     * @exception ObjectNotFoundException The object to retrieve was not found
  -     */
  -     //----------------------------------------
  -     public ObjectNode retrieveObject(Uri uri)
  +    //----------------------------------------
  +    //----------------------------------------
  +    //----------------------------------------
  +    
  +    //----------------------------------------
  +    /**
  +    * Retrive an object from the Descriptors Store.
  +    *
  +    * @param uri Uri of the object we want to retrieve
  +    * @exception ServiceAccessException Error accessing the Descriptors Store
  +    * @exception ObjectNotFoundException The object to retrieve was not found
  +    */
  +    //----------------------------------------
  +    public ObjectNode retrieveObject(Uri uri)
           throws ServiceAccessException, ObjectNotFoundException {
  -             System.out.println("----------- AbstractUriProperties retrieveObject 
uri="+uri+" object="+object);
  +        // System.out.println("----------- AbstractUriProperties retrieveObject 
uri="+uri+" object="+object);
           if (object == null) {
               throw new ObjectNotFoundException(uri);
           }
  -             System.out.println("----------- AbstractUriProperties retrieveObject 
uri="+uri+" object="+object);
  +        // System.out.println("----------- AbstractUriProperties retrieveObject 
uri="+uri+" object="+object);
           return object.cloneObject();
       }
   
  -     //----------------------------------------
  -     /**
  -     * Store an object in the Descriptors Store.
  -     *
  -     * @param object Object to update
  -     * @exception ServiceAccessException Error accessing the Descriptors Store
  -     * @exception ObjectNotFoundException The object to update was not found
  -     */
  -     //----------------------------------------
  +    //----------------------------------------
  +    /**
  +    * Store an object in the Descriptors Store.
  +    *
  +    * @param object Object to update
  +    * @exception ServiceAccessException Error accessing the Descriptors Store
  +    * @exception ObjectNotFoundException The object to update was not found
  +    */
  +    //----------------------------------------
       public void storeObject(Uri uri,ObjectNode aObject)
           throws ServiceAccessException, ObjectNotFoundException {
  -             System.out.println("----------- AbstractUriProperties storeObject 
uri="+uri+" object="+object);
  +        // System.out.println("----------- AbstractUriProperties storeObject 
uri="+uri+" object="+object);
           object=aObject.cloneObject();
  -             save(uri);
  +        save(uri);
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Create a new object in the Descriptors Store.
  -     *
  -     * @param object SlideObject
  -     * @param uri Uri of the object we want to create
  -     * @exception ServiceAccessException Error accessing the Descriptors Store
  -     * @exception ObjectAlreadyExistsException An object already exists
  -     * at this Uri
  -     */
  -     //----------------------------------------
  +    //----------------------------------------
  +    /**
  +    * Create a new object in the Descriptors Store.
  +    *
  +    * @param object SlideObject
  +    * @param uri Uri of the object we want to create
  +    * @exception ServiceAccessException Error accessing the Descriptors Store
  +    * @exception ObjectAlreadyExistsException An object already exists
  +    * at this Uri
  +    */
  +    //----------------------------------------
       public void createObject(Uri uri,ObjectNode aObject)
           throws ServiceAccessException, ObjectAlreadyExistsException {
           try {
  @@ -185,79 +185,79 @@
           } catch(ObjectNotFoundException e) {
               // Never happens
           }
  -             System.out.println("----------- AbstractUriProperties createObject 
uri="+uri+" object="+object);
  +        // System.out.println("----------- AbstractUriProperties createObject 
uri="+uri+" object="+object);
       }
  -     //----------------------------------------
  -     /**
  -     * Remove an object from the Descriptors Store.
  -     *
  -     * @param object Object to remove
  -     * @exception ServiceAccessException Error accessing the Descriptors Store
  -     * @exception ObjectNotFoundException The object to remove was not found
  -     */
  -     //----------------------------------------
  -     public void removeObject(Uri uri, ObjectNode aObject)
  +    //----------------------------------------
  +    /**
  +    * Remove an object from the Descriptors Store.
  +    *
  +    * @param object Object to remove
  +    * @exception ServiceAccessException Error accessing the Descriptors Store
  +    * @exception ObjectNotFoundException The object to remove was not found
  +    */
  +    //----------------------------------------
  +    public void removeObject(Uri uri, ObjectNode aObject)
           throws ServiceAccessException, ObjectNotFoundException {
           object=null;
  -             System.out.println("----------- AbstractUriProperties removeObject 
uri="+uri+" object="+object);
  +        // System.out.println("----------- AbstractUriProperties removeObject 
uri="+uri+" object="+object);
       }
           
  -     //----------------------------------------
  -     /**
  -     * Store an object permissions in the Descriptors Store.
  -     *
  -     * @param permission Permission we want to create
  -     * @exception ServiceAccessException Error accessing the Descriptors Store
  -     */
  -     //----------------------------------------
  +    //----------------------------------------
  +    /**
  +    * Store an object permissions in the Descriptors Store.
  +    *
  +    * @param permission Permission we want to create
  +    * @exception ServiceAccessException Error accessing the Descriptors Store
  +    */
  +    //----------------------------------------
       public void grantPermission(Uri uri,NodePermission permission)
           throws ServiceAccessException {
           if (permissions == null) permissions = new Vector();
           permissions.addElement(permission.cloneObject());
  -             save(uri);
  +        save(uri);
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Store an object permissions in the Descriptors Store.
  -     *
  -     * @param permission Permission we want to create
  -     * @exception ServiceAccessException Error accessing the Descriptors Store
  -     */
  -     //----------------------------------------
  +    //----------------------------------------
  +    /**
  +    * Store an object permissions in the Descriptors Store.
  +    *
  +    * @param permission Permission we want to create
  +    * @exception ServiceAccessException Error accessing the Descriptors Store
  +    */
  +    //----------------------------------------
       public void revokePermission(Uri uri,NodePermission permission)
           throws ServiceAccessException {
  -        if (permissions != null) 
  -                     permissions.removeElement(permission);
  -             save(uri);
  +        if (permissions != null)
  +            permissions.removeElement(permission);
  +        save(uri);
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Revoke all the permissions on the object .
  -     *
  -     * @param permission Permission we want to create
  -     * @exception ServiceAccessException Error accessing the Descriptors Store
  -     */
  -     //----------------------------------------
  +    //----------------------------------------
  +    /**
  +    * Revoke all the permissions on the object .
  +    *
  +    * @param permission Permission we want to create
  +    * @exception ServiceAccessException Error accessing the Descriptors Store
  +    */
  +    //----------------------------------------
       public void revokePermissions(Uri uri)
           throws ServiceAccessException {
  -        if (permissions != null) 
  -                     permissions.removeAllElements();
  -             save(uri);
  +        if (permissions != null)
  +            permissions.removeAllElements();
  +        save(uri);
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Store an object permissions in the Descriptors Store.
  -     *
  -     * @param permission Permission we want to create
  -     * @exception ServiceAccessException Error accessing the Descriptors Store
  -     */
  -     //----------------------------------------
  +    //----------------------------------------
  +    /**
  +    * Store an object permissions in the Descriptors Store.
  +    *
  +    * @param permission Permission we want to create
  +    * @exception ServiceAccessException Error accessing the Descriptors Store
  +    */
  +    //----------------------------------------
       public Enumeration enumeratePermissions()
           throws ServiceAccessException {
           if (permissions == null) permissions = new Vector();
  @@ -265,165 +265,165 @@
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Puts a lock on a subject.
  -     *
  -     * @param lock Lock token
  -     * @exception ServiceAccessException Service access error
  -     */
  -     //----------------------------------------
  +    //----------------------------------------
  +    /**
  +    * Puts a lock on a subject.
  +    *
  +    * @param lock Lock token
  +    * @exception ServiceAccessException Service access error
  +    */
  +    //----------------------------------------
       public void putLock(Uri uri, NodeLock lock)
           throws ServiceAccessException {
           if (locks == null) locks = new Vector();
           locks.addElement(lock.cloneObject());
  -             save(uri);
  +        save(uri);
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Renews a lock.
  -     *
  -     * @param lock Token to renew
  -     * @exception ServiceAccessException Service access error
  -     * @exception LockTokenNotFoundException Lock token was not found
  -     */
  -     //----------------------------------------
  -      public void renewLock(Uri uri, NodeLock lock) throws ServiceAccessException, 
LockTokenNotFoundException {
  +    //----------------------------------------
  +    /**
  +    * Renews a lock.
  +    *
  +    * @param lock Token to renew
  +    * @exception ServiceAccessException Service access error
  +    * @exception LockTokenNotFoundException Lock token was not found
  +    */
  +    //----------------------------------------
  +     public void renewLock(Uri uri, NodeLock lock) throws ServiceAccessException, 
LockTokenNotFoundException {
           if (locks == null) locks = new Vector();
  -              boolean wasPresent = locks.removeElement(lock);
  -              if (!wasPresent) {
  -                      throw new LockTokenNotFoundException(lock);
  -              }
  -              locks.addElement(lock.cloneObject());
  -             save(uri);
  -      }
  +         boolean wasPresent = locks.removeElement(lock);
  +         if (!wasPresent) {
  +             throw new LockTokenNotFoundException(lock);
  +         }
  +         locks.addElement(lock.cloneObject());
  +        save(uri);
  +     }
   
       
  -     //----------------------------------------
  -     /**
  -     * Removes (cancels) a lock.
  -     *
  -     * @param lock Token to remove
  -     * @exception ServiceAccessException Service access error
  -     * @exception LockTokenNotFoundException Lock token was not found
  -     */
  -     //----------------------------------------
  +    //----------------------------------------
  +    /**
  +    * Removes (cancels) a lock.
  +    *
  +    * @param lock Token to remove
  +    * @exception ServiceAccessException Service access error
  +    * @exception LockTokenNotFoundException Lock token was not found
  +    */
  +    //----------------------------------------
       public void removeLock(Uri uri,NodeLock lock)
           throws ServiceAccessException, LockTokenNotFoundException {
  -             
  -             if (locks == null) {
  -                     throw new LockTokenNotFoundException(lock);
  -             }
  -             boolean wasPresent = locks.removeElement(lock);
  -             if (!wasPresent) {
  -                     throw new LockTokenNotFoundException(lock);
  -             }
  -             save(uri);
  -     }
  -    
  -     //----------------------------------------
  -     /**
  -     * Returns the list of locks put on a subject.
  -     *
  -     * @param subject Subject
  -     * @return Enumeration List of locks which have been put on the subject
  -     * @exception ServiceAccessException Service access error
  -     */
  -     //----------------------------------------
  -     public Enumeration enumerateLocks()
  +        
  +        if (locks == null) {
  +            throw new LockTokenNotFoundException(lock);
  +        }
  +        boolean wasPresent = locks.removeElement(lock);
  +        if (!wasPresent) {
  +            throw new LockTokenNotFoundException(lock);
  +        }
  +        save(uri);
  +    }
  +    
  +    //----------------------------------------
  +    /**
  +    * Returns the list of locks put on a subject.
  +    *
  +    * @param subject Subject
  +    * @return Enumeration List of locks which have been put on the subject
  +    * @exception ServiceAccessException Service access error
  +    */
  +    //----------------------------------------
  +    public Enumeration enumerateLocks()
           throws ServiceAccessException {
           if (locks == null) locks = new Vector();
           return locks.elements();
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Retrieve a revision descriptors.
  -     *
  -     * @param uri Uri
  -     * @exception ServiceAccessException Service access error
  -     * @exception RevisionDescriptorNotFoundException Revision descriptor
  -     * was not found
  -     */
  -     //----------------------------------------
  -     public NodeRevisionDescriptors retrieveRevisionDescriptors(Uri uri)
  -             throws ServiceAccessException, RevisionDescriptorNotFoundException {
  -             if (revisionDescriptors == null) {
  -                     throw new RevisionDescriptorNotFoundException(uri.toString());
  -             }
  -             return revisionDescriptors.cloneObject();
  -     }
  -     
  -    
  -     //----------------------------------------
  -     /**
  -     * Create new revision descriptors.
  -     *
  -     * @param uri Uri
  -     * @param revisionDescriptors Node revision descriptors
  -     * @exception ServiceAccessException Service access error
  -     */
  -     //----------------------------------------
  -     public void createRevisionDescriptors (Uri uri,NodeRevisionDescriptors 
aRevisionDescriptors)
  +    //----------------------------------------
  +    /**
  +    * Retrieve a revision descriptors.
  +    *
  +    * @param uri Uri
  +    * @exception ServiceAccessException Service access error
  +    * @exception RevisionDescriptorNotFoundException Revision descriptor
  +    * was not found
  +    */
  +    //----------------------------------------
  +    public NodeRevisionDescriptors retrieveRevisionDescriptors(Uri uri)
  +        throws ServiceAccessException, RevisionDescriptorNotFoundException {
  +        if (revisionDescriptors == null) {
  +            throw new RevisionDescriptorNotFoundException(uri.toString());
  +        }
  +        return revisionDescriptors.cloneObject();
  +    }
  +    
  +    
  +    //----------------------------------------
  +    /**
  +    * Create new revision descriptors.
  +    *
  +    * @param uri Uri
  +    * @param revisionDescriptors Node revision descriptors
  +    * @exception ServiceAccessException Service access error
  +    */
  +    //----------------------------------------
  +    public void createRevisionDescriptors (Uri uri,NodeRevisionDescriptors 
aRevisionDescriptors)
           throws ServiceAccessException {
           revisionDescriptors = aRevisionDescriptors.cloneObject();
  -             save(uri);
  +        save(uri);
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Update revision descriptors.
  -     *
  -     * @param uri Uri
  -     * @param revisionDescriptors Node revision descriptors
  -     * @exception ServiceAccessException Service access error
  -     * @exception RevisionDescriptorNotFoundException Revision descriptor
  -     * was not found
  -     */
  -     //----------------------------------------
  -     public void storeRevisionDescriptors(Uri uri, NodeRevisionDescriptors 
aRevisionDescriptors)
  +    //----------------------------------------
  +    /**
  +    * Update revision descriptors.
  +    *
  +    * @param uri Uri
  +    * @param revisionDescriptors Node revision descriptors
  +    * @exception ServiceAccessException Service access error
  +    * @exception RevisionDescriptorNotFoundException Revision descriptor
  +    * was not found
  +    */
  +    //----------------------------------------
  +    public void storeRevisionDescriptors(Uri uri, NodeRevisionDescriptors 
aRevisionDescriptors)
           throws ServiceAccessException, RevisionDescriptorNotFoundException {
           if (!revisionDescriptors.getUri().equals(uri.toString())) {
               throw new RevisionDescriptorNotFoundException(uri.toString());
           }
           revisionDescriptors = aRevisionDescriptors.cloneObject();
  -             save(uri);
  +        save(uri);
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Remove revision descriptors.
  -     *
  -     * @param uri Uri
  -     * @exception ServiceAccessException Service access error
  -     */
  -     //----------------------------------------
  -     public void removeRevisionDescriptors(Uri uri)
  +    //----------------------------------------
  +    /**
  +    * Remove revision descriptors.
  +    *
  +    * @param uri Uri
  +    * @exception ServiceAccessException Service access error
  +    */
  +    //----------------------------------------
  +    public void removeRevisionDescriptors(Uri uri)
           throws ServiceAccessException {
           revisionDescriptors = null;
  -             save(uri);
  +        save(uri);
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Retrieve revision descriptor.
  -     *
  -     * @param Uri uri
  -     * @param revisionNumber Node revision number
  -     */
  -     //----------------------------------------
  -     public NodeRevisionDescriptor retrieveRevisionDescriptor(Uri uri, 
NodeRevisionNumber revisionNumber)
  +    //----------------------------------------
  +    /**
  +    * Retrieve revision descriptor.
  +    *
  +    * @param Uri uri
  +    * @param revisionNumber Node revision number
  +    */
  +    //----------------------------------------
  +    public NodeRevisionDescriptor retrieveRevisionDescriptor(Uri uri, 
NodeRevisionNumber revisionNumber)
           throws ServiceAccessException, RevisionDescriptorNotFoundException {
           Object result = null;
  -             
  -             if (descriptor!=null && revisionNumber!=null) result = 
descriptor.get(revisionNumber.toString());
  -                     
  +        
  +        if (descriptor!=null && revisionNumber!=null) result = 
descriptor.get(revisionNumber.toString());
  +            
           if (result == null) {
               throw new RevisionDescriptorNotFoundException(uri.toString());
           }
  @@ -431,63 +431,63 @@
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Create new revision descriptor.
  -     *
  -     * @param uri Uri
  -     * @param revisionDescriptor Node revision descriptor
  -     * @exception ServiceAccessException Service access error
  -     */
  -     //----------------------------------------
  -     public void createRevisionDescriptor(Uri uri, NodeRevisionDescriptor 
aRevisionDescriptor)
  +    //----------------------------------------
  +    /**
  +    * Create new revision descriptor.
  +    *
  +    * @param uri Uri
  +    * @param revisionDescriptor Node revision descriptor
  +    * @exception ServiceAccessException Service access error
  +    */
  +    //----------------------------------------
  +    public void createRevisionDescriptor(Uri uri, NodeRevisionDescriptor 
aRevisionDescriptor)
           throws ServiceAccessException {
  -             if (descriptor==null) descriptor=new Hashtable();
  +        if (descriptor==null) descriptor=new Hashtable();
   
           descriptor.put(aRevisionDescriptor.getRevisionNumber().toString(),
                          aRevisionDescriptor.cloneObject());
  -             save(uri);
  +        save(uri);
       }
       
       
  -     //----------------------------------------
  -     /**
  -     * Update revision descriptor.
  -     *
  -     * @param uri Uri
  -     * @param revisionDescriptors Node revision descriptor
  -     * @exception ServiceAccessException Service access error
  -     * @exception RevisionDescriptorNotFoundException Revision descriptor
  -     * was not found
  -     */
  -     //----------------------------------------
  -     public void storeRevisionDescriptor(Uri uri, NodeRevisionDescriptor 
aRevisionDescriptor)
  +    //----------------------------------------
  +    /**
  +    * Update revision descriptor.
  +    *
  +    * @param uri Uri
  +    * @param revisionDescriptors Node revision descriptor
  +    * @exception ServiceAccessException Service access error
  +    * @exception RevisionDescriptorNotFoundException Revision descriptor
  +    * was not found
  +    */
  +    //----------------------------------------
  +    public void storeRevisionDescriptor(Uri uri, NodeRevisionDescriptor 
aRevisionDescriptor)
           throws ServiceAccessException, RevisionDescriptorNotFoundException {
           String key = aRevisionDescriptor.getRevisionNumber().toString();
           if (descriptor==null || !descriptor.containsKey(key)) {
               throw new RevisionDescriptorNotFoundException(uri.toString());
           }
           descriptor.put(key, aRevisionDescriptor.cloneObject());
  -             save(uri);
  +        save(uri);
       }
       
  -     
  -     //----------------------------------------
  -     /**
  -     * Remove revision descriptor.
  -     *
  -     * @param uri Uri
  -     * @param revisionNumber Revision number
  -     * @exception ServiceAccessException Service access error
  -     */
  -     //----------------------------------------
  -     public void removeRevisionDescriptor(Uri uri, NodeRevisionNumber number)
  +    
  +    //----------------------------------------
  +    /**
  +    * Remove revision descriptor.
  +    *
  +    * @param uri Uri
  +    * @param revisionNumber Revision number
  +    * @exception ServiceAccessException Service access error
  +    */
  +    //----------------------------------------
  +    public void removeRevisionDescriptor(Uri uri, NodeRevisionNumber number)
           throws ServiceAccessException {
  -             if (descriptor==null) return;
  -             
  +        if (descriptor==null) return;
  +        
           descriptor.remove(number.toString());
  -             save(uri);
  +        save(uri);
       }
  -     
  +    
   }
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to