Package com.zycus.pm.impl

Source Code of com.zycus.pm.impl.PermissionRightsImpl

package com.zycus.pm.impl;

import static com.zycus.pm.utility.NullValidator.validateNullEntries;
import java.util.Map;

import com.zycus.pm.api.IPermissionRightsAPI;
import com.zycus.pm.api.bo.BaseRight;
import com.zycus.pm.api.bo.RightsGroup;
import com.zycus.pm.db.PermissionManagementDBHandler;
import com.zycus.pm.excpection.DuplicateNameException;
import com.zycus.pm.excpection.DuplicateNameException.DuplicateNameType;

public class PermissionRightsImpl implements IPermissionRightsAPI {
  private PermissionManagementDBHandler  dbHandler  = new PermissionManagementDBHandler();

  public BaseRight addRight(String groupName, String rightName) throws DuplicateNameException {
    return addRight(groupName, rightName, 0);
  }

  public BaseRight addRight(String groupName, String rightName, int priority) throws DuplicateNameException {
    return addRight(groupName, rightName, priority, false);
  }

  public BaseRight addRight(String groupName, String rightName, int priority, boolean defaultAllowed)
      throws DuplicateNameException {
    validateNullEntries(groupName, rightName);
    RightsGroup group = dbHandler.getRightGroup(groupName);
    if (group == null) {
      group = new RightsGroup(groupName);
    }
    return addRight(group, rightName, priority, defaultAllowed);
  }

  public BaseRight addRight(RightsGroup group, String rightName, int priority, boolean defaultAllowed)
      throws DuplicateNameException {
    validateNullEntries(group, rightName);
    BaseRight baseRight = null;

    for (BaseRight right : group.getBaseRights()) {
      if (right.getRightDescription().equals(rightName)) {
        baseRight = right;
        break;
      }
    }

    if (baseRight == null) {
      baseRight = new BaseRight(rightName);
      baseRight.setGroup(group);
      baseRight.setPriority(priority);
      baseRight.setDefaultIsAllowed(defaultAllowed);

      dbHandler.upsertBaseRight(baseRight);
    }

    return baseRight;
  }

  public RightsGroup addRights(String groupName, String... rightNames) throws DuplicateNameException {
    RightsGroup group = dbHandler.getRightGroup(groupName);
    if (group == null) {
      group = new RightsGroup(groupName);
    }
    addRights(group, rightNames);
    return group;
  }

  public RightsGroup addRights(String groupName, Map<String, Integer> rights) throws DuplicateNameException {
    RightsGroup group = dbHandler.getRightGroup(groupName);
    if (group == null) {
      group = new RightsGroup(groupName);
    }
    addRights(group, rights);
    return group;
  }

  public void addRights(RightsGroup group, String... rightNames) throws DuplicateNameException {
    for (String rightName : rightNames) {
      BaseRight right = group.getBaseRight(rightName);
      if (right == null) {
        right = new BaseRight(rightName);
        right.setGroup(group);
        group.addBaseRights(right);
      }
    }
    dbHandler.upsertRightsGroup(group);
  }

  public void addRights(RightsGroup group, Map<String, Integer> rights) throws DuplicateNameException {
    for (String rightName : rights.keySet()) {
      BaseRight right = group.getBaseRight(rightName);
      if (right == null) {
        right = new BaseRight(rightName);
        right.setGroup(group);
        group.addBaseRights(right);
      }
      right.setPriority(rights.get(rightName));
    }
    dbHandler.upsertRightsGroup(group);
  }

  public void deleteBaseRight(long baseRightID) {
    deleteBaseRight(dbHandler.getBaseRight(baseRightID));
  }

  public void deleteBaseRight(String baseRightName, RightsGroup group) {
    deleteBaseRight(group.getBaseRight(baseRightName));
  }

  public void deleteBaseRight(String baseRightName, String groupName) {
    deleteBaseRight(dbHandler.getRightGroup(groupName).getBaseRight(baseRightName));
  }

  public void deleteBaseRight(BaseRight right) {
    validateNullEntries(right);
    dbHandler.deleteBaseRight(right);
  }

  public void deleteRightsGroup(long groupID) {
    deleteRightsGroup(getRightsGroup(groupID));

  }

  public void deleteRightsGroup(String groupName) {
    validateNullEntries(groupName);
    deleteRightsGroup(getRightsGroup(groupName));
  }

  public void deleteRightsGroup(RightsGroup group) {
    validateNullEntries(group);
    dbHandler.deleteRightsGroup(group);
  }

  public BaseRight getBaseRight(long baseRightID) {
    return dbHandler.getBaseRight(baseRightID);
  }

  public BaseRight getBaseRight(String groupName, String baseRightName) {
    RightsGroup rightsGroup = getRightsGroup(groupName);
    if (rightsGroup != null)
      return rightsGroup.getBaseRight(baseRightName);
    else
      return null;
  }

  public BaseRight getBaseRight(long groupID, String baseRightName) {
    return dbHandler.getRightGroup(groupID).getBaseRight(baseRightName);
  }

