gov.nih.nci.security.authorization.domainobjects.Group.java Source code

Java tutorial

Introduction

Here is the source code for gov.nih.nci.security.authorization.domainobjects.Group.java

Source

package gov.nih.nci.security.authorization.domainobjects;

/**
 *
 *<!-- LICENSE_TEXT_START -->
 *
 *The NCICB Common Security Module (CSM) Software License, Version 3.0 Copyright
 *2004-2005 Ekagra Software Technologies Limited ('Ekagra')
 *
 *Copyright Notice.  The software subject to this notice and license includes both
 *human readable source code form and machine readable, binary, object code form
 *(the 'CSM Software').  The CSM Software was developed in conjunction with the
 *National Cancer Institute ('NCI') by NCI employees and employees of Ekagra.  To
 *the extent government employees are authors, any rights in such works shall be
 *subject to Title 17 of the United States Code, section 105.    
 *
 *This CSM Software License (the 'License') is between NCI and You.  'You (or
 *'Your') shall mean a person or an entity, and all other entities that control,
 *are controlled by, or are under common control with the entity.  'Control' for
 *purposes of this definition means (i) the direct or indirect power to cause the
 *direction or management of such entity, whether by contract or otherwise, or
 *(ii) ownership of fifty percent (50%) or more of the outstanding shares, or
 *(iii) beneficial ownership of such entity.  
 *
 *This License is granted provided that You agree to the conditions described
 *below.  NCI grants You a non-exclusive, worldwide, perpetual, fully-paid-up,
 *no-charge, irrevocable, transferable and royalty-free right and license in its
 *rights in the CSM Software to (i) use, install, access, operate, execute, copy,
 *modify, translate, market, publicly display, publicly perform, and prepare
 *derivative works of the CSM Software; (ii) distribute and have distributed to
 *and by third parties the CSM Software and any modifications and derivative works
 *thereof; and (iii) sublicense the foregoing rights set out in (i) and (ii) to
 *third parties, including the right to license such rights to further third
 *parties.  For sake of clarity, and not by way of limitation, NCI shall have no
 *right of accounting or right of payment from You or Your sublicensees for the
 *rights granted under this License.  This License is granted at no charge to You.
 *
 *1.   Your redistributions of the source code for the Software must retain the
 *above copyright notice, this list of conditions and the disclaimer and
 *limitation of liability of Article 6 below.  Your redistributions in object code
 *form must reproduce the above copyright notice, this list of conditions and the
 *disclaimer of Article 6 in the documentation and/or other materials provided
 *with the distribution, if any.
 *2.   Your end-user documentation included with the redistribution, if any, must
 *include the following acknowledgment: 'This product includes software developed
 *by Ekagra and the National Cancer Institute.'  If You do not include such
 *end-user documentation, You shall include this acknowledgment in the Software
 *itself, wherever such third-party acknowledgments normally appear.
 *
 *3.   You may not use the names 'The National Cancer Institute', 'NCI' 'Ekagra
 *Software Technologies Limited' and 'Ekagra' to endorse or promote products
 *derived from this Software.  This License does not authorize You to use any
 *trademarks, service marks, trade names, logos or product names of either NCI or
 *Ekagra, except as required to comply with the terms of this License.
 *
 *4.   For sake of clarity, and not by way of limitation, You may incorporate this
 *Software into Your proprietary programs and into any third party proprietary
 *programs.  However, if You incorporate the Software into third party proprietary
 *programs, You agree that You are solely responsible for obtaining any permission
 *from such third parties required to incorporate the Software into such third
 *party proprietary programs and for informing Your sublicensees, including
 *without limitation Your end-users, of their obligation to secure any required
 *permissions from such third parties before incorporating the Software into such
 *third party proprietary software programs.  In the event that You fail to obtain
 *such permissions, You agree to indemnify NCI for any claims against NCI by such
 *third parties, except to the extent prohibited by law, resulting from Your
 *failure to obtain such permissions.
 *
 *5.   For sake of clarity, and not by way of limitation, You may add Your own
 *copyright statement to Your modifications and to the derivative works, and You
 *may provide additional or different license terms and conditions in Your
 *sublicenses of modifications of the Software, or any derivative works of the
 *Software as a whole, provided Your use, reproduction, and distribution of the
 *Work otherwise complies with the conditions stated in this License.
 *
 *6.   THIS SOFTWARE IS PROVIDED 'AS IS,' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
 *(INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 *NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE) ARE DISCLAIMED.  IN NO
 *EVENT SHALL THE NATIONAL CANCER INSTITUTE, EKAGRA, OR THEIR AFFILIATES BE LIABLE
 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 *DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 *SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 *CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
 *TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 *THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *<!-- LICENSE_TEXT_END -->
 *
 */

