/** * The contents of this file are subject to the Mozilla Public License * Version 1.1 (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.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations under * the License. * * The Original Code is OpenELIS code. * * Copyright (C) The Minnesota Department of Health. All Rights Reserved. */ package us.mn.state.health.lims.common.valueholder; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import us.mn.state.health.lims.common.action.IActionConstants; //import org.apache.commons.lang.builder.EqualsBuilder; //import org.apache.commons.lang.builder.HashCodeBuilder; public class EnumValueImpl implements EnumValue, Collection { private String enumName = null; private Map map = null; private List list = null; public EnumValueImpl() { } public EnumValueImpl(String name) { setEnumName(name); } public String getEnumName() { return enumName; } public void setEnumName(String enumName) { this.enumName = enumName; } public int getSize() { return getMap().size(); } public void putValue(String key, EnumValueItem enumValueItem) { // Add enumValueItem to both the List and Map maintained by this class if (null != enumValueItem) enumValueItem.setEnumName(this.getEnumName()); getList().add(enumValueItem); getMap().put(key, enumValueItem); } public EnumValueItem getValue(String key) { return (EnumValueItem) getMap().get(key); } public List getValues() { return getList(); } public List getActiveValues() { Iterator iterator = getList().iterator(); List list = new ArrayList(); EnumValueItem value = null; while (iterator.hasNext()) { value = (EnumValueItem) iterator.next(); if (value.getIsActive().equals(IActionConstants.YES)) { list.add(value); } } return list; } public List getInActiveValues() { Iterator iterator = getList().iterator(); List list = new ArrayList(); EnumValueItem value = null; while (iterator.hasNext()) { value = (EnumValueItem) iterator.next(); if (!value.getIsActive().equals(IActionConstants.YES)) { list.add(value); } } return list; } protected List getList() { if (list == null) { list = new ArrayList(); } return list; } protected void setList(List list) { this.list = list; } protected Map getMap() { if (map == null) { map = new HashMap(); } return map; } protected void setMap(Map map) { this.map = map; } // // Following methods implement the Collection interface // /** * @see java.util.Collection#add(Object) */ public boolean add(Object o) { return false; } /** * @see java.util.Collection#addAll(Collection) */ public boolean addAll(Collection c) { return false; } /** * @see java.util.Collection#clear() */ public void clear() { getList().clear(); getMap().clear(); } /** * @see java.util.Collection#contains(Object) */ public boolean contains(Object o) { return getMap().containsValue(o); } /** * @see java.util.Collection#containsAll(Collection) */ public boolean containsAll(Collection c) { Iterator all = c.iterator(); while (all.hasNext()) { if (!getMap().containsValue(all.next())) { return false; } } return true; } /** * @see java.util.Collection#isEmpty() */ public boolean isEmpty() { return getMap().isEmpty(); } /** * @see java.util.Collection#iterator() */ public Iterator iterator() { return getValues().iterator(); } /** * @see java.util.Collection#remove(Object) */ public boolean remove(Object o) { return false; } /** * @see java.util.Collection#removeAll(Collection) */ public boolean removeAll(Collection c) { return false; } /** * @see java.util.Collection#retainAll(Collection) */ public boolean retainAll(Collection c) { return false; } /** * @see java.util.Collection#size() */ public int size() { return getMap().size(); } /** * @see java.util.Collection#toArray() */ public Object[] toArray() { return getValues().toArray(); } /** * @see java.util.Collection#toArray(Object[]) */ public Object[] toArray(Object[] a) { return getValues().toArray(a); } }