⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profileid.java

📁 jainslee1.0 源代码
💻 JAVA
字号:
package javax.slee.profile;import java.io.Serializable;import javax.slee.Address;import javax.slee.AddressPlan;/** * The <code>ProfileID</code> class defines an indentifer that can be used to * reference profiles.  For example a profile specification's CMP interface * may contain attributes of the type <code>ProfileID</code>, allowing profile's of * that type to reference other profiles. */public class ProfileID implements Serializable {    /**     * Create a <code>ProfileID</code> object using a profile table name and profile name.     * @param profileTableName the name of the profile table.     * @param profileName the name of the profile within the profile table.     * @throws NullPointerException if either argument is <code>null</code>.     * @throws IllegalArgumentException if <code>profileTableName</code> includes the '<tt>/</tt>'     *        character.  This character is not permitted in profile table names.     */    public ProfileID(String profileTableName, String profileName) throws NullPointerException, IllegalArgumentException {        setProfileID(profileTableName, profileName);    }    /**     * Create a <code>ProfileID</code> object from an address.  The address must have the     * address plan of {@link javax.slee.AddressPlan#SLEE_PROFILE}.     * @param address the address of the profile.     * @throws NullPointerException if <code>address</code> is <code>null</code>.     * @throws IllegalArgumentException if the address plan of the address is not     *        <code>AddressPlan.SLEE_PROFILE</code>, or the address string does not     *        contain a profile identifier with the correct encoding:     *        <tt>&lt;profile-table-name&lt;/&lt;profile-name&gt;</tt>.     */    public ProfileID(Address address) throws NullPointerException, IllegalArgumentException {        if (address == null) throw new NullPointerException("address is null");        if (!address.getAddressPlan().equals(AddressPlan.SLEE_PROFILE))            throw new IllegalArgumentException("address must have the SLEE_PROFILE address plan");        String addressString = address.getAddressString();        int div = addressString.indexOf('/');        if (div < 0) throw new IllegalArgumentException("address string does not contain a '/' seperator character");        this.profileTableName = addressString.substring(0, div);        this.profileName = addressString.substring(div + 1);        this.address = address;    }    /**     * Get the name of the profile table referenced by this identifier.     * @return the profile table name.     */    public final String getProfileTableName() {        return profileTableName;    }    /**     * Get the name of the profile referenced by this identifier.     * @return the profile name.     */    public final String getProfileName() {        return profileName;    }    /**     * Set the profile table and profile referenced by this profile identifier to new     * values.     * @param profileTableName the name of the profile table.     * @param profileName the name of the profile within the profile table.     * @throws NullPointerException if either argument is <code>null</code>.     * @throws IllegalArgumentException if <code>profileTableName</code> includes the     *        '<tt>/</tt>' character.  This character is not permitted in profile table names.     */    public final void setProfileID(String profileTableName, String profileName) throws NullPointerException, IllegalArgumentException {        if (profileTableName == null) throw new NullPointerException("profileTableName is null");        if (profileName == null) throw new NullPointerException("profileName is null");        if (profileTableName.indexOf('/') >= 0) throw new IllegalArgumentException("profileTableName cannot contain the '/' character");        this.profileTableName = profileTableName;        this.profileName = profileName;        this.address = null;    }    /**     * Get an <code>Address</code> object containing the address form of the profile     * identified by this profile identifier.     * @return an <code>Address</code> object containing the address form of the profile     *        identified by this profile identifier.     */    public Address toAddress() {        if (address == null) {            address = new Address(AddressPlan.SLEE_PROFILE, profileTableName + '/' + profileName);        }        return address;    }    /**     * Compare this profile identifier for equality with another object.     * @param obj the object to compare this with.     * @return <code>true</code> if <code>obj</code> is an instance of this class and the     *        profile table name and profile name are equal.     */    public boolean equals(Object obj) {        if (obj == this) return true;        if (!(obj instanceof ProfileID)) return false;        ProfileID that = (ProfileID)obj;        return this.profileTableName.equals(that.profileTableName)            && this.profileName.equals(that.profileName);    }    /**     * Get a hash code value for this profile identifer.  The hash code is the logical     * OR of the hashcodes of the profile table name and profile name.     * @return a hash code for this profile identifier.     */    public int hashCode() {        return profileTableName.hashCode() | profileName.hashCode();    }    /**     * Get a string representation for this profile identifier.     * @return a string representation for this profile identifer.     */    public String toString() {        StringBuffer buf = new StringBuffer();        buf.append("ProfileID[table=")            .append(profileTableName)            .append(",profile=")            .append(profileName)            .append("]");        return buf.toString();    }    private String profileTableName;    private String profileName;    private transient Address address;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -