001    /**
002     * JDBM LICENSE v1.00
003     *
004     * Redistribution and use of this software and associated documentation
005     * ("Software"), with or without modification, are permitted provided
006     * that the following conditions are met:
007     *
008     * 1. Redistributions of source code must retain copyright
009     *    statements and notices.  Redistributions must also contain a
010     *    copy of this document.
011     *
012     * 2. Redistributions in binary form must reproduce the
013     *    above copyright notice, this list of conditions and the
014     *    following disclaimer in the documentation and/or other
015     *    materials provided with the distribution.
016     *
017     * 3. The name "JDBM" must not be used to endorse or promote
018     *    products derived from this Software without prior written
019     *    permission of Cees de Groot.  For written permission,
020     *    please contact cg@cdegroot.com.
021     *
022     * 4. Products derived from this Software may not be called "JDBM"
023     *    nor may "JDBM" appear in their names without prior written
024     *    permission of Cees de Groot.
025     *
026     * 5. Due credit should be given to the JDBM Project
027     *    (http://jdbm.sourceforge.net/).
028     *
029     * THIS SOFTWARE IS PROVIDED BY THE JDBM PROJECT AND CONTRIBUTORS
030     * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
031     * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
032     * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
033     * CEES DE GROOT OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
034     * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
035     * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
036     * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
037     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
038     * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
039     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
040     * OF THE POSSIBILITY OF SUCH DAMAGE.
041     *
042     * Copyright 2001 (C) Alex Boisvert. All Rights Reserved.
043     * Contributions are Copyright (C) 2001 by their associated contributors.
044     *
045     */
046    package jdbm.helper;
047    
048    
049    import java.io.IOException;
050    
051    
052    /**
053     * Default java serializer.
054     *
055     * @author <a href="mailto:boisvert@intalio.com">Alex Boisvert</a>
056     * @version $Id: DefaultSerializer.java,v 1.2 2003/09/21 15:47:00 boisvert Exp $
057     */
058    public class DefaultSerializer implements Serializer
059    {
060        private static final long serialVersionUID = -3818545055661017388L;
061    
062        public static final DefaultSerializer INSTANCE = new DefaultSerializer();
063        
064        
065        /**
066         * Construct a DefaultSerializer.
067         */
068        public DefaultSerializer()
069        {
070            // no op
071        }
072    
073        
074        /**
075         * Serialize the content of an object into a byte array.
076         *
077         * @param obj Object to serialize
078         * @return a byte array representing the object's state
079         */
080         public byte[] serialize( Object obj ) throws IOException
081         {
082             return Serialization.serialize( obj );
083         }
084            
085            
086        /**
087         * De-serialize the content of an object from a byte array.
088         *
089         * @param serialized Byte array representation of the object
090         * @return de-serialized object
091         */
092         public Object deserialize( byte[] serialized ) throws IOException
093         {
094             try 
095             {
096                return Serialization.deserialize( serialized );
097             } 
098             catch ( ClassNotFoundException except ) 
099             {
100                throw new WrappedRuntimeException( except );
101             }
102         }
103    }