/**
* Licensed to Apereo under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright ownership. Apereo
* 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 the
* following location:
*
* <p>http://www.apache.org/licenses/LICENSE-2.0
*
* <p>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.apereo.portal.rest.permissions;
import org.apache.commons.lang.builder.CompareToBuilder;
public class JsonPermission implements Comparable<JsonPermission> {
private String ownerKey;
private String ownerName;
private String activityKey;
private String activityName;
private String principalKey;
private String principalName;
private String targetKey;
private String targetName;
private boolean inherited;
public String getOwnerKey() {
return ownerKey;
}
public void setOwnerKey(String ownerKey) {
this.ownerKey = ownerKey;
}
public String getOwnerName() {
return ownerName;
}
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
public String getActivityKey() {
return activityKey;
}
public void setActivityKey(String activityKey) {
this.activityKey = activityKey;
}
public String getActivityName() {
return activityName;
}
public void setActivityName(String activityName) {
this.activityName = activityName;
}
public String getPrincipalKey() {
return principalKey;
}
public void setPrincipalKey(String principalKey) {
this.principalKey = principalKey;
}
public String getPrincipalName() {
return principalName;
}
public void setPrincipalName(String principalName) {
this.principalName = principalName;
}
public String getTargetKey() {
return targetKey;
}
public void setTargetKey(String targetKey) {
this.targetKey = targetKey;
}
public String getTargetName() {
return targetName;
}
public void setTargetName(String targetName) {
this.targetName = targetName;
}
public boolean isInherited() {
return inherited;
}
public void setInherited(boolean inherited) {
this.inherited = inherited;
}
public int compareTo(JsonPermission permission) {
return new CompareToBuilder()
.append(this.ownerName, permission.ownerName)
.append(this.activityName, permission.activityName)
.append(this.principalName, permission.principalName)
.append(this.targetName, permission.targetName)
.append(this.inherited, permission.inherited)
.toComparison();
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((this.activityName == null) ? 0 : this.activityName.hashCode());
result = prime * result + (this.inherited ? 1231 : 1237);
result = prime * result + ((this.ownerName == null) ? 0 : this.ownerName.hashCode());
result =
prime * result + ((this.principalName == null) ? 0 : this.principalName.hashCode());
result = prime * result + ((this.targetName == null) ? 0 : this.targetName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
JsonPermission other = (JsonPermission) obj;
if (this.activityName == null) {
if (other.activityName != null) return false;
} else if (!this.activityName.equals(other.activityName)) return false;
if (this.inherited != other.inherited) return false;
if (this.ownerName == null) {
if (other.ownerName != null) return false;
} else if (!this.ownerName.equals(other.ownerName)) return false;
if (this.principalName == null) {
if (other.principalName != null) return false;
} else if (!this.principalName.equals(other.principalName)) return false;
if (this.targetName == null) {
if (other.targetName != null) return false;
} else if (!this.targetName.equals(other.targetName)) return false;
return true;
}
}