package fr.openwide.core.jpa.security.model;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.springframework.security.acls.model.Permission;
public class NamedPermission implements Permission {
private static final long serialVersionUID = 4702776652617722298L;
public static final NamedPermission READ = new NamedPermission(CorePermissionConstants.READ);
public static final NamedPermission WRITE = new NamedPermission(CorePermissionConstants.WRITE);
public static final NamedPermission CREATE = new NamedPermission(CorePermissionConstants.CREATE);
public static final NamedPermission DELETE = new NamedPermission(CorePermissionConstants.DELETE);
public static final NamedPermission ADMINISTRATION = new NamedPermission(CorePermissionConstants.ADMINISTRATION);
public static final NamedPermission ADMIN_SIGN_IN_AS = new NamedPermission(CorePermissionConstants.ADMIN_SIGN_IN_AS);
protected String name;
protected NamedPermission(String name) {
this.name = name;
}
@Override
public int getMask() {
throw new UnsupportedOperationException();
}
@Override
public String getPattern() {
throw new UnsupportedOperationException();
}
public String getName() {
return name;
}
@Override
public final String toString() {
return name;
}
@Override
public boolean equals(Object object) {
if (object == null) {
return false;
}
if (object == this) {
return true;
}
if (object instanceof NamedPermission) {
NamedPermission permission = (NamedPermission) object;
return new EqualsBuilder().append(name, permission.getName()).build();
}
return false;
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(name).build();
}
}