/*
* Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.wso2.carbon.identity.entitlement.ui;
import org.wso2.balana.utils.policy.dto.BasicRuleDTO;
import org.wso2.balana.utils.policy.dto.BasicTargetDTO;
import org.wso2.carbon.identity.entitlement.stub.dto.EntitlementFinderDataHolder;
import org.wso2.carbon.identity.entitlement.stub.dto.EntitlementTreeNodeDTO;
import org.wso2.carbon.identity.entitlement.ui.dto.ExtendAttributeDTO;
import org.wso2.carbon.identity.entitlement.ui.dto.ObligationDTO;
import org.wso2.carbon.identity.entitlement.ui.dto.PolicyRefIdDTO;
import org.wso2.carbon.identity.entitlement.ui.dto.PolicySetDTO;
import org.wso2.carbon.identity.entitlement.ui.dto.RuleDTO;
import org.wso2.carbon.identity.entitlement.ui.dto.SimplePolicyEditorDTO;
import org.wso2.carbon.identity.entitlement.ui.dto.TargetDTO;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* This Bean is used to keep the user data temporary while travelling through
* the UI wizard
*/
public class EntitlementPolicyBean {
public Map<String, String> functionIdMap = new HashMap<String, String>();
public Map<String, String> functionIdElementValueMap = new HashMap<String, String>();
private String policyName;
private String algorithmName;
private String policyDescription;
private String userInputData;
private List<String> subscribersList = new ArrayList<String>();
private SimplePolicyEditorDTO SimplePolicyEditorDTO;
private Map<String, String> categoryMap = new HashMap<String, String>();
private Map<String, String> targetFunctionMap = new HashMap<String, String>();
private Map<String, String> attributeIdMap = new HashMap<String, String>();
private Map<String, String> ruleFunctionMap = new HashMap<String, String>();
private boolean editPolicy;
private String[] policyCombiningAlgorithms = new String[0];
private Map<String, EntitlementFinderDataHolder> entitlementFinders =
new HashMap<String, EntitlementFinderDataHolder>();
private Map<Integer, String> selectedEntitlementData = new HashMap<Integer, String>();
private Map<Integer, EntitlementTreeNodeDTO> entitlementLevelData =
new HashMap<Integer, EntitlementTreeNodeDTO>();
private BasicTargetDTO basicTargetDTO = null;
private TargetDTO targetDTO = null;
private PolicySetDTO policySetDTO = null;
private List<BasicRuleDTO> basicRuleDTOs = new ArrayList<BasicRuleDTO>();
private List<RuleDTO> ruleDTOs = new ArrayList<RuleDTO>();
private List<ExtendAttributeDTO> extendAttributeDTOs = new ArrayList<ExtendAttributeDTO>();
private List<ObligationDTO> obligationDTOs = new ArrayList<ObligationDTO>();
private String ruleElementOrder;
private String policyReferenceOrder;
private Set<String> preFunctions = new HashSet<String>();
private List<PolicyRefIdDTO> policyRefIds = new ArrayList<PolicyRefIdDTO>();
/**
* This method is temporally used to clear the entitlement bean. Need to
* update with a method proper implementation TODO
*/
public void cleanEntitlementPolicyBean() {
policyName = null;
algorithmName = null;
policyDescription = null;
userInputData = null;
editPolicy = false;
policySetDTO = null;
functionIdMap.clear();
functionIdElementValueMap.clear();
basicRuleDTOs.clear();
removeBasicTargetElementDTO();
targetDTO = null;
ruleDTOs.clear();
extendAttributeDTOs.clear();
obligationDTOs.clear();
SimplePolicyEditorDTO = null;
basicTargetDTO = null;
policyReferenceOrder = null;
policyRefIds.clear();
}
public String getPolicyName() {
return policyName;
}
public void setPolicyName(String policyName) {
this.policyName = policyName;
}
public String getAlgorithmName() {
return algorithmName;
}
public void setAlgorithmName(String algorithmName) {
this.algorithmName = algorithmName;
}
public String getPolicyDescription() {
return policyDescription;
}
public void setPolicyDescription(String policyDescription) {
this.policyDescription = policyDescription;
}
public String getUserInputData() {
return userInputData;
}
public void setUserInputData(String userInputData) {
this.userInputData = userInputData;
}
public List<BasicRuleDTO> getBasicRuleDTOs() {
return basicRuleDTOs;
}
public void setBasicRuleDTOs(List<BasicRuleDTO> basicRuleDTOs) {
this.basicRuleDTOs = basicRuleDTOs;
}
public void setBasicRuleElementDTOs(BasicRuleDTO basicRuleDTO) {
if (basicRuleDTOs.size() > 0) {
Iterator iterator = basicRuleDTOs.listIterator();
while (iterator.hasNext()) {
BasicRuleDTO elementDTO = (BasicRuleDTO) iterator
.next();
if (elementDTO.getRuleId().equals(
basicRuleDTO.getRuleId())) {
if (elementDTO.isCompletedRule()) {
basicRuleDTO.setCompletedRule(true);
}
iterator.remove();
}
}
}
this.basicRuleDTOs.add(basicRuleDTO);
}
public BasicRuleDTO getBasicRuleElement(String ruleId) {
if (basicRuleDTOs.size() > 0) {
for (BasicRuleDTO basicRuleDTO : basicRuleDTOs) {
if (basicRuleDTO.getRuleId().equals(ruleId)) {
return basicRuleDTO;
}
}
}
return null;
}
public boolean removeBasicRuleElement(String ruleId) {
if (basicRuleDTOs.size() > 0 && ruleId != null) {
for (BasicRuleDTO basicRuleDTO : basicRuleDTOs) {
if (ruleId.equals(basicRuleDTO.getRuleId())) {
return basicRuleDTOs.remove(basicRuleDTO);
}
}
}
return false;
}
public void removeBasicRuleElements() {
if (basicRuleDTOs.size() > 0) {
Iterator iterator = basicRuleDTOs.listIterator();
while (iterator.hasNext()) {
iterator.next();
iterator.remove();
}
}
}
/////////////////////////////////////// new
public List<RuleDTO> getRuleDTOs() {
return ruleDTOs;
}
public void setRuleDTOs(List<RuleDTO> ruleDTOs) {
this.ruleDTOs = ruleDTOs;
}
public void setRuleDTO(RuleDTO ruleDTO) {
if (ruleDTOs.size() > 0) {
Iterator iterator = ruleDTOs.listIterator();
while (iterator.hasNext()) {
RuleDTO elementDTO = (RuleDTO) iterator.next();
if (elementDTO.getRuleId().equals(
ruleDTO.getRuleId())) {
if (elementDTO.isCompletedRule()) {
ruleDTO.setCompletedRule(true);
}
iterator.remove();
}
}
}
this.ruleDTOs.add(ruleDTO);
}
public RuleDTO getRuleDTO(String ruleId) {
if (ruleDTOs.size() > 0) {
for (RuleDTO ruleDTO : ruleDTOs) {
if (ruleDTO.getRuleId().equals(ruleId)) {
return ruleDTO;
}
}
}
return null;
}
public boolean removeRuleDTO(String ruleId) {
if (ruleDTOs.size() > 0) {
for (RuleDTO ruleDTO : ruleDTOs) {
if (ruleDTO.getRuleId().equals(ruleId)) {
return ruleDTOs.remove(ruleDTO);
}
}
}
return false;
}
public void removeRuleDTOs() {
if (ruleDTOs.size() > 0) {
Iterator iterator = ruleDTOs.listIterator();
while (iterator.hasNext()) {
iterator.next();
iterator.remove();
}
}
}
public List<ExtendAttributeDTO> getExtendAttributeDTOs() {
return extendAttributeDTOs;
}
public void setExtendAttributeDTOs(List<ExtendAttributeDTO> extendAttributeDTOs) {
this.extendAttributeDTOs = extendAttributeDTOs;
}
public List<ObligationDTO> getObligationDTOs() {
return obligationDTOs;
}
public void setObligationDTOs(List<ObligationDTO> obligationDTOs) {
this.obligationDTOs = obligationDTOs;
}
public void addExtendAttributeDTO(ExtendAttributeDTO extendAttributeDTO) {
this.extendAttributeDTOs.add(extendAttributeDTO);
}
/////////////////////////// ////////
public BasicTargetDTO getBasicTargetDTO() {
return basicTargetDTO;
}
public void setBasicTargetDTO(
BasicTargetDTO basicTargetDTO) {
this.basicTargetDTO = basicTargetDTO;
}
public void removeBasicTargetElementDTO() {
this.basicTargetDTO = null;
}
public boolean isEditPolicy() {
return editPolicy;
}
public void setEditPolicy(boolean editPolicy) {
this.editPolicy = editPolicy;
}
public String[] getPolicyCombiningAlgorithms() {
return Arrays.copyOf(policyCombiningAlgorithms, policyCombiningAlgorithms.length);
}
public void setPolicyCombiningAlgorithms(String[] policyCombiningAlgorithms) {
this.policyCombiningAlgorithms = Arrays.copyOf(policyCombiningAlgorithms, policyCombiningAlgorithms.length);
}
public PolicySetDTO getPolicySetDTO() {
return policySetDTO;
}
public void setPolicySetDTO(PolicySetDTO policySetDTO) {
this.policySetDTO = policySetDTO;
}
public String getRuleElementOrder() {
return ruleElementOrder;
}
public void setRuleElementOrder(String ruleElementOrder) {
this.ruleElementOrder = ruleElementOrder;
}
public TargetDTO getTargetDTO() {
return targetDTO;
}
public void setTargetDTO(TargetDTO targetDTO) {
this.targetDTO = targetDTO;
}
public Map<String, String> getCategoryMap() {
return categoryMap;
}
public void setCategoryMap(Map<String, String> categoryMap) {
this.categoryMap = categoryMap;
}
public Set<String> getCategorySet() {
return categoryMap.keySet();
}
public Map<String, String> getRuleFunctionMap() {
return ruleFunctionMap;
}
public void setRuleFunctionMap(Map<String, String> ruleFunctionMap) {
this.ruleFunctionMap = ruleFunctionMap;
}
public Map<String, String> getTargetFunctionMap() {
return targetFunctionMap;
}
public void setTargetFunctionMap(Map<String, String> targetFunctionMap) {
this.targetFunctionMap = targetFunctionMap;
}
public Map<String, String> getAttributeIdMap() {
return attributeIdMap;
}
public void setAttributeIdMap(Map<String, String> attributeIdMap) {
this.attributeIdMap = attributeIdMap;
}
public Set<String> getPreFunctions() {
return preFunctions;
}
public void addPreFunction(String preFunction) {
this.preFunctions.add(preFunction);
}
public SimplePolicyEditorDTO getSimplePolicyEditorDTO() {
return SimplePolicyEditorDTO;
}
public void setSimplePolicyEditorDTO(SimplePolicyEditorDTO simplePolicyEditorDTO) {
this.SimplePolicyEditorDTO = simplePolicyEditorDTO;
}
public Map<String, EntitlementFinderDataHolder> getEntitlementFinders() {
return entitlementFinders;
}
public Set<EntitlementFinderDataHolder> getEntitlementFinders(String category) {
Set<EntitlementFinderDataHolder> holders = new HashSet<EntitlementFinderDataHolder>();
for (Map.Entry<String, EntitlementFinderDataHolder> entry : entitlementFinders.entrySet()) {
EntitlementFinderDataHolder holder = entry.getValue();
if (Arrays.asList(holder.getSupportedCategory()).contains(category)) {
holders.add(holder);
}
}
return holders;
}
public void setEntitlementFinders(String name, EntitlementFinderDataHolder entitlementFinders) {
this.entitlementFinders.put(name, entitlementFinders);
}
public Map<Integer, String> getSelectedEntitlementData() {
return selectedEntitlementData;
}
public Map<Integer, EntitlementTreeNodeDTO> getEntitlementLevelData() {
return entitlementLevelData;
}
public List<PolicyRefIdDTO> getPolicyRefIds() {
return policyRefIds;
}
public void setPolicyRefIds(List<PolicyRefIdDTO> policyRefIds) {
this.policyRefIds = policyRefIds;
}
public void addPolicyRefId(PolicyRefIdDTO policyRefId) {
Iterator iterator = policyRefIds.listIterator();
while (iterator.hasNext()) {
PolicyRefIdDTO dto = (PolicyRefIdDTO) iterator.next();
if (policyRefId != null && dto.getId().equalsIgnoreCase(policyRefId.getId())) {
iterator.remove();
}
}
this.policyRefIds.add(policyRefId);
}
public void removePolicyRefId(String policyRefId) {
Iterator iterator = policyRefIds.listIterator();
while (iterator.hasNext()) {
PolicyRefIdDTO dto = (PolicyRefIdDTO) iterator.next();
if (policyRefId != null && dto.getId().equalsIgnoreCase(policyRefId)) {
iterator.remove();
}
}
}
public String getPolicyReferenceOrder() {
return policyReferenceOrder;
}
public void setPolicyReferenceOrder(String policyReferenceOrder) {
this.policyReferenceOrder = policyReferenceOrder;
}
public List<String> getSubscribersList() {
return subscribersList;
}
public void setSubscribersList(String[] subscribersList) {
List<String> list = new ArrayList<String>(Arrays.asList(subscribersList));
this.subscribersList.addAll(list);
}
}