001/* 002 * Copyright (c) 2004-2012, Willem Cazander 003 * All rights reserved. 004 * 005 * Redistribution and use in source and binary forms, with or without modification, are permitted provided 006 * that the following conditions are met: 007 * 008 * * Redistributions of source code must retain the above copyright notice, this list of conditions and the 009 * following disclaimer. 010 * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and 011 * the following disclaimer in the documentation and/or other materials provided with the distribution. 012 * 013 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 014 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 015 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 016 * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 017 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 018 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 019 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 020 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 021 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 022 */ 023 024package org.x4o.xml.element; 025 026import java.util.ArrayList; 027import java.util.Collection; 028import java.util.HashMap; 029import java.util.List; 030import java.util.Map; 031 032/** 033 * An AbstractElementClassBase. 034 * 035 * @author Willem Cazander 036 * @version 1.0 Jan 19, 2012 037 */ 038public abstract class AbstractElementClassBase extends AbstractElementMetaBase implements ElementClassBase { 039 040 private Map<String,ElementClassAttribute> elementClassAttributes = null; 041 private List<ElementConfigurator> elementConfigurators = null; 042 043 public AbstractElementClassBase() { 044 elementConfigurators = new ArrayList<ElementConfigurator>(5); 045 elementClassAttributes = new HashMap<String,ElementClassAttribute>(15); 046 } 047 048 049 /** 050 * @see ElementClass#getElementConfigurators() 051 */ 052 public List<ElementConfigurator> getElementConfigurators() { 053 return elementConfigurators; 054 } 055 056 /** 057 * @see ElementClass#addElementConfigurators(ElementConfigurator) 058 */ 059 public void addElementConfigurators(ElementConfigurator elementConfigurator) { 060 elementConfigurators.add(elementConfigurator); 061 } 062 063 /** 064 */ 065 public void addElementClassAttribute(ElementClassAttribute elementClassAttribute) { 066 elementClassAttributes.put(elementClassAttribute.getName(),elementClassAttribute); 067 } 068 069 /** 070 */ 071 public Collection<ElementClassAttribute> getElementClassAttributes() { 072 return elementClassAttributes.values(); 073 } 074 075 /** 076 */ 077 public ElementClassAttribute getElementClassAttributeByName(String attributeName) { 078 return elementClassAttributes.get(attributeName); 079 } 080}