package com.constellio.model.services.security;
import java.io.Serializable;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
public final class ContentPermission implements Serializable {
private final String code;
private final Set<String> dependencies;
ContentPermission(String code, ContentPermission... dependentContentPermissions) {
this.code = code;
Set<String> dependencies = new HashSet<>();
for (ContentPermission contentPermission : dependentContentPermissions) {
dependencies.add(contentPermission.getCode());
dependencies.addAll(contentPermission.getDependencies());
}
this.dependencies = Collections.unmodifiableSet(dependencies);
}
public String getCode() {
return code;
}
public Set<String> getDependencies() {
return dependencies;
}
@Override
public String toString() {
return code + " including " + dependencies;
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
}