/* * Copyright 2000-2001,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jetspeed.om.registry.base; import org.apache.jetspeed.om.registry.CapabilityMap; import java.util.Vector; import java.util.Iterator; /** * Simple bean-like implementation of the CapabilityMap * * @author <a href="shesmer@raleigh.ibm.com">Stephan Hesmer</a> * @author <a href="mailto:raphael@apache.org">Rapha謖 Luta</a> * @version $Id: BaseCapabilityMap.java,v 1.3 2004/02/23 03:08:26 jford Exp $ */ public class BaseCapabilityMap implements CapabilityMap, java.io.Serializable { private Vector caps = new Vector(); public BaseCapabilityMap() { } /** * Implements the equals operation so that 2 elements are equal if * all their member values are equal. */ public boolean equals(Object object) { if (object==null) { return false; } BaseCapabilityMap obj = (BaseCapabilityMap)object; Iterator i = caps.iterator(); Iterator i2 = obj.caps.iterator(); while(i.hasNext()) { String c1 = (String)i.next(); String c2 = null; if (i2.hasNext()) { c2 = (String)i2.next(); } else { return false; } if (!c1.equals(c2)) { return false; } } if (i2.hasNext()) { return false; } return true; } public Iterator getCapabilities() { return caps.iterator(); } public void addCapability(String name) { if (!caps.contains(name)) { caps.add(name); } } public void removeCapability(String name) { caps.remove(name); } /** * Checks if the argument capability is included in this map * * @param capabiltiy a capability descriptor * @return true if the capability is supported */ public boolean contains(String capability) { return caps.contains(capability); } /** * Checks if the all the elements of argument capability map * are included in the current one * * @param map a CapabilityMap implementation to test * @return true is all the elements the argument map are included in the * current map. */ public boolean containsAll(CapabilityMap map) { Iterator i = map.getCapabilities(); while(i.hasNext()) { String capability = (String)i.next(); if (!contains(capability)) { return false; } } return true; } // castor related method definitions public Vector getCaps() { return caps; } }