diff options
Diffstat (limited to 'libjava/classpath/java/rmi/activation/ActivationDesc.java')
-rw-r--r-- | libjava/classpath/java/rmi/activation/ActivationDesc.java | 279 |
1 files changed, 210 insertions, 69 deletions
diff --git a/libjava/classpath/java/rmi/activation/ActivationDesc.java b/libjava/classpath/java/rmi/activation/ActivationDesc.java index 65894f8..b861656 100644 --- a/libjava/classpath/java/rmi/activation/ActivationDesc.java +++ b/libjava/classpath/java/rmi/activation/ActivationDesc.java @@ -1,6 +1,6 @@ -/* ActivationDecc.java -- +/* ActivationDesc.java -- record with info to activate an object Copyright (c) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. - + This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify @@ -40,74 +40,215 @@ package java.rmi.activation; import java.io.Serializable; import java.rmi.MarshalledObject; -public final class ActivationDesc implements Serializable +/** + * Contains the information, necessary to activate the object. This information + * includes: + * <ul> + * <li>the object class name</li> + * <li>the object group identifier</li> + * <li>the code location (codebase URL) that can be used to load the class + * remotely</li> + * <li>the object restart mode</li> + * <li>the object specific intialization information</li> + * </ul> + * + * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) + */ +public final class ActivationDesc + implements Serializable { + /** + * Use SVUID for interoperability. + */ static final long serialVersionUID = 7455834104417690957L; -private ActivationGroupID groupid; -private String classname; -private String location; -private MarshalledObject data; -private boolean restart; - -public ActivationDesc(String className, String location, MarshalledObject data) throws ActivationException { - this(ActivationGroup.currentGroupID(), className, location, data, false); -} - -public ActivationDesc(String className, String location, MarshalledObject data, boolean restart) throws ActivationException { - this(ActivationGroup.currentGroupID(), className, location, data, restart); -} - -public ActivationDesc(ActivationGroupID groupID, String className, String location, MarshalledObject data) { - this(groupID, className, location, data, false); -} - -public ActivationDesc(ActivationGroupID groupID, String className, String location, MarshalledObject data, boolean restart) { - this.groupid = groupID; - this.classname = className; - this.location = location; - this.data = data; - this.restart = restart; -} - -public ActivationGroupID getGroupID() { - return (groupid); -} - -public String getClassName() { - return (classname); -} - -public String getLocation() { - return (location); -} - -public MarshalledObject getData() { - return (data); -} - -public boolean getRestartMode() { - return (restart); -} - -public boolean equals(Object obj) { - if (!(obj instanceof ActivationDesc)) { - return (false); - } - ActivationDesc that = (ActivationDesc)obj; - - if (this.groupid.equals(that.groupid) && - this.classname.equals(that.classname) && - this.location.equals(that.location) && - this.data.equals(that.data) && - this.restart == that.restart) { - return (true); - } - return (false); -} - -public int hashCode() { - return (groupid.hashCode() ^ classname.hashCode() ^ location.hashCode() ^ data.hashCode()); -} - + /** + * The group id. + */ + private ActivationGroupID groupid; + + /** + * The class name. + */ + private String classname; + + /** + * The code location URL. + */ + private String location; + + /** + * The object specific intitalization data. + */ + private MarshalledObject data; + + /** + * The start mode. + */ + private boolean restart; + + /** + * Create the new activation description, assuming the object group is the + * {@link ActivationGroup#currentGroupID()}. + * + * @param className the object fully qualified class name + * @param location the code base URL + * @param data the object initialization data, contained in a marshalled form + */ + public ActivationDesc(String className, String location, MarshalledObject data) + throws ActivationException + { + this(ActivationGroup.currentGroupID(), className, location, data, false); + } + + /** + * Create the new activation description, assuming the object group is the + * {@link ActivationGroup#currentGroupID()}. + * + * @param className the object fully qualified class name + * @param location the code base URL + * @param data the object initialization data, contained in a marshalled form + * @param restart specifies reactivation mode after crash. If true, the object + * is activated when activator is restarted or the activation group + * is restarted. If false, the object is only activated on demand. + * This flag does has no effect during the normal operation (the + * object is normally activated on demand). + */ + public ActivationDesc(String className, String location, + MarshalledObject data, boolean restart) + throws ActivationException + { + this(ActivationGroup.currentGroupID(), className, location, data, restart); + } + + /** + * Create the new activation description. Under crash, the object will only + * be reactivated on demand. + * + * @param groupID the object group id. + * @param className the object fully qualified class name + * @param location the code base URL + * @param data the object initialization data, contained in a marshalled form + */ + public ActivationDesc(ActivationGroupID groupID, String className, + String location, MarshalledObject data) + { + this(groupID, className, location, data, false); + } + + /** + * Create the new activation description, providing full information. + * + * @param groupID the object group id. + * @param className the object fully qualified class name + * @param location the code base URL + * @param data the object initialization data, contained in a marshalled form + * @param restart specifies reactivation mode after crash. If true, the object + * is activated when activator is restarted or the activation group + * is restarted. If false, the object is only activated on demand. + * This flag does has no effect during the normal operation (the + * object is normally activated on demand). + */ + public ActivationDesc(ActivationGroupID groupID, String className, + String location, MarshalledObject data, boolean restart) + { + this.groupid = groupID; + this.classname = className; + this.location = location; + this.data = data; + this.restart = restart; + } + + public ActivationGroupID getGroupID() + { + return groupid; + } + + /** + * Get the class name of the object being activated + * + * @return the fully qualified class name of the object being activated + */ + public String getClassName() + { + return classname; + } + + /** + * Get the code location URL ("codebase") of the object being activated. + * + * @return the codebase of the object being activated. + */ + public String getLocation() + { + return location; + } + + public MarshalledObject getData() + { + return data; + } + + /** + * Get the object reactivation strategy after crash. + * + * @return true ir the object is activated when activator is restarted or the + * activation group is restarted. False if the object is only + * activated on demand. This flag does has no effect during the normal + * operation (the object is normally activated on demand). + */ + public boolean getRestartMode() + { + return restart; + } + + /** + * Compare this object with another activation description for equality. + * + * @return true if all fields have the equal values, false otherwise. + */ + public boolean equals(Object obj) + { + if (obj instanceof ActivationDesc) + { + ActivationDesc that = (ActivationDesc) obj; + return eq(groupid, that.groupid) && + eq(classname, that.classname) && + eq(location, that.location) && + eq(data, that.data) + && restart == that.restart; + } + else + return false; + } + + /** + * Get the hash code of this object (overridden to make the returned value + * consistent with .equals(..). + */ + public int hashCode() + { + return hash(groupid) ^ hash(classname) ^ + hash(location) ^ hash(data); + } + + /** + * Get the hashcode of x or 0 if x == null. + */ + static final int hash(Object x) + { + return x == null ? 0 : x.hashCode(); + } + + /** + * Compare by .equals if both a and b are not null, compare directly if at + * least one of them is null. + */ + static final boolean eq(Object a, Object b) + { + if (a == null || b == null) + return a == b; + else + return a.equals(b); + } } |