/*
* 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.dto;
import java.util.Arrays;
/**
* This class encapsulate the XACML policy related the data
*/
public class PolicyDTO {
private String policy;
private String policyId;
private boolean active;
private boolean promote;
private String policyType;
private String policyEditor;
private String[] policyEditorData = new String[0];
private int policyOrder;
private String version;
private String lastModifiedTime;
private String lastModifiedUser;
private AttributeDTO[] attributeDTOs = new AttributeDTO[0];
private String[] policySetIdReferences = new String[0];
private String[] policyIdReferences = new String[0];
public PolicyDTO() {
}
public PolicyDTO(String policyId) {
this.policyId = policyId;
}
public String getPolicyId() {
return policyId;
}
public void setPolicyId(String policyId) {
this.policyId = policyId;
}
public String getPolicy() {
return policy;
}
public void setPolicy(String policy) {
this.policy = policy;
}
public void setActive(boolean active) {
this.active = active;
}
public boolean isActive() {
return active;
}
public String getPolicyType() {
return policyType;
}
public void setPolicyType(String policyType) {
this.policyType = policyType;
}
public String getPolicyEditor() {
return policyEditor;
}
public void setPolicyEditor(String policyEditor) {
this.policyEditor = policyEditor;
}
public String[] getPolicyEditorData() {
return Arrays.copyOf(policyEditorData, policyEditorData.length);
}
public void setPolicyEditorData(String[] policyEditorData) {
this.policyEditorData = Arrays.copyOf(policyEditorData,
policyEditorData.length);
}
public AttributeDTO[] getAttributeDTOs() {
return Arrays.copyOf(attributeDTOs, attributeDTOs.length);
}
public void setAttributeDTOs(AttributeDTO[] attributeDTOs) {
this.attributeDTOs = Arrays.copyOf(attributeDTOs, attributeDTOs.length);
}
public int getPolicyOrder() {
return policyOrder;
}
public void setPolicyOrder(int policyOrder) {
this.policyOrder = policyOrder;
}
public String[] getPolicySetIdReferences() {
return Arrays.copyOf(policySetIdReferences, policySetIdReferences.length);
}
public void setPolicySetIdReferences(String[] policySetIdReferences) {
this.policySetIdReferences = Arrays.copyOf(policySetIdReferences, policySetIdReferences.length);
}
public String[] getPolicyIdReferences() {
return Arrays.copyOf(policyIdReferences, policyIdReferences.length);
}
public void setPolicyIdReferences(String[] policyIdReferences) {
this.policyIdReferences = Arrays.copyOf(policyIdReferences, policyIdReferences.length);
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public boolean isPromote() {
return promote;
}
public void setPromote(boolean promote) {
this.promote = promote;
}
public String getLastModifiedTime() {
return lastModifiedTime;
}
public void setLastModifiedTime(String lastModifiedTime) {
this.lastModifiedTime = lastModifiedTime;
}
public String getLastModifiedUser() {
return lastModifiedUser;
}
public void setLastModifiedUser(String lastModifiedUser) {
this.lastModifiedUser = lastModifiedUser;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof PolicyDTO)) return false;
PolicyDTO policyDTO = (PolicyDTO) o;
if (active != policyDTO.active) return false;
if (policyOrder != policyDTO.policyOrder) return false;
if (promote != policyDTO.promote) return false;
if (!Arrays.equals(attributeDTOs, policyDTO.attributeDTOs)) return false;
if (lastModifiedTime != null ? !lastModifiedTime.equals(policyDTO.lastModifiedTime) :
policyDTO.lastModifiedTime != null) {
return false;
}
if (lastModifiedUser != null ? !lastModifiedUser.equals(policyDTO.lastModifiedUser) :
policyDTO.lastModifiedUser != null) {
return false;
}
if (policy != null ? !policy.equals(policyDTO.policy) : policyDTO.policy != null) return false;
if (policyEditor != null ? !policyEditor.equals(policyDTO.policyEditor) : policyDTO.policyEditor != null) {
return false;
}
if (!Arrays.equals(policyEditorData, policyDTO.policyEditorData)) return false;
if (!policyId.equals(policyDTO.policyId)) return false;
if (!Arrays.equals(policyIdReferences, policyDTO.policyIdReferences)) return false;
if (!Arrays.equals(policySetIdReferences, policyDTO.policySetIdReferences)) return false;
if (policyType != null ? !policyType.equals(policyDTO.policyType) : policyDTO.policyType != null) return false;
if (version != null ? !version.equals(policyDTO.version) : policyDTO.version != null) return false;
return true;
}
@Override
public int hashCode() {
int result = policy != null ? policy.hashCode() : 0;
result = 31 * result + policyId.hashCode();
result = 31 * result + (active ? 1 : 0);
result = 31 * result + (promote ? 1 : 0);
result = 31 * result + (policyType != null ? policyType.hashCode() : 0);
result = 31 * result + (policyEditor != null ? policyEditor.hashCode() : 0);
result = 31 * result + (policyEditorData != null ? Arrays.hashCode(policyEditorData) : 0);
result = 31 * result + policyOrder;
result = 31 * result + (version != null ? version.hashCode() : 0);
result = 31 * result + (lastModifiedTime != null ? lastModifiedTime.hashCode() : 0);
result = 31 * result + (lastModifiedUser != null ? lastModifiedUser.hashCode() : 0);
result = 31 * result + (attributeDTOs != null ? Arrays.hashCode(attributeDTOs) : 0);
result = 31 * result + (policySetIdReferences != null ? Arrays.hashCode(policySetIdReferences) : 0);
result = 31 * result + (policyIdReferences != null ? Arrays.hashCode(policyIdReferences) : 0);
return result;
}
}