Package slidestore.file

Source Code of slidestore.file.AbstractUriProperties

/*
* $Header: /home/cvs/jakarta-slide/src/stores/slidestore/file/Attic/AbstractUriProperties.java,v 1.5.2.2 2004/03/03 09:58:47 ozeigermann Exp $
* $Revision: 1.5.2.2 $
* $Date: 2004/03/03 09:58:47 $
*
* ====================================================================
*
* Copyright 1999-2002 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

package slidestore.file;

//----------------------------------------
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

import org.apache.slide.common.ServiceAccessException;
import org.apache.slide.common.Uri;
import org.apache.slide.content.NodeRevisionDescriptor;
import org.apache.slide.content.NodeRevisionDescriptors;
import org.apache.slide.content.NodeRevisionNumber;
import org.apache.slide.content.RevisionDescriptorNotFoundException;
import org.apache.slide.lock.LockTokenNotFoundException;
import org.apache.slide.lock.NodeLock;
import org.apache.slide.security.NodePermission;
import org.apache.slide.structure.ObjectAlreadyExistsException;
import org.apache.slide.structure.ObjectNode;
import org.apache.slide.structure.ObjectNotFoundException;
//----------------------------------------

//----------------------------------------
//----------------------------------------
//----------------------------------------
/**
  * Handles the descriptions attached to an Uri</a>
* @author <a href="mailto:mdecugis@mds-desing.fr">Marc D�cugis</a>
* @contact <a href="mailto:remm@apache.org">Remy Maucherat</a>
* @version $Revision: 1.5.2.2 $ , $Date: 2004/03/03 09:58:47 $
* @deprecated will be removed in 2.1
*/

//----------------------------------------
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("------------------------------------------------------------------------");
    }
  
    //----------------------------------------
    //----------------------------------------
    //----------------------------------------
   
    //----------------------------------------
    /**
    * 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);
        if (object == null) {
            throw new ObjectNotFoundException(uri);
        }
        // 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
    */
    //----------------------------------------
    public void storeObject(Uri uri,ObjectNode aObject)
        throws ServiceAccessException, ObjectNotFoundException {
        // System.out.println("----------- AbstractUriProperties storeObject uri="+uri+" object="+object);
        object=aObject.cloneObject();
        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
    */
    //----------------------------------------
    public void createObject(Uri uri,ObjectNode aObject)
        throws ServiceAccessException, ObjectAlreadyExistsException {
        try {
            if (object.getUri().equals(uri.toString())) {
                throw new ObjectAlreadyExistsException(uri.toString());
            }
            storeObject(uri,aObject);
        } catch(ObjectNotFoundException e) {
            // Never happens
        }
        // 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)
        throws ServiceAccessException, ObjectNotFoundException {
        object=null;
        // 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
    */
    //----------------------------------------
    public void grantPermission(Uri uri,NodePermission permission)
        throws ServiceAccessException {
        if (permissions == null) permissions = new Vector();
        permissions.addElement(permission.cloneObject());
        save(uri);
    }
   
   
    //----------------------------------------
    /**
    * 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);
    }
   
   
    //----------------------------------------
    /**
    * 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);
    }
   
   
    //----------------------------------------
    /**
    * 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();
        return permissions.elements();
    }
   
   
    //----------------------------------------
    /**
    * 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);
    }
   
   
    //----------------------------------------
    /**
    * 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);
     }

   
    //----------------------------------------
    /**
    * 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()
        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)
        throws ServiceAccessException {
        revisionDescriptors = aRevisionDescriptors.cloneObject();
        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)
        throws ServiceAccessException, RevisionDescriptorNotFoundException {
        if (!revisionDescriptors.getUri().equals(uri.toString())) {
            throw new RevisionDescriptorNotFoundException(uri.toString());
        }
        revisionDescriptors = aRevisionDescriptors.cloneObject();
        save(uri);
    }
   
   
    //----------------------------------------
    /**
    * Remove revision descriptors.
    *
    * @param uri Uri
    * @exception ServiceAccessException Service access error
    */
    //----------------------------------------
    public void removeRevisionDescriptors(Uri uri)
        throws ServiceAccessException {
        revisionDescriptors = null;
        save(uri);
    }
   
   
    //----------------------------------------
    /**
    * 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 (result == null) {
            throw new RevisionDescriptorNotFoundException(uri.toString());
        }
        return ((NodeRevisionDescriptor) result).cloneObject();
    }
   
   
    //----------------------------------------
    /**
    * 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();

        descriptor.put(aRevisionDescriptor.getRevisionNumber().toString(),
                       aRevisionDescriptor.cloneObject());
        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)
        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);
    }
   
   
    //----------------------------------------
    /**
    * 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;
       
        descriptor.remove(number.toString());
        save(uri);
    }
   
}

TOP

Related Classes of slidestore.file.AbstractUriProperties

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.