001: /*
002: * <copyright>
003: *
004: * Copyright 1997-2004 BBNT Solutions, LLC
005: * under sponsorship of the Defense Advanced Research Projects
006: * Agency (DARPA).
007: *
008: * You can redistribute this software and/or modify it under the
009: * terms of the Cougaar Open Source License as published on the
010: * Cougaar Open Source Website (www.cougaar.org).
011: *
012: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
013: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
014: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
015: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
016: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
017: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
018: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
019: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
020: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
021: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
022: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
023: *
024: * </copyright>
025: */
026:
027: /* @generated Thu Sep 27 15:21:46 EDT 2007 from /u01/builds/cougaar/B12_4/B12_4/070927151721/src/glm/src/org/cougaar/glm/ldm/asset/alpassets.def - DO NOT HAND EDIT */
028: package org.cougaar.glm.ldm.asset;
029:
030: import org.cougaar.planning.ldm.asset.*;
031: import java.io.ObjectOutputStream;
032: import java.io.ObjectInputStream;
033: import java.io.IOException;
034: import java.util.Vector;
035: import java.beans.PropertyDescriptor;
036: import java.beans.IndexedPropertyDescriptor;
037: import java.beans.IntrospectionException;
038:
039: public class Person extends GLMAsset {
040:
041: public Person() {
042: myPersonPG = null;
043: }
044:
045: public Person(Person prototype) {
046: super (prototype);
047: myPersonPG = null;
048: }
049:
050: /** For infrastructure only - use org.cougaar.core.domain.Factory.copyInstance instead. **/
051: public Object clone() throws CloneNotSupportedException {
052: Person _thing = (Person) super .clone();
053: if (myPersonPG != null)
054: _thing.setPersonPG(myPersonPG.lock());
055: return _thing;
056: }
057:
058: /** create an instance of the right class for copy operations **/
059: public Asset instanceForCopy() {
060: return new Person();
061: }
062:
063: /** create an instance of this prototype **/
064: public Asset createInstance() {
065: return new Person(this );
066: }
067:
068: protected void fillAllPropertyGroups(Vector v) {
069: super .fillAllPropertyGroups(v);
070: {
071: Object _tmp = getPersonPG();
072: if (_tmp != null && !(_tmp instanceof Null_PG)) {
073: v.addElement(_tmp);
074: }
075: }
076: }
077:
078: private transient PersonPG myPersonPG;
079:
080: public PersonPG getPersonPG() {
081: PersonPG _tmp = (myPersonPG != null) ? myPersonPG
082: : (PersonPG) resolvePG(PersonPG.class);
083: return (_tmp == PersonPG.nullPG) ? null : _tmp;
084: }
085:
086: public void setPersonPG(PropertyGroup arg_PersonPG) {
087: if (!(arg_PersonPG instanceof PersonPG))
088: throw new IllegalArgumentException(
089: "setPersonPG requires a PersonPG argument.");
090: myPersonPG = (PersonPG) arg_PersonPG;
091: }
092:
093: // generic search methods
094: public PropertyGroup getLocalPG(Class c, long t) {
095: if (PersonPG.class.equals(c)) {
096: return (myPersonPG == PersonPG.nullPG) ? null : myPersonPG;
097: }
098: return super .getLocalPG(c, t);
099: }
100:
101: public PropertyGroupSchedule getLocalPGSchedule(Class c) {
102: return super .getLocalPGSchedule(c);
103: }
104:
105: public void setLocalPG(Class c, PropertyGroup pg) {
106: if (PersonPG.class.equals(c)) {
107: myPersonPG = (PersonPG) pg;
108: } else
109: super .setLocalPG(c, pg);
110: }
111:
112: public void setLocalPGSchedule(PropertyGroupSchedule pgSchedule) {
113: super .setLocalPGSchedule(pgSchedule);
114: }
115:
116: public PropertyGroup removeLocalPG(Class c) {
117: PropertyGroup removed = null;
118: if (PersonPG.class.equals(c)) {
119: removed = myPersonPG;
120: myPersonPG = null;
121: } else {
122: removed = super .removeLocalPG(c);
123: }
124: return removed;
125: }
126:
127: public PropertyGroup removeLocalPG(PropertyGroup pg) {
128: Class pgc = pg.getPrimaryClass();
129: if (PersonPG.class.equals(pgc)) {
130: PropertyGroup removed = myPersonPG;
131: myPersonPG = null;
132: return removed;
133: } else {
134: }
135: return super .removeLocalPG(pg);
136: }
137:
138: public PropertyGroupSchedule removeLocalPGSchedule(Class c) {
139: {
140: return super .removeLocalPGSchedule(c);
141: }
142: }
143:
144: public PropertyGroup generateDefaultPG(Class c) {
145: if (PersonPG.class.equals(c)) {
146: return (myPersonPG = new PersonPGImpl());
147: } else
148: return super .generateDefaultPG(c);
149: }
150:
151: // dumb serialization methods
152:
153: private void writeObject(ObjectOutputStream out) throws IOException {
154: out.defaultWriteObject();
155: if (myPersonPG instanceof Null_PG
156: || myPersonPG instanceof Future_PG) {
157: out.writeObject(null);
158: } else {
159: out.writeObject(myPersonPG);
160: }
161: }
162:
163: private void readObject(ObjectInputStream in)
164: throws ClassNotFoundException, IOException {
165: in.defaultReadObject();
166: myPersonPG = (PersonPG) in.readObject();
167: }
168:
169: // beaninfo support
170: private static PropertyDescriptor properties[];
171: static {
172: try {
173: properties = new PropertyDescriptor[1];
174: properties[0] = new PropertyDescriptor("PersonPG",
175: Person.class, "getPersonPG", null);
176: } catch (IntrospectionException ie) {
177: }
178: }
179:
180: public PropertyDescriptor[] getPropertyDescriptors() {
181: PropertyDescriptor[] pds = super .getPropertyDescriptors();
182: PropertyDescriptor[] ps = new PropertyDescriptor[pds.length + 1];
183: System.arraycopy(pds, 0, ps, 0, pds.length);
184: System.arraycopy(properties, 0, ps, pds.length, 1);
185: return ps;
186: }
187: }
|