001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2004-2006, GeoTools Project Managment Committee (PMC)
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation;
009: * version 2.1 of the License.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: */
016: package org.geotools.xml.schema;
017:
018: import java.util.Map;
019:
020: import javax.naming.OperationNotSupportedException;
021:
022: /**
023: * <p>
024: * This interface is intended to represent an XML Schema simple type. This
025: * interface extends the generic XML schema type interface to represent datum
026: * within a single element.
027: * </p>
028: *
029: * @author dzwiers www.refractions.net
030: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/xml/src/main/java/org/geotools/xml/schema/SimpleType.java $
031: */
032: public interface SimpleType extends Type {
033: /**
034: * Represents a masks used to represent how this simpleType may or may not
035: * be changed though the use of inheritance
036: */
037: public static final int NONE = 0;
038:
039: /**
040: * Represents a masks used to represent how this simpleType may or may not
041: * be changed though the use of inheritance
042: */
043: public static final int UNION = 1;
044:
045: /**
046: * Represents a masks used to represent how this simpleType may or may not
047: * be changed though the use of inheritance
048: */
049: public static final int LIST = 2;
050:
051: /**
052: * Represents a masks used to represent how this simpleType may or may not
053: * be changed though the use of inheritance
054: */
055: public static final int RESTRICTION = 4;
056:
057: /**
058: * Represents a masks used to represent how this simpleType may or may not
059: * be changed though the use of inheritance
060: */
061: public static final int ALL = 7;
062:
063: /**
064: * <p>
065: * This specifies a mask which represents how this XML Schema SimpleType
066: * may be extended/restricted ... through Schema declared derivations.
067: * </p>
068: *
069: */
070: public int getFinal();
071:
072: /**
073: * <p>
074: * The Schema ID for this simpleType definition.
075: * </p>
076: *
077: */
078: public String getId();
079:
080: /**
081: * <p>
082: * returns the value as a string
083: * </p>
084: *
085: * @param attribute
086: * @param value
087: * @param hints
088: *
089: */
090: public AttributeValue toAttribute(Attribute attribute,
091: Object value, Map hints)
092: throws OperationNotSupportedException;
093:
094: /**
095: * DOCUMENT ME!
096: *
097: * @param attribute DOCUMENT ME!
098: * @param value DOCUMENT ME!
099: * @param hints DOCUMENT ME!
100: *
101: */
102: public boolean canCreateAttributes(Attribute attribute,
103: Object value, Map hints);
104:
105: /**
106: * Returns an int of either List, Union or Restriction
107: *
108: */
109: public int getChildType();
110:
111: /**
112: * A simple simpleType when either a List or Restriction ... A set when a
113: * Union
114: *
115: */
116: public SimpleType[] getParents();
117:
118: /**
119: * The list of facets for this Restriction ... Null if another type (List,
120: * Union)
121: *
122: */
123: public Facet[] getFacets();
124: }
|