import java.io.Serializable;
import java.security.Principal;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

/**
 * A Group is a logical collection of users. A group belongs to an application.
 * @version 1.0
 * created 03-Dec-2004 1:17:49 AM
 */
public class Group implements Principal, Comparable, Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 2570109077218622029L;
    /**
     * This is the collection of ProtectionGroupRoleContext objects indicating the
     * access of this group on the protection groups with respect to roles.
     */
    private java.util.Set protectionGroupRoleContexts;
    /**
     * A collection of User objects. Indicates which users belongs to this group.
     */
    private java.util.Set users;
    /**
     * It is the unique id by which it is identified within an application.
     */
    private Long groupId;
    /**
     * It is the logical name for the group.
     */
    private String groupName;
    /**
     * This is the brief description of the group.
     */
    private String groupDesc;
    /**
     * The date when the group information was updated
     */
    private java.util.Date updateDate;
    /**
     * The application to which the following group belongs 
     */
    private Application application;
    public ProtectionGroupRoleContext m_ProtectionGroupRoleContext;

    public Group() {

    }

    public void finalize() throws Throwable {

    }

    /**
     * The application to which the following group belongs 
     */
    public Application getApplication() {
        return application;
    }

    /**
     * This is the brief description of the group.
     */
    public String getGroupDesc() {
        return groupDesc;
    }

    /**
     * It is the unique id by which it is identified within an application.
     */
    public Long getGroupId() {
        return groupId;
    }

    /**
     * It is the logical name for the group.
     */
    public String getGroupName() {
        return groupName;
    }

    /**
     * This is the collection of ProtectionGroupRoleContext objects indicating the
     * access of this group on the protection groups with respect to roles.
     */
    public java.util.Set getProtectionGroupRoleContexts() {
        return protectionGroupRoleContexts;
    }

    /**
     * The date when the group information was updated
     */
    public java.util.Date getUpdateDate() {
        return updateDate;
    }

    /**
     * A collection of User objects. Indicates which users belongs to this group.
     */
    public java.util.Set getUsers() {
        return users;
    }

    /**
     * The application to which the following group belongs
     * @param newVal
     * 
     */
    public void setApplication(Application newVal) {
        application = newVal;
    }

    /**
     * This is the brief description of the group.
     * @param newVal
     * 
     */
    public void setGroupDesc(String newVal) {
        groupDesc = newVal;
    }

    /**
     * It is the unique id by which it is identified within an application.
     * @param newVal
     * 
     */
    public void setGroupId(Long newVal) {
        groupId = newVal;
    }

    /**
     * It is the logical name for the group.
     * @param newVal
     * 
     */
    public void setGroupName(String newVal) {
        groupName = newVal;
    }

    /**
     * This is the collection of ProtectionGroupRoleContext objects indicating the
     * access of this group on the protection groups with respect to roles.
     * @param newVal
     * 
     */
    public void setProtectionGroupRoleContexts(java.util.Set newVal) {
        protectionGroupRoleContexts = newVal;
    }

    /**
     * The date when the group information was updated
     * @param newVal
     * 
     */
    public void setUpdateDate(java.util.Date newVal) {
        updateDate = newVal;
    }

    /**
     * A collection of User objects. Indicates which users belongs to this group.
     * @param newVal
     * 
     */
    public void setUsers(java.util.Set newVal) {
        users = newVal;
    }

    public boolean equals(Object other) {
        if (this == other)
            return true;
        if ((other == null) || (other.getClass() != this.getClass()))
            return false;
        Group castOther = (Group) other;
        return new EqualsBuilder().append(this.getGroupId(), castOther.getGroupId()).isEquals();
    }

    public int hashCode() {
        return new HashCodeBuilder().append(this.groupId).append(this.groupName).toHashCode();
    }

    public String toString() {
        return new ToStringBuilder(this).append("groupId", getGroupId()).append("groupName", getGroupName())
                .append("groupDescription", getGroupDesc()).append("updateDate", getUpdateDate().toString())
                .toString();
    }

    public String getName() {
        return "";
    }

    public int compareTo(Object object) {
        if (object instanceof Group) {
            Group a = (Group) object;
            return this.getGroupName().compareToIgnoreCase(a.getGroupName());
        }
        return 0;
    }
}