/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* Licensed 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
*
*******************************************************************************/
package org.ebayopensource.turmeric.policyservice.provider.common;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.ebayopensource.turmeric.security.v1.services.Resource;
import org.ebayopensource.turmeric.security.v1.services.Rule;
import org.ebayopensource.turmeric.security.v1.services.Subject;
import org.ebayopensource.turmeric.security.v1.services.SubjectGroup;
/**
* Collects all the information about a policy. It is more convenient to pass a
* collection of the policy information to a method using an instance of this
* class than passing them separately.
*
*/
public class PolicyBuilderObject {
/**
* Map to store the inclusive subjects. Key is the subject unique ID.
*/
private Map<Long, Subject> m_inclusionSubjects = new HashMap<Long, Subject>();
/**
* Map to store the exclusive subjects. Key is the subject unique ID.
*/
private Map<Long, Subject> m_exclusionSubjects = new HashMap<Long, Subject>();
/**
* List of global subject names.
*/
private List<String> m_globalSubjects = new ArrayList<String>();
/**
* Map to store the inclusive subject groups. Key is the subject group unique ID.
*/
private Map<Long, SubjectGroup> m_inclusionSubjectGrps = new HashMap<Long, SubjectGroup>();
/**
* Map to store the exclusive subject groups. Key is the subject group unique ID.
*/
private Map<Long, SubjectGroup> m_exclusionSubjectGrps = new HashMap<Long, SubjectGroup>();
/**
* Map to store the resources. Key is the resource unique ID.
*/
private Map<Long, Resource> m_resources = null;
/**
* Map to store the rules. Key is the rule unique ID.
*/
private Map<Long, Rule> m_rules = new HashMap<Long, Rule>();
/**
* Get the inclusion subjects.
*
* @return map of subjects, subject IDs as the keys
*/
public Map<Long, Subject> getInclusionSubjects() {
return m_inclusionSubjects;
}
/**
* Set the inclusion subjects.
*
* @param inclusionSubjects
* map of subjects, subject IDs as the keys
*/
public void setInclusionSubjects(Map<Long, Subject> inclusionSubjects) {
if (inclusionSubjects == null)
inclusionSubjects = new HashMap<Long, Subject>();
m_inclusionSubjects = new HashMap<Long, Subject>(inclusionSubjects);
}
/**
* Get the exclusion subjects.
*
* @return map of subjects, subject IDs as the keys
*/
public Map<Long, Subject> getExclusionSubjects() {
return m_exclusionSubjects;
}
/**
* Set the exclusion subjects.
*
* @param exclusionSubjects
* map of subjects, subject IDs as the keys
*/
public void setExclusionSubjects(Map<Long, Subject> exclusionSubjects) {
if (exclusionSubjects == null)
exclusionSubjects = new HashMap<Long, Subject>();
m_exclusionSubjects = new HashMap<Long, Subject>(exclusionSubjects);
}
/**
* Get the global subjects.
*
* @return list of subject names
*/
public List<String> getGlobalSubjects() {
return m_globalSubjects;
}
/**
* Set the global subjects.
*
* @param globalSubjects
* list of subject names.
*/
public void setGlobalSubjects(List<String> globalSubjects) {
if (globalSubjects == null)
globalSubjects = new ArrayList<String>();
m_globalSubjects = new ArrayList<String>(globalSubjects);
}
/**
* Get the inclusion subject groups.
*
* @return map of subjects, subject IDs as the keys
*/
public Map<Long, SubjectGroup> getInclusionSubjectGrps() {
return m_inclusionSubjectGrps;
}
/**
* Set the inclusion subject groups.
*
* @param inclusionSubjectGrps
* map of subject groups, subject group IDs as the keys
*/
public void setInclusionSubjectGrps(
Map<Long, SubjectGroup> inclusionSubjectGrps) {
if (inclusionSubjectGrps == null)
inclusionSubjectGrps = new HashMap<Long, SubjectGroup>();
m_inclusionSubjectGrps = new HashMap<Long, SubjectGroup>(
inclusionSubjectGrps);
}
/**
* Get the exclusion subject groups.
*
* @return map of subject groups, subject group IDs as the keys
*/
public Map<Long, SubjectGroup> getExclusionSubjectGrps() {
return m_exclusionSubjectGrps;
}
/**
* Set the exclusion subject groups.
*
* @param exclusionSubjectGrps
* map of subject groups, subject group IDs as the keys
*/
public void setExclusionSubjectGrps(
Map<Long, SubjectGroup> exclusionSubjectGrps) {
if (exclusionSubjectGrps == null)
exclusionSubjectGrps = new HashMap<Long, SubjectGroup>();
m_exclusionSubjectGrps = new HashMap<Long, SubjectGroup>(
exclusionSubjectGrps);
}
/**
* Get all resources.
*
* @return map of resources, resource IDs as the keys
*/
public Map<Long, Resource> getResources() {
return m_resources;
}
/**
* Set all resources.
*
* @param resources
* map of resources, resource IDs as the keys
*/
public void setResources(Map<Long, Resource> resources) {
if (resources == null)
resources = new HashMap<Long, Resource>();
m_resources = new HashMap<Long, Resource>(resources);
}
/**
* Get rules.
*
* @return map of rules, rule IDs as the keys.
*/
public Map<Long, Rule> getRules() {
return m_rules;
}
/**
* Set rules.
*
* @param rules
* map of rules, rule IDs as the keys.
*/
public void setRules(Map<Long, Rule> rules) {
if (rules == null)
rules = new HashMap<Long, Rule>();
m_rules = new HashMap<Long, Rule>(rules);
}
}