You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by mv...@apache.org on 2006/11/02 15:14:25 UTC
svn commit: r470379 -
/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/
Author: mvescovi
Date: Thu Nov 2 07:14:23 2006
New Revision: 470379
URL: http://svn.apache.org/viewvc?view=rev&rev=470379
Log:
Adding initial anonymous sequence support and scoped dotted notation.
Added:
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Scope.java (with props)
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Visitor.java (with props)
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/VisitorBase.java (with props)
Modified:
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/AttributeVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstrTypeSpecVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DefinitionVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/EnumVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ExceptionVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/FixedVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ModuleVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamTypeSpecVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PortTypeVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PrimitiveTypesVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ScopedNameVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SimpleTypeSpecVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StructVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TemplateTypeSpecVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeDclVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeSpecVisitorBase.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/UnionVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/AttributeVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/AttributeVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/AttributeVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/AttributeVisitor.java Thu Nov 2 07:14:23 2006
@@ -54,7 +54,7 @@
import org.apache.yoko.wsdl.CorbaConstants;
import org.apache.yoko.wsdl.CorbaTypeImpl;
-public class AttributeVisitor implements ASTVisitor {
+public class AttributeVisitor extends VisitorBase {
private static final String GETTER_PREFIX = "_get_";
private static final String SETTER_PREFIX = "_set_";
@@ -64,24 +64,20 @@
private static final String PARAM_NAME = "_arg";
private static final String RETURN_PARAM_NAME = "return";
- private XmlSchema schema;
- private XmlSchemaCollection schemas;
- private TypeMappingType typeMap;
private Definition definition;
private ExtensionRegistry extReg;
private PortType portType;
private Binding binding;
- public AttributeVisitor(Definition wsdlDefinition,
+ public AttributeVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
+ XmlSchema xmlSchema,
+ TypeMappingType typeMap,
+ Definition wsdlDefinition,
TypesVisitor typesVisitor,
PortType wsdlPortType,
Binding wsdlBinding) {
-
- // REVISIT: there has to be a better way to access schema and schemas
- schema = typesVisitor.getSchema();
- schemas = typesVisitor.getSchemas();
- typeMap = typesVisitor.getCorbaTypeMapping();
- //
+ super(scope, xmlSchemas, xmlSchema, typeMap);
definition = wsdlDefinition;
extReg = definition.getExtensionRegistry();
portType = wsdlPortType;
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstVisitor.java Thu Nov 2 07:14:23 2006
@@ -30,12 +30,13 @@
import org.apache.ws.commons.schema.XmlSchemaCollection;
import org.apache.ws.commons.schema.XmlSchemaType;
-public class ConstVisitor extends TypesVisitorBase {
+public class ConstVisitor extends VisitorBase {
- public ConstVisitor(XmlSchemaCollection xmlSchemas,
+ public ConstVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMappingType) {
- super(xmlSchemas, xmlSchema, typeMappingType);
+ super(scope, xmlSchemas, xmlSchema, typeMappingType);
}
public static boolean accept(AST node) {
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstrTypeSpecVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstrTypeSpecVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstrTypeSpecVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ConstrTypeSpecVisitor.java Thu Nov 2 07:14:23 2006
@@ -26,19 +26,13 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
-public class ConstrTypeSpecVisitor extends TypeSpecVisitorBase {
+public class ConstrTypeSpecVisitor extends VisitorBase {
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
-
- public ConstrTypeSpecVisitor(XmlSchemaCollection xmlSchemas,
+ public ConstrTypeSpecVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap) {
- super(xmlSchemas, xmlSchema, corbaTypeMap);
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
}
public static boolean accept(AST node) {
@@ -54,18 +48,18 @@
// | <union_type>
// | <enum_type>
- TypeSpecVisitor visitor = null;
+ Visitor visitor = null;
if (StructVisitor.accept(node)) {
- visitor = new StructVisitor(schemas, schema, typeMap);
+ visitor = new StructVisitor(getScope(), schemas, schema, typeMap);
}
if (UnionVisitor.accept(node)) {
- visitor = new UnionVisitor(schemas, schema, typeMap);
+ visitor = new UnionVisitor(getScope(), schemas, schema, typeMap);
}
if (EnumVisitor.accept(node)) {
- visitor = new EnumVisitor(schemas, schema, typeMap);
+ visitor = new EnumVisitor(getScope(), schemas, schema, typeMap);
}
visitor.visit(node);
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DefinitionVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DefinitionVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DefinitionVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DefinitionVisitor.java Thu Nov 2 07:14:23 2006
@@ -28,25 +28,19 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
-public class DefinitionVisitor extends TypesVisitorBase {
+public class DefinitionVisitor extends VisitorBase {
private Definition definition;
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
private TypesVisitor typesVisitor;
- private String scope;
- public DefinitionVisitor(Definition wsdlDefinition,
+ public DefinitionVisitor(Scope scope,
+ Definition wsdlDefinition,
TypesVisitor typeVisitor,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap) {
- super(xmlSchemas, xmlSchema, corbaTypeMap);
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
definition = wsdlDefinition;
typesVisitor = typeVisitor;
}
@@ -67,7 +61,8 @@
break;
}
case IDLTokenTypes.LITERAL_module: {
- ModuleVisitor moduleVisitor = new ModuleVisitor(definition,
+ ModuleVisitor moduleVisitor = new ModuleVisitor(getScope(),
+ definition,
typesVisitor,
schemas,
schema,
@@ -76,7 +71,8 @@
break;
}
case IDLTokenTypes.LITERAL_interface: {
- PortTypeVisitor portTypeVisitor = new PortTypeVisitor(schemas,
+ PortTypeVisitor portTypeVisitor = new PortTypeVisitor(getScope(),
+ schemas,
schema,
typeMap,
definition,
@@ -85,21 +81,24 @@
break;
}
case IDLTokenTypes.LITERAL_exception: {
- ExceptionVisitor exceptionVisitor = new ExceptionVisitor(schemas,
+ ExceptionVisitor exceptionVisitor = new ExceptionVisitor(getScope(),
+ schemas,
schema,
typeMap);
exceptionVisitor.visit(node);
break;
}
case IDLTokenTypes.LITERAL_const: {
- ConstVisitor constVisitor = new ConstVisitor(schemas,
+ ConstVisitor constVisitor = new ConstVisitor(getScope(),
+ schemas,
schema,
typeMap);
constVisitor.visit(node);
break;
}
default: {
- TypeDclVisitor typeDclVisitor = new TypeDclVisitor(schemas,
+ TypeDclVisitor typeDclVisitor = new TypeDclVisitor(getScope(),
+ schemas,
schema,
typeMap,
typesVisitor);
@@ -107,13 +106,5 @@
}
}
- }
-
- public void setScope(String newScope) {
- scope = newScope;
- }
-
- public String getScope() {
- return scope;
}
}
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/EnumVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/EnumVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/EnumVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/EnumVisitor.java Thu Nov 2 07:14:23 2006
@@ -39,12 +39,13 @@
import org.apache.yoko.wsdl.CorbaConstants;
import org.apache.yoko.wsdl.CorbaTypeImpl;
-public class EnumVisitor extends TypeSpecVisitorBase {
+public class EnumVisitor extends VisitorBase {
- public EnumVisitor(XmlSchemaCollection xmlSchemas,
+ public EnumVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMappingType) {
- super(xmlSchemas, xmlSchema, typeMappingType);
+ super(scope, xmlSchemas, xmlSchema, typeMappingType);
}
public static boolean accept(AST node) {
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ExceptionVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ExceptionVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ExceptionVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ExceptionVisitor.java Thu Nov 2 07:14:23 2006
@@ -36,12 +36,13 @@
import org.apache.yoko.wsdl.CorbaConstants;
-public class ExceptionVisitor extends TypesVisitorBase {
+public class ExceptionVisitor extends VisitorBase {
- public ExceptionVisitor(XmlSchemaCollection xmlSchemas,
+ public ExceptionVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMappingType) {
- super(xmlSchemas, xmlSchema, typeMappingType);
+ super(scope, xmlSchemas, xmlSchema, typeMappingType);
}
public static boolean accept(AST node) {
@@ -130,7 +131,6 @@
// add exception to corba typemap
- TypeMappingType typeMap = getCorbaTypeMap();
typeMap.getStructOrExceptionOrUnion().add(exception);
setSchemaType(complexType);
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/FixedVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/FixedVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/FixedVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/FixedVisitor.java Thu Nov 2 07:14:23 2006
@@ -36,12 +36,13 @@
import org.apache.yoko.wsdl.CorbaConstants;
-public class FixedVisitor extends TypeSpecVisitorBase {
+public class FixedVisitor extends VisitorBase {
- public FixedVisitor(XmlSchemaCollection xmlSchemas,
- XmlSchema xmlSchema,
- TypeMappingType typeMappingType) {
- super(xmlSchemas, xmlSchema, typeMappingType);
+ public FixedVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
+ XmlSchema xmlSchema,
+ TypeMappingType typeMappingType) {
+ super(scope, xmlSchemas, xmlSchema, typeMappingType);
}
public static boolean accept(AST node) {
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ModuleVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ModuleVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ModuleVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ModuleVisitor.java Thu Nov 2 07:14:23 2006
@@ -29,24 +29,20 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
-public class ModuleVisitor implements ASTVisitor {
+public class ModuleVisitor extends VisitorBase {
private Definition definition;
private TypesVisitor typesVisitor;
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
- public ModuleVisitor(Definition wsdlDefinition,
+ public ModuleVisitor(Scope scope,
+ Definition wsdlDefinition,
TypesVisitor typeVisitor,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap) {
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
definition = wsdlDefinition;
typesVisitor = typeVisitor;
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
}
public void visit(AST node) {
@@ -56,13 +52,13 @@
AST definitionNode = identifierNode.getNextSibling();
while (definitionNode != null) {
- DefinitionVisitor definitionVisitor = new DefinitionVisitor(definition,
+ DefinitionVisitor definitionVisitor = new DefinitionVisitor(new Scope(getScope(), identifierNode.toString()),
+ definition,
typesVisitor,
schemas,
schema,
typeMap);
- definitionVisitor.setScope(identifierNode.toString());
definitionVisitor.visit(definitionNode);
definitionNode = definitionNode.getNextSibling();
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java Thu Nov 2 07:14:23 2006
@@ -54,7 +54,7 @@
import org.apache.yoko.wsdl.CorbaConstants;
import org.apache.yoko.wsdl.CorbaTypeImpl;
-public class OperationVisitor implements ASTVisitor {
+public class OperationVisitor extends VisitorBase {
private static final String REQUEST_SUFFIX = "Request";
private static final String RESPONSE_SUFFIX = "Response";
@@ -64,10 +64,6 @@
private static final String INOUT_PARAMETER = "inoutparameter";
private static final String RETURN_PARAMETER = "return";
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
-
private Definition definition;
private TypesVisitor typesVisitor;
private ExtensionRegistry extReg;
@@ -82,16 +78,15 @@
private OperationType corbaOperation;
- public OperationVisitor(XmlSchemaCollection xmlSchemas,
+ public OperationVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMapRef,
Definition wsdlDefinition,
TypesVisitor typeVisitor,
PortType wsdlPortType,
Binding wsdlBinding) {
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = typeMapRef;
+ super(scope, xmlSchemas, xmlSchema, typeMapRef);
definition = wsdlDefinition;
typesVisitor = typeVisitor;
extReg = definition.getExtensionRegistry();
@@ -164,7 +159,8 @@
// <parameter_dcls>
node = node.getNextSibling();
while (ParamDclVisitor.accept(node)) {
- ParamDclVisitor visitor = new ParamDclVisitor(schemas,
+ ParamDclVisitor visitor = new ParamDclVisitor(getScope(),
+ schemas,
schema,
typeMap,
inputWrappingSequence,
@@ -330,7 +326,7 @@
// nothing to do here, move along
return;
} else {
- ParamTypeSpecVisitor visitor = new ParamTypeSpecVisitor(schemas, schema, typeMap);
+ ParamTypeSpecVisitor visitor = new ParamTypeSpecVisitor(getScope(), schemas, schema, typeMap);
visitor.visit(node);
XmlSchemaType schemaType = visitor.getSchemaType();
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamDclVisitor.java Thu Nov 2 07:14:23 2006
@@ -34,25 +34,20 @@
import org.apache.yoko.wsdl.CorbaTypeImpl;
-public class ParamDclVisitor extends TypeSpecVisitorBase {
+public class ParamDclVisitor extends VisitorBase {
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
private XmlSchemaSequence inWrappingSequence;
private XmlSchemaSequence outWrappingSequence;
private OperationType corbaOperation;
- public ParamDclVisitor(XmlSchemaCollection xmlSchemas,
+ public ParamDclVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap,
XmlSchemaSequence inWrapSeq,
XmlSchemaSequence outWrapSeq,
OperationType corbaOp) {
- super(xmlSchemas, xmlSchema, corbaTypeMap);
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
inWrappingSequence = inWrapSeq;
outWrappingSequence = outWrapSeq;
corbaOperation = corbaOp;
@@ -78,7 +73,7 @@
AST typeNode = node.getFirstChild();
AST nameNode = TypesUtils.getPrimitiveCorbaTypeNameNode(typeNode);
- ParamTypeSpecVisitor visitor = new ParamTypeSpecVisitor(schemas, schema, typeMap);
+ ParamTypeSpecVisitor visitor = new ParamTypeSpecVisitor(getScope(), schemas, schema, typeMap);
visitor.visit(typeNode);
XmlSchemaType schemaType = visitor.getSchemaType();
CorbaTypeImpl corbaType = visitor.getCorbaType();
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamTypeSpecVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamTypeSpecVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamTypeSpecVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ParamTypeSpecVisitor.java Thu Nov 2 07:14:23 2006
@@ -26,19 +26,13 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
-public class ParamTypeSpecVisitor extends TypeSpecVisitorBase {
+public class ParamTypeSpecVisitor extends VisitorBase {
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
-
- public ParamTypeSpecVisitor(XmlSchemaCollection xmlSchemas,
+ public ParamTypeSpecVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap) {
- super(xmlSchemas, xmlSchema, corbaTypeMap);
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
}
public void visit(AST node) {
@@ -48,21 +42,21 @@
// | <scoped_name>
- TypeSpecVisitor visitor = null;
+ Visitor visitor = null;
if (PrimitiveTypesVisitor.accept(node)) {
// base_type_spec
- visitor = new PrimitiveTypesVisitor(schemas, schema, typeMap);
+ visitor = new PrimitiveTypesVisitor(getScope(), schemas, schema, typeMap);
} else if (StringVisitor.accept(node)) {
// string_type_spec
// wstring_type_spec
- visitor = new StringVisitor(schemas, schema, typeMap, false);
+ visitor = new StringVisitor(getScope(), schemas, schema, typeMap, false);
} else if (ScopedNameVisitor.accept(schemas, schema, node)) {
// scoped_name
- visitor = new ScopedNameVisitor(schemas, schema, typeMap);
+ visitor = new ScopedNameVisitor(getScope(), schemas, schema, typeMap);
}
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PortTypeVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PortTypeVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PortTypeVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PortTypeVisitor.java Thu Nov 2 07:14:23 2006
@@ -41,7 +41,7 @@
import org.apache.yoko.wsdl.CorbaConstants;
-public class PortTypeVisitor implements ASTVisitor {
+public class PortTypeVisitor extends VisitorBase {
Definition definition;
ExtensionRegistry extReg;
@@ -50,18 +50,13 @@
TypesVisitor typesVisitor;
String module;
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
-
- public PortTypeVisitor(XmlSchemaCollection xmlSchemas,
+ public PortTypeVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap,
Definition wsdlDefinition,
TypesVisitor typeVisitor) {
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
definition = wsdlDefinition;
typesVisitor = typeVisitor;
extReg = definition.getExtensionRegistry();
@@ -105,6 +100,8 @@
interfaceName = module + "." + interfaceName;
}
+ Scope interfaceScope = new Scope(getScope(), interfaceName);
+
portType = definition.createPortType();
portType.setQName(new QName(definition.getTargetNamespace(), interfaceName));
portType.setUndefined(false);
@@ -115,29 +112,37 @@
while (exportNode != null) {
if (TypeDclVisitor.accept(exportNode)) {
- TypeDclVisitor visitor = new TypeDclVisitor(schemas,
+ TypeDclVisitor visitor = new TypeDclVisitor(interfaceScope,
+ schemas,
schema,
typeMap,
typesVisitor);
visitor.visit(exportNode);
} else if (ConstVisitor.accept(exportNode)) {
- ConstVisitor visitor = new ConstVisitor(schemas,
+ ConstVisitor visitor = new ConstVisitor(interfaceScope,
+ schemas,
schema,
typeMap);
visitor.visit(exportNode);
} else if (ExceptionVisitor.accept(exportNode)) {
- ExceptionVisitor visitor = new ExceptionVisitor(schemas,
+ ExceptionVisitor visitor = new ExceptionVisitor(interfaceScope,
+ schemas,
schema,
typeMap);
visitor.visit(exportNode);
} else if (AttributeVisitor.accept(exportNode)) {
- AttributeVisitor attributeVisitor = new AttributeVisitor(definition,
+ AttributeVisitor attributeVisitor = new AttributeVisitor(interfaceScope,
+ schemas,
+ schema,
+ typeMap,
+ definition,
typesVisitor,
portType,
binding);
attributeVisitor.visit(exportNode);
} else if (OperationVisitor.accept(schemas, schema, exportNode)) {
- OperationVisitor visitor = new OperationVisitor(schemas,
+ OperationVisitor visitor = new OperationVisitor(interfaceScope,
+ schemas,
schema,
typeMap,
definition,
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PrimitiveTypesVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PrimitiveTypesVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PrimitiveTypesVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/PrimitiveTypesVisitor.java Thu Nov 2 07:14:23 2006
@@ -29,7 +29,7 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
-public class PrimitiveTypesVisitor extends TypeSpecVisitorBase {
+public class PrimitiveTypesVisitor extends VisitorBase {
private static final List<Integer> PRIMITIVE_TYPES = new ArrayList<Integer>();
@@ -49,10 +49,11 @@
PRIMITIVE_TYPES.add(new Integer(IDLTokenTypes.LITERAL_any));
}
- public PrimitiveTypesVisitor(XmlSchemaCollection xmlSchemas,
+ public PrimitiveTypesVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMapRef) {
- super(xmlSchemas, xmlSchema, typeMapRef);
+ super(scope, xmlSchemas, xmlSchema, typeMapRef);
}
public static boolean accept(AST node) {
Added: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Scope.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Scope.java?view=auto&rev=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Scope.java (added)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Scope.java Thu Nov 2 07:14:23 2006
@@ -0,0 +1,73 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+
+package org.apache.yoko.tools.processors.idl;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import antlr.collections.AST;
+
+public final class Scope {
+
+ private final static String SEPARATOR = ".";
+ private List<String> scope;
+
+ public Scope() {
+ scope = new ArrayList<String>();
+ }
+
+ public Scope(Scope containingScope) {
+ scope = new ArrayList<String>(containingScope.scope);
+ }
+
+ public Scope(Scope containingScope, String str) {
+ scope = new ArrayList<String>(containingScope.scope);
+ scope.add(str);
+ }
+
+ public Scope(Scope containingScope, AST node) {
+ scope = new ArrayList<String>(containingScope.scope);
+ if (node != null) {
+ scope.add(node.toString());
+ }
+ }
+
+ public String tail() {
+ int size = scope.size();
+ if (size > 0) {
+ return scope.get(size - 1);
+ } else {
+ return "";
+ }
+ }
+
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+ Iterator<String> it = scope.iterator();
+ while (it.hasNext()) {
+ result.append(it.next());
+ if (it.hasNext()) {
+ result.append(SEPARATOR);
+ }
+ }
+ return result.toString();
+ }
+}
Propchange: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Scope.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ScopedNameVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ScopedNameVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ScopedNameVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ScopedNameVisitor.java Thu Nov 2 07:14:23 2006
@@ -26,19 +26,13 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
-public class ScopedNameVisitor extends TypeSpecVisitorBase {
+public class ScopedNameVisitor extends VisitorBase {
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
-
- public ScopedNameVisitor(XmlSchemaCollection xmlSchemas,
+ public ScopedNameVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap) {
- super(xmlSchemas, xmlSchema, corbaTypeMap);
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
}
public static boolean accept(XmlSchemaCollection schemas, XmlSchema schema, AST node) {
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java Thu Nov 2 07:14:23 2006
@@ -23,6 +23,7 @@
import antlr.collections.AST;
+import org.apache.schemas.yoko.bindings.corba.Anonsequence;
import org.apache.schemas.yoko.bindings.corba.Sequence;
import org.apache.schemas.yoko.bindings.corba.TypeMappingType;
@@ -34,13 +35,15 @@
import org.apache.ws.commons.schema.XmlSchemaType;
import org.apache.yoko.wsdl.CorbaConstants;
+import org.apache.yoko.wsdl.CorbaTypeImpl;
-public class SequenceVisitor extends TypeSpecVisitorBase {
+public class SequenceVisitor extends VisitorBase {
- public SequenceVisitor(XmlSchemaCollection xmlSchemas,
+ public SequenceVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMapRef) {
- super(xmlSchemas, xmlSchema, typeMapRef);
+ super(scope, xmlSchemas, xmlSchema, typeMapRef);
}
public static boolean accept(AST node) {
@@ -51,52 +54,125 @@
}
public void visit(AST seq) {
- //AST seq = node.getFirstChild();
- AST node2 = seq.getFirstChild();
- XmlSchemaType stype = TypesUtils.findType(schemas, schema, node2);
- if (stype == null) {
- //System.err.println("Couldn't find type: " + node2);
+ // <sequence_type> ::= "sequence" "<" <simple_type_spec> "," <positive_int_const> ">"
+ // | "sequence" "<" <simple_type_spec> ">"
+
+
+ AST simpleTypeSpecNode = seq.getFirstChild();
+ AST boundNode = simpleTypeSpecNode.getNextSibling();
+ AST identifierNode = seq.getNextSibling();
+
+ SimpleTypeSpecVisitor visitor = new SimpleTypeSpecVisitor(new Scope(getScope(), identifierNode),
+ schemas,
+ schema,
+ typeMap);
+ visitor.visit(simpleTypeSpecNode);
+
+ XmlSchemaType stype = visitor.getSchemaType();
+ CorbaTypeImpl ctype = visitor.getCorbaType();
+
+
+ long bound = -1;
+ if (boundNode != null) {
+ bound = Long.parseLong(boundNode.toString());
+ }
+
+ String name = null;
+ XmlSchemaType anonSchemaType = null;
+ if (identifierNode == null) {
+ // anonymous type
+ Integer id = 0;
+ do {
+ id++;
+ name = "_" + id.toString() + "_" + getScope().tail();
+ anonSchemaType = schema.getTypeByName(new QName(schema.getTargetNamespace(),
+ name));
+ } while (anonSchemaType != null);
} else {
- long bound = -1;
- if (node2.getNextSibling() != null) {
- bound = Long.parseLong(node2.getNextSibling().toString());
- }
- node2 = seq.getNextSibling();
- XmlSchemaComplexType ct = new XmlSchemaComplexType(getSchema());
- String name = node2.toString();
- ct.setName(name);
- XmlSchemaSequence sequence = new XmlSchemaSequence();
- XmlSchemaElement el = new XmlSchemaElement();
- el.setName("item");
- el.setMinOccurs(0);
- if (bound != -1) {
- el.setMaxOccurs(bound);
- } else {
- el.setMaxOccurs(Long.MAX_VALUE);
- }
- el.setSchemaTypeName(stype.getQName());
- sequence.getItems().add(el);
- ct.setParticle(sequence);
-
- //create the corba sequence
- Sequence corbaSeq = new Sequence();
- if (bound == -1) {
- bound = 0;
- }
- corbaSeq.setBound(bound);
- corbaSeq.setQName(new QName(typeMap.getTargetNamespace(), name));
- corbaSeq.setType(ct.getQName());
- corbaSeq.setElemtype(TypesUtils.findCorbaType(getCorbaTypeMap(), stype.getQName()).getQName());
- corbaSeq.setRepositoryID(CorbaConstants.REPO_STRING
- + name
- + CorbaConstants.IDL_VERSION);
-
- // add xmlschema:sequence
- setSchemaType(ct);
-
- // add corba:sequence
- setCorbaType(corbaSeq);
+ name = identifierNode.toString();
}
+
+ XmlSchemaType schemaType = generateSchemaType(stype, name, bound);
+
+ CorbaTypeImpl corbaType = null;
+ if (identifierNode == null) {
+ corbaType = generateCorbaAnonsequence(ctype,
+ schemaType,
+ name,
+ bound);
+ } else {
+ corbaType = generateCorbaSequence(ctype,
+ schemaType,
+ name,
+ bound);
+ }
+
+
+ setSchemaType(schemaType);
+ setCorbaType(corbaType);
+ }
+
+ private XmlSchemaType generateSchemaType(XmlSchemaType stype, String name, long bound) {
+ //XmlSchemaComplexType ct = new XmlSchemaComplexType(getSchema());
+ XmlSchemaComplexType ct = new XmlSchemaComplexType(schema);
+ ct.setName(name);
+ XmlSchemaSequence sequence = new XmlSchemaSequence();
+ XmlSchemaElement el = new XmlSchemaElement();
+ el.setName("item");
+ el.setMinOccurs(0);
+ if (bound != -1) {
+ el.setMaxOccurs(bound);
+ } else {
+ el.setMaxOccurs(Long.MAX_VALUE);
+ }
+ el.setSchemaTypeName(stype.getQName());
+ sequence.getItems().add(el);
+ ct.setParticle(sequence);
+ return ct;
+ }
+
+ private CorbaTypeImpl generateCorbaSequence(CorbaTypeImpl ctype,
+ XmlSchemaType schemaType,
+ String name,
+ long bound) {
+ //create the corba sequence
+ Sequence corbaSeq = new Sequence();
+ if (bound == -1) {
+ bound = 0;
+ }
+ corbaSeq.setBound(bound);
+ corbaSeq.setQName(new QName(typeMap.getTargetNamespace(), name));
+ corbaSeq.setType(schemaType.getQName());
+ corbaSeq.setElemtype(ctype.getQName());
+ corbaSeq.setRepositoryID(CorbaConstants.REPO_STRING
+ + name
+ + CorbaConstants.IDL_VERSION);
+
+ return corbaSeq;
+ }
+
+ private Anonsequence generateCorbaAnonsequence(CorbaTypeImpl ctype,
+ XmlSchemaType schemaType,
+ String name,
+ long bound) {
+ // create corba anonsequence
+ Anonsequence result = new Anonsequence();
+ if (bound == -1) {
+ bound = 0;
+ }
+ result.setBound(bound);
+ result.setQName(new QName(typeMap.getTargetNamespace(), name));
+ result.setType(schemaType.getQName());
+ result.setElemtype(ctype.getQName());
+
+ // add schemaType
+ schema.getItems().add(schemaType);
+ schema.addType(schemaType);
+
+ // add corbaType
+ typeMap.getStructOrExceptionOrUnion().add(result);
+
+ return result;
}
}
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SimpleTypeSpecVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SimpleTypeSpecVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SimpleTypeSpecVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SimpleTypeSpecVisitor.java Thu Nov 2 07:14:23 2006
@@ -26,19 +26,13 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
-public class SimpleTypeSpecVisitor extends TypeSpecVisitorBase {
+public class SimpleTypeSpecVisitor extends VisitorBase {
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
-
- public SimpleTypeSpecVisitor(XmlSchemaCollection xmlSchemas,
+ public SimpleTypeSpecVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap) {
- super(xmlSchemas, xmlSchema, corbaTypeMap);
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
}
public static boolean accept(AST node) {
@@ -54,20 +48,20 @@
// | <scoped_name>
- TypeSpecVisitor visitor = null;
+ Visitor visitor = null;
if (PrimitiveTypesVisitor.accept(node)) {
// simple_type_spec - base_type_spec
- visitor = new PrimitiveTypesVisitor(schemas, schema, typeMap);
+ visitor = new PrimitiveTypesVisitor(getScope(), schemas, schema, typeMap);
} else if (TemplateTypeSpecVisitor.accept(node)) {
// simple_type_spec - template_type_spec
- visitor = new TemplateTypeSpecVisitor(schemas, schema, typeMap);
+ visitor = new TemplateTypeSpecVisitor(getScope(), schemas, schema, typeMap);
} else if (ScopedNameVisitor.accept(schemas, schema, node)) {
// simple_type_spec - scoped_name
- visitor = new ScopedNameVisitor(schemas, schema, typeMap);
+ visitor = new ScopedNameVisitor(getScope(), schemas, schema, typeMap);
}
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.java Thu Nov 2 07:14:23 2006
@@ -39,23 +39,24 @@
import org.apache.yoko.wsdl.CorbaConstants;
import org.apache.yoko.wsdl.CorbaTypeImpl;
-public class StringVisitor extends TypeSpecVisitorBase {
+public class StringVisitor extends VisitorBase {
private AST stringNode;
private AST boundNode;
- private AST typeNameNode;
+ private AST identifierNode;
private String stringName;
private boolean declarationMode;
- public StringVisitor(XmlSchemaCollection xmlSchemas,
+ public StringVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMappingType,
boolean mode) {
- super(xmlSchemas, xmlSchema, typeMappingType);
+ super(scope, xmlSchemas, xmlSchema, typeMappingType);
stringNode = null;
boundNode = null;
- typeNameNode = null;
+ identifierNode = null;
stringName = null;
declarationMode = mode;
}
@@ -77,8 +78,8 @@
stringNode = node;
boundNode = stringNode.getFirstChild();
- typeNameNode = stringNode.getNextSibling();
- stringName = new String(typeNameNode.toString());
+ identifierNode = stringNode.getNextSibling();
+ stringName = getIdentifier(identifierNode);
if (boundNode != null) {
// bounded string/wstring
@@ -149,7 +150,8 @@
}
private void visitUnboundedString() {
- if (declarationMode) {
+ if (declarationMode
+ && stringName != null) {
// xmlschema:simpleType
XmlSchemaSimpleType simpleType = new XmlSchemaSimpleType(schema);
simpleType.setName(stringName);
@@ -180,7 +182,6 @@
setCorbaType(alias);
} else {
-
setSchemaType(schemas.getTypeByQName(Constants.XSD_STRING));
CorbaTypeImpl corbaString = new CorbaTypeImpl();
@@ -194,11 +195,47 @@
// should never get here
throw new RuntimeException("StringVisitor attempted to visit an invalid node");
}
- //corbaString.setName(Constants.XSD_STRING.getLocalPart());
corbaString.setType(Constants.XSD_STRING);
+
setCorbaType(corbaString);
-
}
}
+ private String getIdentifier(AST typeNode) {
+ String result = null;
+ if (identifierNode != null) {
+ String identifierName = identifierNode.toString();
+ if (isValidIdentifier(identifierName)) {
+ result = identifierName;
+ }
+ }
+ return result;
+ }
+
+ private boolean isValidIdentifier(String id) {
+ boolean result = true;
+ // From the CORBA IDL spec (section 3.2.3):
+ // An identifier is an arbitrarily long sequence of ASCII alphabetic, digit,
+ // and underscore ("_") characters. The first character must be an ASCII
+ // alphabetic character. All characters are significant.
+ //
+ // See section 3.2.3.1 for escaped identifiers (that start with a "_")
+ //
+ if (!Character.isLetter(id.charAt(0))) {
+ result = false;
+ }
+ if (id.charAt(0) == '_') {
+ result = false;
+ }
+ int index = 1;
+ while (result && index < id.length()) {
+ char cur = id.charAt(index);
+ if (!Character.isLetterOrDigit(cur)
+ || cur == '_') {
+ result = false;
+ }
+ index++;
+ }
+ return result;
+ }
}
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StructVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StructVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StructVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StructVisitor.java Thu Nov 2 07:14:23 2006
@@ -37,12 +37,13 @@
import org.apache.yoko.wsdl.CorbaConstants;
import org.apache.yoko.wsdl.CorbaTypeImpl;
-public class StructVisitor extends TypeSpecVisitorBase {
+public class StructVisitor extends VisitorBase {
- public StructVisitor(XmlSchemaCollection xmlSchemas,
+ public StructVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMappingType) {
- super(xmlSchemas, xmlSchema, typeMappingType);
+ super(scope, xmlSchemas, xmlSchema, typeMappingType);
}
public static boolean accept(AST node) {
@@ -57,10 +58,10 @@
// <member_list> ::= <member>+
// <member> ::= <type_spec> <declarators> ";"
- AST structNode = node.getFirstChild();
+ AST identifierNode = node.getFirstChild();
// xmlschema:struct
- String structName = structNode.toString();
+ String structName = identifierNode.toString();
XmlSchemaComplexType complexType = new XmlSchemaComplexType(schema);
complexType.setName(structName);
XmlSchemaSequence sequence = new XmlSchemaSequence();
@@ -77,7 +78,7 @@
// struct members
- AST memberTypeNode = structNode.getNextSibling();
+ AST memberTypeNode = identifierNode.getNextSibling();
while (memberTypeNode != null) {
AST memberNode = memberTypeNode.getNextSibling();
@@ -86,9 +87,9 @@
String memberName = memberNode.toString();
member.setName(memberName);
// type
- XmlSchemaType type = TypesUtils.findType(schemas, schema, memberTypeNode);
- member.setSchemaType(type);
- member.setSchemaTypeName(type.getQName());
+ XmlSchemaType schemaType = TypesUtils.findType(schemas, schema, memberTypeNode);
+ member.setSchemaType(schemaType);
+ member.setSchemaTypeName(schemaType.getQName());
sequence.getItems().add(member);
@@ -96,19 +97,54 @@
// corba:member
MemberType memberType = new MemberType();
memberType.setName(memberName);
- QName idlType = TypesUtils.findCorbaType(typeMap, type.getQName()).getQName();
+ QName idlType = TypesUtils.findCorbaType(typeMap, schemaType.getQName()).getQName();
memberType.setIdltype(idlType);
struct.getMember().add(memberType);
-
-
+
memberTypeNode = memberNode.getNextSibling();
+
+
+
+// XmlSchemaType schemaType = null;
+// CorbaTypeImpl corbaType = null;
+// try {
+// TypesVisitor visitor = new TypesVisitor(new Scope(getScope(), identifierNode),
+// schemas,
+// schema,
+// typeMap);
+// visitor.visit(memberTypeNode);
+//
+// schemaType = visitor.getSchemaType();
+// corbaType = visitor.getCorbaType();
+//
+// } catch (Exception ex) {
+//
+// }
+//
+// // xmlschema:member
+// XmlSchemaElement member = new XmlSchemaElement();
+// String memberName = memberNode.toString();
+// member.setName(memberName);
+// member.setSchemaType(schemaType);
+// member.setSchemaTypeName(schemaType.getQName());
+//
+// sequence.getItems().add(member);
+//
+//
+// // corba:member
+// MemberType memberType = new MemberType();
+// memberType.setName(memberName);
+// memberType.setIdltype(corbaType.getQName());
+// struct.getMember().add(memberType);
+//
+// memberTypeNode = memberNode.getNextSibling();
}
// declaration phase
XmlSchemaType schemaType = complexType;
CorbaTypeImpl corbaType = struct;
DeclaratorVisitor declaratorVisitor = new DeclaratorVisitor(schemas, schema, typeMap);
- declaratorVisitor.visit(structNode, schemaType, corbaType);
+ declaratorVisitor.visit(identifierNode, schemaType, corbaType);
// REVISIT: are there assignment needed?
setSchemaType(complexType);
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TemplateTypeSpecVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TemplateTypeSpecVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TemplateTypeSpecVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TemplateTypeSpecVisitor.java Thu Nov 2 07:14:23 2006
@@ -26,19 +26,13 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
-public class TemplateTypeSpecVisitor extends TypeSpecVisitorBase {
-
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
+public class TemplateTypeSpecVisitor extends VisitorBase {
- public TemplateTypeSpecVisitor(XmlSchemaCollection xmlSchemas,
+ public TemplateTypeSpecVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap) {
- super(xmlSchemas, xmlSchema, corbaTypeMap);
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
}
public static boolean accept(AST node) {
@@ -56,18 +50,18 @@
// | <fixed_pt_type>
- TypeSpecVisitor visitor = null;
+ Visitor visitor = null;
if (SequenceVisitor.accept(node)) {
// <sequence_type>
- visitor = new SequenceVisitor(schemas, schema, typeMap);
+ visitor = new SequenceVisitor(getScope(), schemas, schema, typeMap);
} else if (StringVisitor.accept(node)) {
// <string_type>
// <wstring_type>
- visitor = new StringVisitor(schemas, schema, typeMap, true);
+ visitor = new StringVisitor(getScope(), schemas, schema, typeMap, true);
} else if (FixedVisitor.accept(node)) {
// <fixed_pt_type>
- visitor = new FixedVisitor(schemas, schema, typeMap);
+ visitor = new FixedVisitor(getScope(), schemas, schema, typeMap);
}
visitor.visit(node);
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeDclVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeDclVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeDclVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeDclVisitor.java Thu Nov 2 07:14:23 2006
@@ -26,22 +26,16 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
-public class TypeDclVisitor {
+public class TypeDclVisitor extends VisitorBase {
-// private Definition definition;
- private XmlSchemaCollection schemas;
- private XmlSchema schema;
- private TypeMappingType typeMap;
private TypesVisitor typesVisitor;
- public TypeDclVisitor(XmlSchemaCollection xmlSchemas,
+ public TypeDclVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap,
TypesVisitor typesVisitorRef) {
-// definition = wsdlDefinition;
- schemas = xmlSchemas;
- schema = xmlSchema;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
typesVisitor = typesVisitorRef;
}
@@ -62,20 +56,20 @@
// | "native" <simple_declarator>
// | <constr_forward_decl>
- TypeSpecVisitor visitor = null;
+ Visitor visitor = null;
if (TypedefVisitor.accept(node)) {
// "typedef" <type_declarator>
- visitor = new TypedefVisitor(schemas, schema, typeMap, typesVisitor);
+ visitor = new TypedefVisitor(getScope(), schemas, schema, typeMap, typesVisitor);
} else if (StructVisitor.accept(node)) {
// <struct_type>
- visitor = new StructVisitor(schemas, schema, typeMap);
+ visitor = new StructVisitor(getScope(), schemas, schema, typeMap);
} else if (UnionVisitor.accept(node)) {
// <union_type>
- visitor = new UnionVisitor(schemas, schema, typeMap);
+ visitor = new UnionVisitor(getScope(), schemas, schema, typeMap);
} else if (EnumVisitor.accept(node)) {
// <enum_type>
- visitor = new EnumVisitor(schemas, schema, typeMap);
+ visitor = new EnumVisitor(getScope(), schemas, schema, typeMap);
} else if (node.getType() == IDLTokenTypes.LITERAL_native) {
// "native" <simple_declarator>
//
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeSpecVisitorBase.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeSpecVisitorBase.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeSpecVisitorBase.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeSpecVisitorBase.java Thu Nov 2 07:14:23 2006
@@ -51,16 +51,6 @@
public abstract void visit(AST node);
- // REVISIT: what's the point of getter method for protected member?
- public XmlSchema getSchema() {
- return schema;
- }
-
- // REVISIT: what's the point of getter method for protected member?
- public TypeMappingType getCorbaTypeMap() {
- return typeMap;
- }
-
protected void setSchemaType(XmlSchemaType type) {
schemaType = type;
}
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java Thu Nov 2 07:14:23 2006
@@ -35,15 +35,16 @@
import org.apache.yoko.wsdl.CorbaConstants;
import org.apache.yoko.wsdl.CorbaTypeImpl;
-public class TypedefVisitor extends TypeSpecVisitorBase {
+public class TypedefVisitor extends VisitorBase {
private TypesVisitor typesVisitor;
- public TypedefVisitor(XmlSchemaCollection xmlSchemas,
+ public TypedefVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMappingType,
TypesVisitor typesVisitorRef) {
- super(xmlSchemas, xmlSchema, typeMappingType);
+ super(scope, xmlSchemas, xmlSchema, typeMappingType);
typesVisitor = typesVisitorRef;
}
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java Thu Nov 2 07:14:23 2006
@@ -42,32 +42,22 @@
import org.apache.ws.commons.schema.XmlSchemaSequence;
import org.apache.ws.commons.schema.XmlSchemaSerializer;
-public class TypesVisitor extends TypeSpecVisitorBase {
+public class TypesVisitor extends VisitorBase {
static final int PRIMITIVE = 0;
-
- TypeMappingType typeMap;
-
- Definition definition;
- XmlSchema schema;
- XmlSchemaCollection schemas;
XmlSchemaObject currentType;
ArgType currentParam;
List<String> parts = new ArrayList<String>();
- public TypesVisitor(XmlSchemaCollection xmlSchemas,
+ public TypesVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
- TypeMappingType corbaTypeMap,
- Definition wsdlDefinition)
+ TypeMappingType corbaTypeMap)
throws WSDLException {
- super(xmlSchemas, xmlSchema, corbaTypeMap);
- definition = wsdlDefinition;
- schema = xmlSchema;
- schemas = xmlSchemas;
- typeMap = corbaTypeMap;
+ super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
}
// REVISIT: remove this method
@@ -86,7 +76,7 @@
return typeMap;
}
- public void attachSchema() throws Exception {
+ public void attachSchema(Definition definition) throws Exception {
Types types = definition.createTypes();
Schema wsdlSchema = (Schema)
definition.getExtensionRegistry().createExtension(Types.class,
@@ -144,15 +134,15 @@
// <type_spec> ::= <simple_type_spec>
// | <constr_type_spec>
- TypeSpecVisitor visitor = null;
+ Visitor visitor = null;
if (ConstrTypeSpecVisitor.accept(node)) {
// type_spec - constr_type_spec
- visitor = new ConstrTypeSpecVisitor(schemas, schema, typeMap);
+ visitor = new ConstrTypeSpecVisitor(getScope(), schemas, schema, typeMap);
} else if (SimpleTypeSpecVisitor.accept(node)) {
// type_spec - simple_type_spec
- visitor = new SimpleTypeSpecVisitor(schemas, schema, typeMap);
+ visitor = new SimpleTypeSpecVisitor(getScope(), schemas, schema, typeMap);
} else if (visitor == null) {
// REVISIT: !!!!!
// This is ugly. It should be done in the SimpleTypeSpecVisitor.accept(node) method.
@@ -166,7 +156,7 @@
// To work around that redesign and get things working now, I am assuming that if visitor
// is null at this point, then it has to be a scoped_name.
// REVISIT!!!
- visitor = new ScopedNameVisitor(schemas, schema, typeMap);
+ visitor = new ScopedNameVisitor(getScope(), schemas, schema, typeMap);
}
visitor.visit(node);
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/UnionVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/UnionVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/UnionVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/UnionVisitor.java Thu Nov 2 07:14:23 2006
@@ -39,14 +39,15 @@
import org.apache.yoko.wsdl.CorbaConstants;
import org.apache.yoko.wsdl.CorbaTypeImpl;
-public class UnionVisitor extends TypeSpecVisitorBase {
+public class UnionVisitor extends VisitorBase {
private final String discriminator = "discriminator";
- public UnionVisitor(XmlSchemaCollection xmlSchemas,
- XmlSchema xmlSchema,
- TypeMappingType typeMappingType) {
- super(xmlSchemas, xmlSchema, typeMappingType);
+ public UnionVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
+ XmlSchema xmlSchema,
+ TypeMappingType typeMappingType) {
+ super(scope, xmlSchemas, xmlSchema, typeMappingType);
}
public static boolean accept(AST node) {
Added: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Visitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Visitor.java?view=auto&rev=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Visitor.java (added)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Visitor.java Thu Nov 2 07:14:23 2006
@@ -0,0 +1,36 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+
+package org.apache.yoko.tools.processors.idl;
+
+import antlr.collections.AST;
+
+import org.apache.ws.commons.schema.XmlSchemaType;
+
+import org.apache.yoko.wsdl.CorbaTypeImpl;
+
+public interface Visitor {
+
+ void visit(AST node);
+
+ XmlSchemaType getSchemaType();
+ CorbaTypeImpl getCorbaType();
+
+ Scope getScope();
+}
Propchange: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/Visitor.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/VisitorBase.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/VisitorBase.java?view=auto&rev=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/VisitorBase.java (added)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/VisitorBase.java Thu Nov 2 07:14:23 2006
@@ -0,0 +1,83 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+
+package org.apache.yoko.tools.processors.idl;
+
+import antlr.collections.AST;
+
+import org.apache.schemas.yoko.bindings.corba.TypeMappingType;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.ws.commons.schema.XmlSchemaType;
+import org.apache.yoko.wsdl.CorbaTypeImpl;
+
+public abstract class VisitorBase implements Visitor {
+
+ protected XmlSchema schema;
+ protected XmlSchemaCollection schemas;
+ protected TypeMappingType typeMap;
+
+ private XmlSchemaType schemaType;
+ private CorbaTypeImpl corbaType;
+ private Scope scope;
+
+ public VisitorBase(Scope scopeRef,
+ XmlSchemaCollection xmlSchemas,
+ XmlSchema xmlSchema,
+ TypeMappingType typeMapRef) {
+ schemas = xmlSchemas;
+ schema = xmlSchema;
+ typeMap = typeMapRef;
+
+ scope = scopeRef;
+
+ schemaType = null;
+ corbaType = null;
+ }
+
+ public abstract void visit(AST node);
+
+ protected void setSchemaType(XmlSchemaType type) {
+ schemaType = type;
+ }
+
+ public XmlSchemaType getSchemaType() {
+ if (schemaType == null) {
+ throw new RuntimeException("Schema type is null! "
+ + "Method visit() must be called before getSchemaType()");
+ }
+ return schemaType;
+ }
+
+ protected void setCorbaType(CorbaTypeImpl type) {
+ corbaType = type;
+ }
+
+ public CorbaTypeImpl getCorbaType() {
+ if (corbaType == null) {
+ throw new RuntimeException("Corba type is null! "
+ + "Method visit() must be called before getCorbaType()");
+ }
+ return corbaType;
+ }
+
+ public Scope getScope() {
+ return scope;
+ }
+}
Propchange: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/VisitorBase.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java?view=diff&rev=470379&r1=470378&r2=470379
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java Thu Nov 2 07:14:23 2006
@@ -73,14 +73,16 @@
createCorbaTypeMap();
- typesVisitor = new TypesVisitor(schemas, schema, typeMap, definition);
+ // REVISIT why is typesVisitor created here????
+ typesVisitor = new TypesVisitor(new Scope(), schemas, schema, typeMap);
}
public void visit(AST node) {
// <specification> ::= <definition>+
while (node != null) {
- DefinitionVisitor definitionVisitor = new DefinitionVisitor(definition,
+ DefinitionVisitor definitionVisitor = new DefinitionVisitor(new Scope(),
+ definition,
typesVisitor,
schemas,
schema,
@@ -91,7 +93,7 @@
}
try {
- typesVisitor.attachSchema();
+ typesVisitor.attachSchema(definition);
} catch (Exception ex) {
throw new RuntimeException(ex);
}