All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ow2.bonita.identity.impl.MembershipImpl Maven / Gradle / Ivy

/**
 * Copyright (C) 2007  Bull S. A. S.
 * Bull, Rue Jean Jaures, B.P.68, 78340, Les Clayes-sous-Bois
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA  02110-1301, USA.
 **/
package org.ow2.bonita.identity.impl;

import java.security.Permission;
import java.util.Properties;
import java.util.Set;
import java.util.prefs.Preferences;

import org.ow2.bonita.identity.GroupOp;
import org.ow2.bonita.identity.Membership;
import org.ow2.bonita.identity.UserOp;
import org.ow2.bonita.util.Misc;

/**
 * @author "Pierre Vigneras"
 * @date Nov 23, 2007
 */
public class MembershipImpl implements Membership {

  /**
   * 
   */
  private static final long serialVersionUID = 3068431109845397895L;
  private UserOp userOp;
  private String role;
  private Properties properties;
  private Preferences preferences;
  private Set permissions;
  private GroupOp groupOp;

  public MembershipImpl(final UserOp userOp, GroupOp groupOp) {
    if (userOp == null || groupOp == null) {
      throw new IllegalArgumentException("Null UserOp or GroupOp!");
    }
    this.userOp = userOp;
    this.groupOp = groupOp;
  }

  /*
   * (non-Javadoc)
   * 
   * @see org.ow2.bonita.identity.Membership#getGroup()
   */
  public GroupOp getGroup() {
    return groupOp;
  }

  /*
   * (non-Javadoc)
   * 
   * @see org.ow2.bonita.identity.Membership#getPermission()
   */
  public Set getPermission() {
    return permissions;
  }

  /*
   * (non-Javadoc)
   * 
   * @see org.ow2.bonita.identity.Membership#getPreferences()
   */
  public Preferences getPreferences() {
    return preferences;
  }

  /*
   * (non-Javadoc)
   * 
   * @see org.ow2.bonita.identity.Membership#getProperties()
   */
  public Properties getProperties() {
    return properties;
  }

  /*
   * (non-Javadoc)
   * 
   * @see org.ow2.bonita.identity.Membership#getRole()
   */
  public String getRole() {
    return role;
  }

  /*
   * (non-Javadoc)
   * 
   * @see org.ow2.bonita.identity.Membership#getUser()
   */
  public UserOp getUser() {
    return userOp;
  }

  public void setGroup(final GroupOp newGroup) {
    Misc.checkArgsNotNull(newGroup);
    this.groupOp = newGroup;
  }

  public void setPermissions(final Set newPermissions) {
    Misc.checkArgsNotNull(newPermissions);
    this.permissions = newPermissions;
  }

  public void setProperties(final Properties newProperties) {
    Misc.checkArgsNotNull(newProperties);
    this.properties = newProperties;
  }

  public void setRole(final String newRole) {
    Misc.checkArgsNotNull(newRole);
    this.role = newRole;
  }

  public void setUser(final UserOp newUser) {
    Misc.checkArgsNotNull(newUser);
    this.userOp = newUser;
  }

  @Override
  public boolean equals(final Object o) {
    if (!(o instanceof MembershipImpl)) {
      return false;
    }
    final MembershipImpl m = (MembershipImpl) o;
    final UserOp muser = m.getUser();
    final GroupOp mgroup = m.getGroup();
    final boolean u = (userOp == null) ? (muser == null) : userOp.equals(muser);
    final boolean g = (groupOp == null) ? (mgroup == null) : groupOp
        .equals(mgroup);
    return u && g;
  }

  @Override
  public int hashCode() {
    final int u = (userOp == null) ? 0 : userOp.hashCode();
    final int g = (groupOp == null) ? 0 : groupOp.hashCode();
    return u & g;
  }

  public String toString() {
    return this.getClass().getName() + "{" + userOp + ", " + groupOp + "}";
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy