package de.tud.inf.operator.capabilites; import java.util.ArrayList; import java.util.List; public class ExampleSetCapability implements Capability{ private List<Capability> inner; public ExampleSetCapability() { inner = new ArrayList<Capability>(); } public boolean checkCapability(Capability toCheck) { if(toCheck.getType() == EXAMPLE_SET_CAPABILITY_TYPE) { if(inner == null || inner.size() == 0) return true; if(toCheck.getInnerCapabilities() == null || toCheck.getInnerCapabilities().size() == 0) return true; for(Capability child : inner) { boolean valid = false; for(Capability toCheckInner : toCheck.getInnerCapabilities()) { if(child.checkCapability(toCheckInner)) { valid = true; break; } } if(!valid) return false; } return true; } return false; } public int getType() { return Capability.EXAMPLE_SET_CAPABILITY_TYPE; } public void addCapability(AttributeCapability cap) { inner.add(cap); } public List<Capability> getInnerCapabilities() { return inner; } public String getAsString() { // TODO Auto-generated method stub return null; } }