view usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/BeanSerialization.java @ 4:1a15d5aaf794

synchronized with onnv_86 (6202) in onnv-gate
author Koji Uno <koji.uno@sun.com>
date Mon, 31 Aug 2009 14:38:03 +0900
parents c9caec207d52
children
line wrap: on
line source

/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2001 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 *
 * ident	"%Z%%M%	%I%	%E% SMI"
 *
 */

/*
 * @(#) BeanSerialization.java 1.5 - last change made 08/06/97
 */

package sunsoft.jws.visual.rt.base;

import java.io.*;

import sunsoft.jws.visual.rt.encoding.*;

public class BeanSerialization {
    
    final static private boolean debug = false;
    final static private boolean test = false;
    
    static public String serializeObject(Object obj) {
        if (debug) System.out.println(/* NOI18N */"\nserializeObject: entered");
        
        /*
	** serialize the bean
	*/
        
        ByteArrayOutputStream byteOutStrm = new ByteArrayOutputStream();
        try {
            ObjectOutputStream objOutStrm = new ObjectOutputStream(byteOutStrm);
            objOutStrm.writeObject(obj);
            objOutStrm.flush();
        } catch (NotSerializableException ex) {
            // skip it since it is not serializable - not an err
            if (debug) System.out.println(ex.toString());
            return null;
        } catch (Exception ex) {
            throw new VJException(Global.fmtMsg(
		"sunsoft.jws.visual.rt.base.BeanSerialization.serExcpt",
						obj, ex.toString()));
        }
        byte[] buf = byteOutStrm.toByteArray();
        
        if (debug) System.out.println(/* NOI18N */
				      "serializeObject: serialized");
        
        /*
	** encode the string
	*/
        
        UCEncoder encoder = new UCEncoder();
        String str = encoder.encodeBuffer(buf);
        
        if (debug) System.out.println(/* NOI18N */"serializeObject: encoded");
        
        return str;
    }
    
    static public Object deserializeObject(String value, String objName) {
        if (debug) System.out.println(/* NOI18N */
				      "\ndeserializeObject: entered");
        
        if (value == null || value.length() == 0) {
            if (debug) { 
/* JSTYLED */ 
                System.out.println(/* NOI18N */"deserializeObject: value is null");
            }
            return null;
        }
        
        /*
	** decode the string first
	*/
        
        byte buf[] = null;
        try {
            UCDecoder decoder = new UCDecoder();
            buf = decoder.decodeBuffer(value);
        } catch (Exception ex) {
            if (debug) System.out.println(ex.toString());
            throw new VJException(Global.fmtMsg(
		"sunsoft.jws.visual.rt.base.BeanSerialization.decoderExcpt",
						objName));
        }
        if (debug) System.out.println(/* NOI18N */"deserializeObject: decoded");
        
        /*
	** deserialize the object
	*/
        
        Object newBody = null;
        try {
            ByteArrayInputStream byteInStrm = new ByteArrayInputStream(buf);
            ObjectInputStream objInStrm = new ObjectInputStream(byteInStrm);
            newBody = objInStrm.readObject();
        } catch (Exception ex) {
            // ClassNotFoundException   from readObject
            // OptionalDataException    from readObject
            // StreamCorruptedException from ObjectInputStream
            // IOException              from ObjectInputStream
            String errMsg = Global.fmtMsg(
		  "sunsoft.jws.visual.rt.base.BeanSerialization.deserExcpt",
					  objName, ex.toString());
            if (java.beans.Beans.isDesignTime()) {
                DesignerAccess.reportInstantiationError(errMsg);
            }
            else
		{
		    throw new VJException(errMsg);
		}
        }
        if (debug) {
            System.out.println(/* NOI18N */"deserializeObject: deserialized");
        }
        return newBody;
    }
}