package com.idega.core.accesscontrol.business;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Vector;
/**
* Title: IW Accesscontrol
* Description:
* Copyright: Copyright (c) 2001
* Company: idega.is
* @author <a href="mailto:gummi@idega.is">Gu�mundur �g�st S�mundsson</a>
* @version 1.0
*/
public class PermissionMap {
private Map firstKey;
public PermissionMap() {
this.firstKey = new Hashtable();
/*
firstKey.clear();
firstKey.containsKey(object);
firstKey.containsValue(object);
firstKey.entrySet();
firstKey.equals();
firstKey.get();
firstKey.hashCode();
firstKey.isEmpty();
firstKey.keySet();
firstKey.putAll();
firstKey.put();
firstKey.remove();
firstKey.size();
firstKey.values();
*/
}
public void put(Object key1, Object key2, Object key3, Object value){
Map secondKey = (Map)this.firstKey.get(key1);
if(secondKey == null){
secondKey = new Hashtable();
this.firstKey.put(key1,secondKey);
}
Map thirdKey = (Map)secondKey.get(key2);
if(thirdKey == null){
thirdKey = new Hashtable();
secondKey.put(key2,thirdKey);
}
thirdKey.put(key3,value);
}
public void put(Object key1, Object key2, Map value){
Map secondKey = (Map)this.firstKey.get(key1);
if(secondKey == null){
secondKey = new Hashtable();
this.firstKey.put(key1,secondKey);
}
secondKey.put(key2,value);
}
public void clear(){
this.firstKey.clear();
}
public List get(Object key1, Object key2, List key3){
Map thirdKey = this.get(key1, key2);
if(thirdKey != null){
List toReturn = new Vector();
if(key3 != null){
Iterator iter = key3.iterator();
while (iter.hasNext()) {
Object value = thirdKey.get(iter.next());
if(value != null){
toReturn.add(value);
}
}
}
return toReturn;
} else{
return null;
}
}
public Map get(Object key1, Object key2){
Map secondKey = (Map)this.firstKey.get(key1);
if(secondKey != null){
return (Map)secondKey.get(key2);
}else{
return null;
}
}
}