001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: *
015: * See the License for the specific language governing permissions and
016: * limitations under the License.
017: */
018:
019: package java.rmi.activation;
020:
021: import java.io.Serializable;
022: import java.rmi.MarshalledObject;
023: import org.apache.harmony.rmi.internal.nls.Messages;
024:
025: public final class ActivationDesc implements Serializable {
026: private static final long serialVersionUID = 7455834104417690957L;
027:
028: /**
029: * @serial The ActivationGroupID of the object.
030: */
031: private ActivationGroupID groupID;
032:
033: /**
034: * @serial The className of the object.
035: */
036: private String className;
037:
038: /**
039: * @serial The location(<i>codebase/URLs</i>) from which the class of the object can be loaded.
040: */
041: private String location;
042:
043: /**
044: * @serial MarshalledObject that contain object-specific initialization data used during each activation.
045: */
046: private MarshalledObject data;
047:
048: /**
049: * @serial If the object requires restart service, restart should be true. If restart is false, the object is simply activated upon demand.
050: */
051: private boolean restart;
052:
053: public ActivationDesc(String className, String location,
054: MarshalledObject data) throws ActivationException {
055: ActivationGroupID currentGID = ActivationGroup.currentGroupID();
056: if (currentGID == null) {
057: // rmi.0D=The default group for this JVM is inactive.
058: throw new ActivationException(Messages.getString("rmi.0D")); //$NON-NLS-1$
059: }
060: this .groupID = currentGID;
061: this .className = className;
062: this .location = location;
063: this .data = data;
064: this .restart = false;
065: }
066:
067: public ActivationDesc(String className, String location,
068: MarshalledObject data, boolean restart)
069: throws ActivationException {
070: ActivationGroupID currentGID = ActivationGroup.currentGroupID();
071: if (currentGID == null) {
072: // rmi.0D=The default group for this JVM is inactive.
073: throw new ActivationException(Messages.getString("rmi.0D")); //$NON-NLS-1$
074: }
075: this .groupID = currentGID;
076: this .className = className;
077: this .location = location;
078: this .data = data;
079: this .restart = restart;
080: }
081:
082: public ActivationDesc(ActivationGroupID groupID, String className,
083: String location, MarshalledObject data) {
084: if (groupID == null) {
085: // rmi.10=The groupID can't be null.
086: throw new IllegalArgumentException(Messages
087: .getString("rmi.10")); //$NON-NLS-1$
088: }
089: this .groupID = groupID;
090: this .className = className;
091: this .location = location;
092: this .data = data;
093: this .restart = false;
094: }
095:
096: public ActivationDesc(ActivationGroupID groupID, String className,
097: String location, MarshalledObject data, boolean restart) {
098: if (groupID == null) {
099: // rmi.10=The groupID can't be null.
100: throw new IllegalArgumentException(Messages
101: .getString("rmi.10")); //$NON-NLS-1$
102: }
103: this .groupID = groupID;
104: this .className = className;
105: this .location = location;
106: this .data = data;
107: this .restart = restart;
108: }
109:
110: public ActivationGroupID getGroupID() {
111: return groupID;
112: }
113:
114: public MarshalledObject getData() {
115: return data;
116: }
117:
118: public String getLocation() {
119: return location;
120: }
121:
122: public String getClassName() {
123: return className;
124: }
125:
126: public boolean getRestartMode() {
127: return restart;
128: }
129:
130: @Override
131: public boolean equals(Object obj) {
132: if (obj instanceof ActivationDesc) {
133: ActivationDesc objCasted = (ActivationDesc) obj;
134: boolean p0, p1, p2, p3, p4;
135: p0 = (groupID == null) ? objCasted.groupID == null
136: : groupID.equals(objCasted.groupID);
137: p1 = (className == null) ? objCasted.className == null
138: : className.equals(objCasted.className);
139: p2 = (location == null) ? objCasted.location == null
140: : location.equals(objCasted.location);
141: p3 = (data == null) ? objCasted.data == null : data
142: .equals(objCasted.data);
143: p4 = (restart == objCasted.restart);
144: return p0 && p1 && p2 && p3 && p4;
145: }
146: return false;
147: }
148:
149: @Override
150: public int hashCode() {
151: int groupID_Hash = (groupID == null) ? 0 : groupID.hashCode();
152: int className_Hash = (className == null) ? 0 : className
153: .hashCode();
154: int location_Hash = (location == null) ? 0 : location
155: .hashCode();
156: int data_Hash = (data == null) ? 0 : data.hashCode();
157: int restart_Hash = (restart == false) ? 0 : 1;
158: int hashCode = groupID_Hash ^ className_Hash ^ location_Hash
159: ^ data_Hash ^ restart_Hash;
160: return hashCode;
161: }
162: }
|