001: package com.xoetrope.builder.generic;
002:
003: import java.util.ArrayList;
004:
005: /**
006: * A mapping for converting the file type to a component type or a set of
007: * component types
008: * <p> Copyright (c) Xoetrope Ltd., 2001-2008, This software is licensed under
009: * the GNU Public License (GPL), please see license.txt for more details. If
010: * you make commercial use of this software you must purchase a commercial
011: * license from Xoetrope.</p>
012: */
013: public class XComponentMapping {
014: // Package scope variables
015: private String tag;
016: private String typeName;
017: private Object[] matchParams;
018:
019: private ArrayList componentTypes;
020: private ArrayList attributeMapping;
021:
022: /**
023: * Creates a new instance of XComponentMapping
024: * @param tag the file format tag used to identify the component type
025: */
026: public XComponentMapping(String tag) {
027: this .tag = tag;
028:
029: componentTypes = new ArrayList();
030: }
031:
032: /**
033: * Add a XUI component types to be output when the mapped element is processed
034: * @param typeStr the type of component to be instantiated
035: * @param name the name by which the component is referenced within the mapping
036: * @param span the number of components this component contains
037: */
038: public void addComponentType(String typeStr, String name,
039: int spans, boolean isMain) {
040: getComponentTypes().add(
041: new XTypeMapping(typeStr, name, spans, isMain));
042: }
043:
044: public void addAttributeMapping(String srcAttrib,
045: String destAttrib, String componentRef, String destValue) {
046: if (attributeMapping == null)
047: attributeMapping = new ArrayList();
048:
049: getAttributeMapping().add(
050: new XAttributeMapping(srcAttrib, destAttrib,
051: componentRef, destValue));
052: }
053:
054: /**
055: * Get the mapping's tag
056: * @return the tag
057: */
058: public String getTag() {
059: return tag;
060: }
061:
062: /**
063: * Return the type associated with this mapping
064: * @return the type name
065: */
066: public String getTypeName() {
067: return typeName;
068: }
069:
070: /**
071: * Get the component types supported by this mapping
072: * @return the list of types
073: */
074: public ArrayList getComponentTypes() {
075: return componentTypes;
076: }
077:
078: /**
079: * Get the attributes supported by this mapping
080: * @return the attribute mappings
081: */
082: public ArrayList getAttributeMapping() {
083: return attributeMapping;
084: }
085:
086: /**
087: * Get the additional match parameters - if any
088: * @return the parameters or null
089: */
090: public Object[] getMatchParams() {
091: return matchParams;
092: }
093:
094: /**
095: * Get the additional match parameters - if any
096: * @param mp the new match parameters
097: */
098: public void setMatchParams(Object[] mp) {
099: matchParams = mp;
100: }
101: }
|