001: /*
002: * Type.java
003: *
004: * Created on September 26, 2006, 11:01 AM
005: *
006: * To change this template, choose Tools | Template Manager
007: * and open the template in the editor.
008: */
009:
010: package org.netbeans.modules.e2e.api.schema;
011:
012: import java.util.ArrayList;
013: import java.util.Collections;
014: import java.util.List;
015: import javax.xml.namespace.QName;
016:
017: /**
018: *
019: * @author Michal Skvor
020: */
021: public class Type extends RepeatableSchemaConstruct {
022:
023: public static final short FLAVOR_SEQUENCE = 1;
024: public static final short FLAVOR_PRIMITIVE_ENUMERATION = 2;
025: public static final short FLAVOR_PRIMITIVE = 3;
026:
027: private short flavor;
028: private String javaTypeName;
029:
030: private List<SchemaConstruct> subconstructs;
031:
032: /** Creates a new instance of Type */
033: public Type() {
034: super (SchemaConstruct.ConstructType.TYPE);
035: setMinOccurs(1);
036: setMaxOccurs(1);
037: subconstructs = new ArrayList();
038: }
039:
040: public Type(QName name) {
041: super (SchemaConstruct.ConstructType.TYPE, name);
042: setMinOccurs(1);
043: setMaxOccurs(1);
044:
045: subconstructs = new ArrayList();
046: }
047:
048: public Type(QName name, short flavor) {
049: super (SchemaConstruct.ConstructType.TYPE, name);
050: setMinOccurs(1);
051: setMaxOccurs(1);
052:
053: subconstructs = new ArrayList();
054:
055: this .flavor = flavor;
056: }
057:
058: public Type(QName name, short flavor, int minOccurs, int maxOccurs) {
059: super (SchemaConstruct.ConstructType.TYPE, name);
060: subconstructs = new ArrayList();
061:
062: this .flavor = flavor;
063: setMinOccurs(minOccurs);
064: setMaxOccurs(maxOccurs);
065: }
066:
067: public void setFlavor(short flavor) {
068: this .flavor = flavor;
069: }
070:
071: public short getFlavor() {
072: return flavor;
073: }
074:
075: public void setJavaTypeName(String javaTypeName) {
076: this .javaTypeName = javaTypeName;
077: }
078:
079: public String getJavaTypeName() {
080: return javaTypeName;
081: }
082:
083: public void addSubconstruct(SchemaConstruct subconstruct) {
084: subconstructs.add(subconstruct);
085: }
086:
087: public List<SchemaConstruct> getSubconstructs() {
088: return Collections.unmodifiableList(subconstructs);
089: }
090:
091: public String toString() {
092: StringBuffer sb = new StringBuffer();
093: sb.append("name='" + getName() + "' ");
094: sb.append("type='");
095: if (FLAVOR_PRIMITIVE == flavor) {
096: sb.append("primitive");
097: } else if (FLAVOR_SEQUENCE == flavor) {
098: sb.append("sequence");
099: }
100: sb.append("' name='" + getName());
101: sb.append("' minOccurs='" + getMinOccurs() + "'");
102: if (getMaxOccurs() == RepeatableSchemaConstruct.UNBOUNDED) {
103: sb.append(" maxOccurs='unbounded'");
104: } else {
105: sb.append(" maxOccurs='" + getMaxOccurs() + "'");
106: }
107:
108: return sb.toString();
109: }
110:
111: }
|