package br.com.citframework.security;
import java.util.List;
import java.util.StringTokenizer;
import org.apache.commons.lang.StringUtils;
public class Access {
private String path;
private List accessingTransactionList;
private static final String CERQUILHA = "#";
static final String PUBLIC = "PUBLIC";
public String getPath() {
return path;
}
void setPath(String path) {
this.path = path;
}
void setAccessingTransactionList(List accessingTransactionList) {
this.accessingTransactionList = accessingTransactionList;
}
public boolean hasAccess(String userTransactions) {
if (accessingTransactionList.indexOf(PUBLIC) != -1)
return true;
if (StringUtils.isBlank(userTransactions))
return false;
StringTokenizer tokenizer = new StringTokenizer(userTransactions, CERQUILHA);
while (tokenizer.hasMoreTokens()) {
String userTransaction = tokenizer.nextToken().toUpperCase();
if (accessingTransactionList.indexOf(userTransaction) != -1)
return true;
}
return false;
}
public String toString() {
return path == null ? "'null' path" : path;
}
/*
public boolean equals(Object obj) {
return path != null && obj != null && obj instanceof Access && path.equals(((Access) obj).path);
}
*/
public List getAccessingTransactionList() {
return accessingTransactionList;
}
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = PRIME * result + ((path == null) ? 0 : path.hashCode());
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final Access other = (Access) obj;
if (path == null) {
if (other.path != null)
return false;
} else if (!path.equals(other.path))
return false;
return true;
}
}