001    //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/framework/util/UUID.java $
002    /*
003    
004     This class orginaly has been part of the apache derby project. It has 
005     slightly been changed to match the requirements of deegree.
006    
007     Derby - Class org.apache.derby.catalog.UUID
008    
009     Copyright 1997, 2004 The Apache Software Foundation or its licensors, as applicable.
010    
011     Licensed under the Apache License, Version 2.0 (the "License");
012     you may not use this file except in compliance with the License.
013     You may obtain a copy of the License at
014    
015     http://www.apache.org/licenses/LICENSE-2.0
016    
017     Unless required by applicable law or agreed to in writing, software
018     distributed under the License is distributed on an "AS IS" BASIS,
019     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
020     See the License for the specific language governing permissions and
021     limitations under the License.
022    
023     */
024    package org.deegree.framework.util;
025    
026    /**
027     * 
028     * An interface for accessing Cloudscape UUIDs, unique identifiers.
029     * 
030     * <p>
031     * The values in the system catalog held in ID columns with a type of CHAR(36) are the string
032     * representations of these UUIDs.
033     * 
034     * <p>
035     * A UUID implements equals() and hashCode based on value equality.
036     * 
037     */
038    
039    public interface UUID extends java.io.Externalizable {
040        /**
041         * UUID_BYTE_LENGTH
042         * 
043         * The number of bytes in the array toByteArray returns.
044         */
045        static int UUID_BYTE_LENGTH = 16;
046    
047        /**
048         * Produce a string representation of this UUID which is suitable for use as a unique ANSI
049         * identifier.
050         */
051        String toANSIidentifier();
052    
053        /**
054         * Produce a byte array representation of this UUID which can be passed to
055         * UUIDFactory.recreateUUID later on to reconstruct it.
056         */
057        byte[] toByteArray();
058    
059        /**
060         * Clone this UUID.
061         * 
062         * @return a copy of this UUID
063         */
064        UUID cloneMe();
065    
066        /**
067         * Create a hex string representation of this UUID.
068         */
069        String toHexString();
070    }