xref: /titanic_41/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/BeanShadow.java (revision 7c478bd95313f5f23a4c958a745db2134aa03244)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*
23  * ident	"%Z%%M%	%I%	%E% SMI"
24  *
25  * Copyright (c) 2000 by Sun Microsystems, Inc.
26  * All rights reserved.
27  */
28 
29 package sunsoft.jws.visual.rt.shadow.java.awt;
30 
31 import sunsoft.jws.visual.rt.shadow.java.awt.*;
32 import sunsoft.jws.visual.rt.base.*;
33 import sunsoft.jws.visual.rt.awt.*;
34 import sunsoft.jws.visual.rt.base.Global;
35 
36 public abstract class BeanShadow extends Shadow implements BeanableComponent {
37 
38     protected Object beanBody = null;
39     protected boolean bodyCreated = false;
40 
41     // boolean needsBeans() is defined in subclasses
42     // boolean needsJDK1_1() is defined in subclasses
43 
44     private boolean hasDeserialized = false;	// should only deserialize once
45 
getOnBody(String key)46     protected Object getOnBody(String key) {
47         if (key.equals(/* NOI18N */"serializationData")) {
48             if (!bodyCreated || getBody() == null) {
49                 return null;
50             }
51             return BeanSerialization.serializeObject(getBody());
52         } else {
53             return (super.getOnBody(key));
54         }
55     }
56 
setOnBody(String key, Object value)57     protected void setOnBody(String key, Object value) {
58         if (key.equals(/* NOI18N */"serializationData") && !hasDeserialized) {
59             if (!bodyCreated || getBody() == null) {
60                 return;
61             }
62             Object newBody = BeanSerialization.deserializeObject(
63 		    (String)value, getName());
64             if (newBody != null) {
65                 body = beanBody = newBody;
66                 hasDeserialized = true;
67                 DesignerAccess.getShadowTable().put(body, this);
68             }
69         } else {
70             super.setOnBody(key, value);
71         }
72     }
73 }
74