1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.soap;
12
13 import org.mule.config.i18n.CoreMessages;
14
15 import javax.xml.namespace.QName;
16 import javax.xml.rpc.ParameterMode;
17
18
19
20
21 public class NamedParameter
22 {
23 public final int MODE_IN = 0;
24 public final int MODE_OUT = 1;
25 public final int MODE_INOUT = 2;
26
27 public static final String URI_1999_SCHEMA_XSD = "http://www.w3.org/1999/XMLSchema";
28 public static final String URI_2000_SCHEMA_XSD = "http://www.w3.org/2000/10/XMLSchema";
29 public static final String URI_2001_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema";
30
31 public static final String URI_DEFAULT_SCHEMA_XSD = URI_2001_SCHEMA_XSD;
32
33 public static final QName XSD_STRING = new QName(URI_DEFAULT_SCHEMA_XSD, "string");
34 public static final QName XSD_BOOLEAN = new QName(URI_DEFAULT_SCHEMA_XSD, "boolean");
35 public static final QName XSD_DOUBLE = new QName(URI_DEFAULT_SCHEMA_XSD, "double");
36 public static final QName XSD_FLOAT = new QName(URI_DEFAULT_SCHEMA_XSD, "float");
37 public static final QName XSD_INT = new QName(URI_DEFAULT_SCHEMA_XSD, "int");
38 public static final QName XSD_INTEGER = new QName(URI_DEFAULT_SCHEMA_XSD, "integer");
39 public static final QName XSD_LONG = new QName(URI_DEFAULT_SCHEMA_XSD, "long");
40 public static final QName XSD_SHORT = new QName(URI_DEFAULT_SCHEMA_XSD, "short");
41 public static final QName XSD_BYTE = new QName(URI_DEFAULT_SCHEMA_XSD, "byte");
42 public static final QName XSD_DECIMAL = new QName(URI_DEFAULT_SCHEMA_XSD, "decimal");
43 public static final QName XSD_BASE64 = new QName(URI_DEFAULT_SCHEMA_XSD, "base64Binary");
44 public static final QName XSD_HEXBIN = new QName(URI_DEFAULT_SCHEMA_XSD, "hexBinary");
45 public static final QName XSD_ANYSIMPLETYPE = new QName(URI_DEFAULT_SCHEMA_XSD, "anySimpleType");
46 public static final QName XSD_ANYTYPE = new QName(URI_DEFAULT_SCHEMA_XSD, "anyType");
47 public static final QName XSD_ANY = new QName(URI_DEFAULT_SCHEMA_XSD, "any");
48 public static final QName XSD_QNAME = new QName(URI_DEFAULT_SCHEMA_XSD, "QName");
49 public static final QName XSD_DATETIME = new QName(URI_DEFAULT_SCHEMA_XSD, "dateTime");
50 public static final QName XSD_DATE = new QName(URI_DEFAULT_SCHEMA_XSD, "date");
51 public static final QName XSD_TIME = new QName(URI_DEFAULT_SCHEMA_XSD, "time");
52 public static final QName XSD_TIMEINSTANT1999 = new QName(URI_1999_SCHEMA_XSD, "timeInstant");
53 public static final QName XSD_TIMEINSTANT2000 = new QName(URI_2000_SCHEMA_XSD, "timeInstant");
54
55 public static final QName XSD_NORMALIZEDSTRING = new QName(URI_2001_SCHEMA_XSD, "normalizedString");
56 public static final QName XSD_TOKEN = new QName(URI_2001_SCHEMA_XSD, "token");
57
58 public static final QName XSD_UNSIGNEDLONG = new QName(URI_DEFAULT_SCHEMA_XSD, "unsignedLong");
59 public static final QName XSD_UNSIGNEDINT = new QName(URI_DEFAULT_SCHEMA_XSD, "unsignedInt");
60 public static final QName XSD_UNSIGNEDSHORT = new QName(URI_DEFAULT_SCHEMA_XSD, "unsignedShort");
61 public static final QName XSD_UNSIGNEDBYTE = new QName(URI_DEFAULT_SCHEMA_XSD, "unsignedByte");
62 public static final QName XSD_POSITIVEINTEGER = new QName(URI_DEFAULT_SCHEMA_XSD, "positiveInteger");
63 public static final QName XSD_NEGATIVEINTEGER = new QName(URI_DEFAULT_SCHEMA_XSD, "negativeInteger");
64 public static final QName XSD_NONNEGATIVEINTEGER = new QName(URI_DEFAULT_SCHEMA_XSD, "nonNegativeInteger");
65 public static final QName XSD_NONPOSITIVEINTEGER = new QName(URI_DEFAULT_SCHEMA_XSD, "nonPositiveInteger");
66
67 public static final QName XSD_YEARMONTH = new QName(URI_DEFAULT_SCHEMA_XSD, "gYearMonth");
68 public static final QName XSD_MONTHDAY = new QName(URI_DEFAULT_SCHEMA_XSD, "gMonthDay");
69 public static final QName XSD_YEAR = new QName(URI_DEFAULT_SCHEMA_XSD, "gYear");
70 public static final QName XSD_MONTH = new QName(URI_DEFAULT_SCHEMA_XSD, "gMonth");
71 public static final QName XSD_DAY = new QName(URI_DEFAULT_SCHEMA_XSD, "gDay");
72 public static final QName XSD_DURATION = new QName(URI_DEFAULT_SCHEMA_XSD, "duration");
73
74 public static final QName XSD_NAME = new QName(URI_DEFAULT_SCHEMA_XSD, "Name");
75 public static final QName XSD_NCNAME = new QName(URI_DEFAULT_SCHEMA_XSD, "NCName");
76 public static final QName XSD_NMTOKEN = new QName(URI_DEFAULT_SCHEMA_XSD, "NMTOKEN");
77 public static final QName XSD_NMTOKENS = new QName(URI_DEFAULT_SCHEMA_XSD, "NMTOKENS");
78 public static final QName XSD_NOTATION = new QName(URI_DEFAULT_SCHEMA_XSD, "NOTATION");
79 public static final QName XSD_ENTITY = new QName(URI_DEFAULT_SCHEMA_XSD, "ENTITY");
80 public static final QName XSD_ENTITIES = new QName(URI_DEFAULT_SCHEMA_XSD, "ENTITIES");
81 public static final QName XSD_IDREF = new QName(URI_DEFAULT_SCHEMA_XSD, "IDREF");
82 public static final QName XSD_IDREFS = new QName(URI_DEFAULT_SCHEMA_XSD, "IDREFS");
83 public static final QName XSD_ANYURI = new QName(URI_DEFAULT_SCHEMA_XSD, "anyURI");
84 public static final QName XSD_LANGUAGE = new QName(URI_DEFAULT_SCHEMA_XSD, "language");
85 public static final QName XSD_ID = new QName(URI_DEFAULT_SCHEMA_XSD, "ID");
86 public static final QName XSD_SCHEMA = new QName(URI_DEFAULT_SCHEMA_XSD, "schema");
87
88 private QName name;
89 private QName type;
90 private ParameterMode mode;
91
92 public NamedParameter(QName name, QName type, String mode)
93 {
94 this.name = name;
95 this.type = type;
96 setMode(mode);
97 }
98
99 public NamedParameter(QName name, QName type, ParameterMode mode)
100 {
101 this.name = name;
102 this.type = type;
103 this.mode = mode;
104 }
105
106 public NamedParameter(String name, String type, ParameterMode mode)
107 {
108 this.name = new QName(name);
109 this.type = createQName(name);
110 this.mode = mode;
111 }
112
113 protected void setMode(String mode)
114 {
115 mode = mode.toLowerCase().trim();
116 if (mode.equals("in"))
117 {
118 this.mode = ParameterMode.IN;
119 }
120 else if (mode.equals("out"))
121 {
122 this.mode = ParameterMode.OUT;
123 }
124 else if (mode.equals("inout"))
125 {
126 this.mode = ParameterMode.INOUT;
127 }
128 else
129 {
130 throw new IllegalArgumentException(CoreMessages.valueIsInvalidFor(mode, "mode").toString());
131 }
132 }
133
134 public QName getName()
135 {
136 return name;
137 }
138
139 public QName getType()
140 {
141 return type;
142 }
143
144 public ParameterMode getMode()
145 {
146 return mode;
147 }
148
149 public static QName createQName(String value)
150 {
151 return new QName(URI_DEFAULT_SCHEMA_XSD, value);
152 }
153 }