protected void writeDeployTypes(PrintWriter pw, boolean hasLiteral) throws IOException {
Vector types = symbolTable.getTypes();
pw.println();
for (int i = 0; i < types.size(); ++i) {
TypeEntry type = (TypeEntry) types.elementAt(i);
// Note this same check is repeated in JavaStubWriter.
boolean process = true;
// 1) Don't register types that are base (primitive) types.
// If the baseType != null && getRefType() != null this
// is a simpleType that must be registered.
// 2) Don't register the special types for collections
// (indexed properties) or element types
// 3) Don't register types that are not referenced
// or only referenced in a literal context.
if ((type.getBaseType() != null && type.getRefType() == null) ||
type instanceof CollectionType ||
type instanceof Element ||
!type.isReferenced() ||
type.isOnlyLiteralReferenced()) {
process = false;
}
if (process) {
String namespaceURI = type.getQName().getNamespaceURI();
String localPart = type.getQName().getLocalPart();
String javaType = type.getName();
String serializerFactory;
String deserializerFactory;
String encodingStyle = "";
if (!hasLiteral) {
encodingStyle = Constants.URI_DEFAULT_SOAP_ENC;
}
if (javaType.endsWith("[]")) {
serializerFactory = "org.apache.axis.encoding.ser.ArraySerializerFactory";
deserializerFactory = "org.apache.axis.encoding.ser.ArrayDeserializerFactory";
} else if (type.getNode() != null &&
Utils.getEnumerationBaseAndValues(
type.getNode(), symbolTable) != null) {
serializerFactory = "org.apache.axis.encoding.ser.EnumSerializerFactory";
deserializerFactory = "org.apache.axis.encoding.ser.EnumDeserializerFactory";
} else if (type.isSimpleType()) {
serializerFactory = "org.apache.axis.encoding.ser.SimpleNonPrimitiveSerializerFactory";
deserializerFactory = "org.apache.axis.encoding.ser.SimpleDeserializerFactory";
} else if (type.getBaseType() != null) {
serializerFactory = "org.apache.axis.encoding.ser.SimplePrimitiveSerializerFactory";
deserializerFactory = "org.apache.axis.encoding.ser.SimpleDeserializerFactory";
} else {
serializerFactory = "org.apache.axis.encoding.ser.BeanSerializerFactory";
deserializerFactory = "org.apache.axis.encoding.ser.BeanDeserializerFactory";