  public RightsGroup getRightsGroup(long groupID) {
    return dbHandler.getRightGroup(groupID);
  }

  public RightsGroup getRightsGroup(String groupName) {
    validateNullEntries(groupName);
    return dbHandler.getRightGroup(groupName);
  }

  public void updateBaseRight(BaseRight baseRight) throws DuplicateNameException {
    validateNullEntries(baseRight);
    dbHandler.upsertBaseRight(baseRight);
  }

  public BaseRight updateBaseRightDefaultAllowed(long baseRightID, boolean defaultIsAllowed) {
    BaseRight baseRight = dbHandler.getBaseRight(baseRightID);
    baseRight.setDefaultIsAllowed(defaultIsAllowed);
    return baseRight;
  }

  public BaseRight updateBaseRightName(long baseRightID, String baseRightName) throws DuplicateNameException {
    BaseRight baseRight = dbHandler.getBaseRight(baseRightID);
    if (baseRight.getRightDescription().equals(baseRightName)) {
      return baseRight;
    }
    if (baseRight.getGroup().getBaseRight(baseRightName) != null) {
      throw new DuplicateNameException("Right name can't be duplicate", DuplicateNameType.DuplicateRightName);
    }
    baseRight.setRightDescription(baseRightName);
    dbHandler.upsertBaseRight(baseRight);
    return baseRight;
  }

  public BaseRight updateBaseRightNameDefaultAllowed(long baseRightID, String baseRightName, boolean defaultIsAllowed)
      throws DuplicateNameException {
    BaseRight baseRight = dbHandler.getBaseRight(baseRightID);
    if (baseRight.getRightDescription().equals(baseRightName)) {
      return baseRight;
    }
    if (baseRight.getGroup().getBaseRight(baseRightName) != null) {
      throw new DuplicateNameException("Right name can't be duplicate", DuplicateNameType.DuplicateRightName);
    }
    baseRight.setRightDescription(baseRightName);
    baseRight.setDefaultIsAllowed(defaultIsAllowed);
    dbHandler.upsertBaseRight(baseRight);
    return baseRight;
  }

  public BaseRight updateBaseRightNamePriority(long baseRightID, String baseRightName, int priority)
      throws DuplicateNameException {
    BaseRight baseRight = dbHandler.getBaseRight(baseRightID);
    if (baseRight.getRightDescription().equals(baseRightName)) {
      return baseRight;
    }
    if (baseRight.getGroup().getBaseRight(baseRightName) != null) {
      throw new DuplicateNameException("Right name can't be duplicate", DuplicateNameType.DuplicateRightName);
    }
    baseRight.setRightDescription(baseRightName);
    baseRight.setPriority(priority);
    dbHandler.upsertBaseRight(baseRight);
    return baseRight;
  }

  public BaseRight updateBaseRightNamePriorityDefaultAllowed(long baseRightID, String baseRightName, int priority,
      boolean defaultIsAllowed) throws DuplicateNameException {
    BaseRight baseRight = dbHandler.getBaseRight(baseRightID);
    if (baseRight.getRightDescription().equals(baseRightName)) {
      return baseRight;
    }
    if (baseRight.getGroup().getBaseRight(baseRightName) != null) {
      throw new DuplicateNameException("Right name can't be duplicate", DuplicateNameType.DuplicateRightName);
    }
    baseRight.setRightDescription(baseRightName);
    baseRight.setPriority(priority);
    baseRight.setDefaultIsAllowed(defaultIsAllowed);
    dbHandler.upsertBaseRight(baseRight);
    return baseRight;
  }

  public BaseRight updateBaseRightPriority(long baseRightID, int priority) {
    BaseRight baseRight = dbHandler.getBaseRight(baseRightID);
    baseRight.setPriority(priority);
    return baseRight;
  }

  public BaseRight updateBaseRightPriorityDefaultAllowed(long baseRightID, int priority, boolean defaultIsAllowed)
      throws DuplicateNameException {
    BaseRight baseRight = dbHandler.getBaseRight(baseRightID);
    baseRight.setPriority(priority);
    baseRight.setDefaultIsAllowed(defaultIsAllowed);
    return baseRight;
  }

  public void updateRightGroup(RightsGroup group) throws DuplicateNameException {
    dbHandler.upsertRightsGroup(group);
  }

  public RightsGroup updateRightsGroupName(long groupID, String a_groupName) throws DuplicateNameException {
    RightsGroup group = dbHandler.getRightGroup(groupID);
    RightsGroup groupName = dbHandler.getRightGroup(a_groupName);
    if (groupName != null && groupName.equals(group) == false) {
      throw new DuplicateNameException("Group name can't be duplicate", DuplicateNameType.DuplicateRightName);
    }
    group.setGroupName(a_groupName);
    dbHandler.upsertRightsGroup(group);
    return group;
  }
}
TOP

Related Classes of com.zycus.pm.impl.PermissionRightsImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.