package abstrasy.externals;
import abstrasy.Node;
import abstrasy.interpreter.InterpreterException;
import abstrasy.interpreter.StdErrors;
import java.util.ArrayList;
/**
* Abstrasy Interpreter
*
* Copyright : Copyright (c) 2006-2012, Luc Bruninx.
*
* Concédée sous licence EUPL, version 1.1 uniquement (la «Licence»).
*
* Vous ne pouvez utiliser la présente oeuvre que conformément à la Licence.
* Vous pouvez obtenir une copie de la Licence à l’adresse suivante:
*
* http://www.osor.eu/eupl
*
* Sauf obligation légale ou contractuelle écrite, le logiciel distribué sous
* la Licence est distribué "en l’état", SANS GARANTIES OU CONDITIONS QUELLES
* QU’ELLES SOIENT, expresses ou implicites.
*
* Consultez la Licence pour les autorisations et les restrictions
* linguistiques spécifiques relevant de la Licence.
*
*
* @author Luc Bruninx
* @version 1.0
*/
public class OptAccessList {
private ArrayList<OptAccess> oalist = new ArrayList<OptAccess>();
public OptAccessList() { }
public OptAccessList(OptAccess ... oas) {
for(int i=0;i<oas.length;i++)
oalist.add(oas[i]);
}
public OptAccessList(OptAccessList oas) {
for(int i=0;i<oas.size();i++)
oalist.add(oas.get(i));
}
public int size(){
return oalist.size();
}
public void add(OptAccess oa){
oalist.add(oa);
}
public void set(OptAccess oa){
for(int i=0;i<oalist.size();i++)
if(oalist.get(i).equals(oa.getKey())){
oalist.set(i, oa);
return;
}
oalist.add(oa);
}
public OptAccess get(int i){
return oalist.get(i);
}
public boolean exists(String id) {
for (int i = 0; i < oalist.size(); i++)
if (oalist.get(i).equals(id))
return true;
return false;
}
public Node get(String id) throws Exception {
for (int i = 0; i < oalist.size(); i++)
if (oalist.get(i).equals(id))
return oalist.get(i).getNode();
throw new InterpreterException(StdErrors.extend(StdErrors.Key_not_found,"\'"+id));
}
public void set(String id,Node value) throws Exception {
for (int i = 0; i < oalist.size(); i++)
if (oalist.get(i).equals(id)){
oalist.get(i).setNode(value);
return;
}
throw new InterpreterException(StdErrors.extend(StdErrors.Key_not_found,"\'"+id));
}
}