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/06 10:23:34 UTC
svn commit: r471682 -
/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/
Author: mvescovi
Date: Mon Nov 6 02:23:32 2006
New Revision: 471682
URL: http://svn.apache.org/viewvc?view=rev&rev=471682
Log:
Added partial anonymous sequence support, removed unused visitors, changed <type_spec> visitor usage
Added:
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java
Removed:
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/MessagePartVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/MessageVisitor.java
incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ReturnParameterVisitor.java
Modified:
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/DeclaratorVisitor.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/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/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/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/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/WSDLASTVisitor.java
Added: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java?view=auto&rev=471682
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java (added)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java Mon Nov 6 02:23:32 2006
@@ -0,0 +1,134 @@
+/**
+ * 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 javax.xml.namespace.QName;
+
+import antlr.collections.AST;
+
+import org.apache.schemas.yoko.bindings.corba.Anonarray;
+import org.apache.schemas.yoko.bindings.corba.Array;
+import org.apache.schemas.yoko.bindings.corba.Sequence;
+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.XmlSchemaComplexType;
+import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.ws.commons.schema.XmlSchemaType;
+
+import org.apache.ws.commons.schema.XmlSchemaComplexType;
+import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.ws.commons.schema.XmlSchemaSequence;
+
+
+import org.apache.yoko.wsdl.CorbaConstants;
+import org.apache.yoko.wsdl.CorbaTypeImpl;
+
+public class ArrayVisitor extends VisitorBase {
+
+ private AST identifierNode;
+
+ public ArrayVisitor(Scope scope,
+ XmlSchemaCollection xmlSchemas,
+ XmlSchema xmlSchema,
+ TypeMappingType typeMapRef,
+ AST identifierNodeRef) {
+ super(scope, xmlSchemas, xmlSchema, typeMapRef);
+ identifierNode = identifierNodeRef;
+ }
+
+ public static boolean accept(AST node) {
+ if (node.getFirstChild() != null) {
+ return true;
+ }
+ return false;
+ }
+
+ public void visit(AST node) {
+ // <array_declarator> ::= <identifier> <fixed_array_size>+
+ // <fixed_array_size> ::= "[" <positive_int_const> "]"
+
+
+ AST fixedArraySizeNode = node.getFirstChild();
+
+ Integer id = new Integer(1);
+ while (fixedArraySizeNode != null) {
+ Long size = new Long(fixedArraySizeNode.toString());
+ System.out.println("Size: " + size.toString() + " Id: " + id.toString());
+
+ visit(fixedArraySizeNode);
+
+ String name = "_" + id.toString() + "_" + getScope().tail();
+ XmlSchemaType stype = generateSchemaArray(name, size);
+ Anonarray anonarray = generateCorbaAnonarray(name, size, stype.getQName());
+
+ // add schemaType
+ schema.getItems().add(stype);
+ schema.addType(stype);
+
+ // add corbaType
+ typeMap.getStructOrExceptionOrUnion().add(anonarray);
+
+ fixedArraySizeNode = fixedArraySizeNode.getNextSibling();
+ id++;
+ }
+
+
+ }
+
+ private XmlSchemaComplexType generateSchemaArray(String name, Long size) {
+ XmlSchemaComplexType complexType = new XmlSchemaComplexType(schema);
+ complexType.setName(name);
+
+ XmlSchemaSequence sequence = new XmlSchemaSequence();
+
+ XmlSchemaElement element = new XmlSchemaElement();
+ element.setMinOccurs(size);
+ element.setMaxOccurs(size);
+ element.setName("item");
+
+ sequence.getItems().add(element);
+
+ complexType.setParticle(sequence);
+
+ return complexType;
+ }
+
+ private Array generateCorbaArray(String name, Long size, QName type) {
+ Array array = new Array();
+ array.setQName(new QName(typeMap.getTargetNamespace(), name));
+ array.setBound(size);
+ array.setRepositoryID(CorbaConstants.REPO_STRING
+ + name
+ + CorbaConstants.IDL_VERSION);
+ array.setType(type);
+ return array;
+ }
+
+ private Anonarray generateCorbaAnonarray(String name, Long size, QName type) {
+ Anonarray anonarray = new Anonarray();
+ anonarray.setQName(new QName(typeMap.getTargetNamespace(), name));
+ anonarray.setBound(size);
+ anonarray.setType(type);
+ return anonarray;
+ }
+}
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -28,11 +28,15 @@
public class ConstrTypeSpecVisitor extends VisitorBase {
+ private AST identifierNode;
+
public ConstrTypeSpecVisitor(Scope scope,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
- TypeMappingType corbaTypeMap) {
+ TypeMappingType corbaTypeMap,
+ AST identifierNodeRef) {
super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
+ identifierNode = identifierNodeRef;
}
public static boolean accept(AST node) {
Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DeclaratorVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DeclaratorVisitor.java?view=diff&rev=471682&r1=471681&r2=471682
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DeclaratorVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DeclaratorVisitor.java Mon Nov 6 02:23:32 2006
@@ -69,13 +69,19 @@
// schemaType.setName(name);
// corbaType.setQName(new QName(typeMap.getTargetNamespace(), name));
-
- // add schemaType
- schema.getItems().add(schemaType);
- schema.addType(schemaType);
- // add corbaType
- typeMap.getStructOrExceptionOrUnion().add(corbaType);
+ if (ArrayVisitor.accept(node)) {
+ ArrayVisitor arrayVisitor = new ArrayVisitor(getScope(), schemas, schema, typeMap, node);
+ arrayVisitor.visit(node);
+
+ } else {
+ // add schemaType
+ schema.getItems().add(schemaType);
+ schema.addType(schemaType);
+
+ // add corbaType
+ typeMap.getStructOrExceptionOrUnion().add(corbaType);
+ }
}
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -32,17 +32,13 @@
private Definition definition;
- private TypesVisitor typesVisitor;
-
public DefinitionVisitor(Scope scope,
Definition wsdlDefinition,
- TypesVisitor typeVisitor,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap) {
super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
definition = wsdlDefinition;
- typesVisitor = typeVisitor;
}
public void visit(AST node) {
@@ -63,7 +59,6 @@
case IDLTokenTypes.LITERAL_module: {
ModuleVisitor moduleVisitor = new ModuleVisitor(getScope(),
definition,
- typesVisitor,
schemas,
schema,
typeMap);
@@ -75,8 +70,7 @@
schemas,
schema,
typeMap,
- definition,
- typesVisitor);
+ definition);
portTypeVisitor.visit(node);
break;
}
@@ -100,8 +94,7 @@
TypeDclVisitor typeDclVisitor = new TypeDclVisitor(getScope(),
schemas,
schema,
- typeMap,
- typesVisitor);
+ typeMap);
typeDclVisitor.visit(node);
}
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -38,11 +38,15 @@
public class FixedVisitor extends VisitorBase {
+ private AST identifierNode;
+
public FixedVisitor(Scope scope,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
- TypeMappingType typeMappingType) {
+ TypeMappingType typeMappingType,
+ AST identifierNodeRef) {
super(scope, xmlSchemas, xmlSchema, typeMappingType);
+ identifierNode = identifierNodeRef;
}
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -31,17 +31,14 @@
public class ModuleVisitor extends VisitorBase {
private Definition definition;
- private TypesVisitor typesVisitor;
public ModuleVisitor(Scope scope,
Definition wsdlDefinition,
- TypesVisitor typeVisitor,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap) {
super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
definition = wsdlDefinition;
- typesVisitor = typeVisitor;
}
public void visit(AST node) {
@@ -54,7 +51,6 @@
DefinitionVisitor definitionVisitor =
new DefinitionVisitor(new Scope(getScope(), identifierNode.toString()),
definition,
- typesVisitor,
schemas,
schema,
typeMap);
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -52,7 +52,7 @@
} else if (StringVisitor.accept(node)) {
// string_type_spec
// wstring_type_spec
- visitor = new StringVisitor(getScope(), schemas, schema, typeMap, false);
+ visitor = new StringVisitor(getScope(), schemas, schema, typeMap, null);
} else if (ScopedNameVisitor.accept(schemas, schema, typeMap, node)) {
// scoped_name
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -46,18 +46,15 @@
ExtensionRegistry extReg;
PortType portType;
WSDLASTVisitor wsdlASTVisitor;
- TypesVisitor typesVisitor;
String module;
public PortTypeVisitor(Scope scope,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType corbaTypeMap,
- Definition wsdlDefinition,
- TypesVisitor typeVisitor) {
+ Definition wsdlDefinition) {
super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
definition = wsdlDefinition;
- typesVisitor = typeVisitor;
extReg = definition.getExtensionRegistry();
}
@@ -114,8 +111,7 @@
TypeDclVisitor visitor = new TypeDclVisitor(interfaceScope,
schemas,
schema,
- typeMap,
- typesVisitor);
+ typeMap);
visitor.visit(exportNode);
} else if (ConstVisitor.accept(exportNode)) {
ConstVisitor visitor = new ConstVisitor(interfaceScope,
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -39,11 +39,15 @@
public class SequenceVisitor extends VisitorBase {
+ private AST identifierNode;
+
public SequenceVisitor(Scope scope,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
- TypeMappingType typeMapRef) {
+ TypeMappingType typeMapRef,
+ AST identifierNodeRef) {
super(scope, xmlSchemas, xmlSchema, typeMapRef);
+ identifierNode = identifierNodeRef;
}
public static boolean accept(AST node) {
@@ -60,12 +64,13 @@
AST simpleTypeSpecNode = seq.getFirstChild();
AST boundNode = simpleTypeSpecNode.getNextSibling();
- AST identifierNode = seq.getNextSibling();
+ //AST identifierNode = seq.getNextSibling();
SimpleTypeSpecVisitor visitor = new SimpleTypeSpecVisitor(new Scope(getScope(), identifierNode),
schemas,
schema,
- typeMap);
+ typeMap,
+ identifierNode);
visitor.visit(simpleTypeSpecNode);
XmlSchemaType stype = visitor.getSchemaType();
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -28,11 +28,15 @@
public class SimpleTypeSpecVisitor extends VisitorBase {
+ private AST identifierNode;
+
public SimpleTypeSpecVisitor(Scope scope,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
- TypeMappingType corbaTypeMap) {
+ TypeMappingType corbaTypeMap,
+ AST identifierNodeRef) {
super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
+ identifierNode = identifierNodeRef;
}
public static boolean accept(AST node) {
@@ -57,7 +61,7 @@
} else if (TemplateTypeSpecVisitor.accept(node)) {
// simple_type_spec - template_type_spec
- visitor = new TemplateTypeSpecVisitor(getScope(), schemas, schema, typeMap);
+ visitor = new TemplateTypeSpecVisitor(getScope(), schemas, schema, typeMap, identifierNode);
} else if (ScopedNameVisitor.accept(schemas, schema, typeMap, node)) {
// simple_type_spec - scoped_name
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -51,11 +51,11 @@
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
TypeMappingType typeMappingType,
- boolean mode) {
+ AST identifierNodeRef) {
super(scope, xmlSchemas, xmlSchema, typeMappingType);
stringNode = null;
boundNode = null;
- identifierNode = null;
+ identifierNode = identifierNodeRef;
stringName = null;
}
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -81,29 +81,6 @@
AST memberTypeNode = identifierNode.getNextSibling();
while (memberTypeNode != null) {
AST memberNode = memberTypeNode.getNextSibling();
-
-// // xmlschema:member
-// XmlSchemaElement member = new XmlSchemaElement();
-// String memberName = memberNode.toString();
-// member.setName(memberName);
-// // type
-// XmlSchemaType schemaType = TypesUtils.findType(schemas, schema, memberTypeNode);
-// member.setSchemaType(schemaType);
-// member.setSchemaTypeName(schemaType.getQName());
-//
-// sequence.getItems().add(member);
-//
-//
-// // corba:member
-// MemberType memberType = new MemberType();
-// memberType.setName(memberName);
-// QName idlType = TypesUtils.findCorbaType(typeMap, schemaType.getQName()).getQName();
-// memberType.setIdltype(idlType);
-// struct.getMember().add(memberType);
-//
-// memberTypeNode = memberNode.getNextSibling();
-
-
XmlSchemaType schemaType = null;
CorbaTypeImpl corbaType = null;
@@ -111,7 +88,8 @@
TypesVisitor visitor = new TypesVisitor(new Scope(getScope(), identifierNode),
schemas,
schema,
- typeMap);
+ typeMap,
+ null);
visitor.visit(memberTypeNode);
schemaType = visitor.getSchemaType();
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -28,11 +28,15 @@
public class TemplateTypeSpecVisitor extends VisitorBase {
+ private AST identifierNode;
+
public TemplateTypeSpecVisitor(Scope scope,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
- TypeMappingType corbaTypeMap) {
+ TypeMappingType corbaTypeMap,
+ AST identifierNodeRef) {
super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
+ identifierNode = identifierNodeRef;
}
public static boolean accept(AST node) {
@@ -54,14 +58,14 @@
if (SequenceVisitor.accept(node)) {
// <sequence_type>
- visitor = new SequenceVisitor(getScope(), schemas, schema, typeMap);
+ visitor = new SequenceVisitor(getScope(), schemas, schema, typeMap, identifierNode);
} else if (StringVisitor.accept(node)) {
// <string_type>
// <wstring_type>
- visitor = new StringVisitor(getScope(), schemas, schema, typeMap, true);
+ visitor = new StringVisitor(getScope(), schemas, schema, typeMap, identifierNode);
} else if (FixedVisitor.accept(node)) {
// <fixed_pt_type>
- visitor = new FixedVisitor(getScope(), schemas, schema, typeMap);
+ visitor = new FixedVisitor(getScope(), schemas, schema, typeMap, identifierNode);
}
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -27,16 +27,12 @@
import org.apache.ws.commons.schema.XmlSchemaCollection;
public class TypeDclVisitor extends VisitorBase {
-
- private TypesVisitor typesVisitor;
public TypeDclVisitor(Scope scope,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
- TypeMappingType corbaTypeMap,
- TypesVisitor typesVisitorRef) {
+ TypeMappingType corbaTypeMap) {
super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
- typesVisitor = typesVisitorRef;
}
public static boolean accept(AST node) {
@@ -60,7 +56,7 @@
if (TypedefVisitor.accept(node)) {
// "typedef" <type_declarator>
- visitor = new TypedefVisitor(getScope(), schemas, schema, typeMap, typesVisitor);
+ visitor = new TypedefVisitor(getScope(), schemas, schema, typeMap);
} else if (StructVisitor.accept(node)) {
// <struct_type>
visitor = new StructVisitor(getScope(), schemas, schema, typeMap);
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -37,16 +37,12 @@
import org.apache.yoko.wsdl.CorbaTypeImpl;
public class TypedefVisitor extends VisitorBase {
-
- private TypesVisitor typesVisitor;
public TypedefVisitor(Scope scope,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
- TypeMappingType typeMappingType,
- TypesVisitor typesVisitorRef) {
+ TypeMappingType typeMappingType) {
super(scope, xmlSchemas, xmlSchema, typeMappingType);
- typesVisitor = typesVisitorRef;
}
public static boolean accept(AST node) {
@@ -63,6 +59,7 @@
AST typeDeclaratorNode = typedefNode.getFirstChild();
AST identifierNode = TypesUtils.getPrimitiveCorbaTypeNameNode(typeDeclaratorNode);
+ TypesVisitor typesVisitor = new TypesVisitor(getScope(), schemas, schema, typeMap, identifierNode);
typesVisitor.visit(typeDeclaratorNode);
XmlSchemaType schemaType = typesVisitor.getSchemaType();
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -49,85 +49,17 @@
XmlSchemaObject currentType;
ArgType currentParam;
+
+ private AST identifierNode;
- List<String> parts = new ArrayList<String>();
-
+ // identifierNode null if anonymous type
public TypesVisitor(Scope scope,
XmlSchemaCollection xmlSchemas,
XmlSchema xmlSchema,
- TypeMappingType corbaTypeMap)
- throws WSDLException {
+ TypeMappingType corbaTypeMap,
+ AST identifierNodeRef) {
super(scope, xmlSchemas, xmlSchema, corbaTypeMap);
- }
-
- // REVISIT: remove this method
- // schema should not be a member of TypesVisitor
- public XmlSchema getSchema() {
- return schema;
- }
-
- // REVISIT: remove this method
- // schemas should not be a member of TypesVisitor
- public XmlSchemaCollection getSchemas() {
- return schemas;
- }
-
- public TypeMappingType getCorbaTypeMapping() {
- return typeMap;
- }
-
- public void attachSchema(Definition definition) throws Exception {
- Types types = definition.createTypes();
- Schema wsdlSchema = (Schema)
- definition.getExtensionRegistry().createExtension(Types.class,
- new QName("http://www.w3.org/2001/XMLSchema",
- "schema"));
- org.w3c.dom.Element el = XmlSchemaSerializer.serializeSchema(schema, true)[0].getDocumentElement();
- wsdlSchema.setElement(el);
- types.addExtensibilityElement(wsdlSchema);
- definition.setTypes(types);
- }
-
- /*-
- * Build the Wrapped Document Style wrapping elements
- * i.e. <xs:element name="...">
- * <xs:complexType>
- * <xs:sequence>
- * ...
- * </xs:sequence>
- * </xs:complexType>
- * </xs:element>
- */
- public void addWrapper(QName el, XmlSchemaSequence wrappingSequence) {
- XmlSchemaComplexType schemaComplexType = new XmlSchemaComplexType(schema);
- schemaComplexType.setParticle(wrappingSequence);
-
- XmlSchemaElement wrappingSchemaElement = new XmlSchemaElement();
- wrappingSchemaElement.setQName(el);
- wrappingSchemaElement.setName(el.getLocalPart());
- wrappingSchemaElement.setSchemaType(schemaComplexType);
-
- schema.getElements().add(el, wrappingSchemaElement);
- schema.getItems().add(wrappingSchemaElement);
- }
-
- public XmlSchemaElement addElement(XmlSchemaSequence schemaSequence, QName el, String name) {
- XmlSchemaElement element = new XmlSchemaElement();
- element.setQName(el);
- element.setName(name);
-
- schemaSequence.getItems().add(element);
-
- return element;
- }
-
- public void setCurrentPart(XmlSchemaElement element, String name, ArgType param) {
- //get the element & check if a type has been set
- if (element != null && element.getSchemaType() == null) {
- currentType = element;
- parts.add(name);
- currentParam = param;
- }
+ identifierNode = identifierNodeRef;
}
public void visit(AST node) {
@@ -139,10 +71,10 @@
if (ConstrTypeSpecVisitor.accept(node)) {
// type_spec - constr_type_spec
- visitor = new ConstrTypeSpecVisitor(getScope(), schemas, schema, typeMap);
+ visitor = new ConstrTypeSpecVisitor(getScope(), schemas, schema, typeMap, identifierNode);
} else if (SimpleTypeSpecVisitor.accept(node)) {
// type_spec - simple_type_spec
- visitor = new SimpleTypeSpecVisitor(getScope(), schemas, schema, typeMap);
+ visitor = new SimpleTypeSpecVisitor(getScope(), schemas, schema, typeMap, identifierNode);
} else if (visitor == null) {
// REVISIT: !!!!!
// This is ugly. It should be done in the SimpleTypeSpecVisitor.accept(node) method.
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=471682&r1=471681&r2=471682
==============================================================================
--- 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 Mon Nov 6 02:23:32 2006
@@ -29,12 +29,15 @@
import javax.wsdl.BindingOperation;
import javax.wsdl.Definition;
import javax.wsdl.Port;
+import javax.wsdl.Types;
import javax.wsdl.WSDLException;
import javax.wsdl.extensions.ExtensibilityElement;
import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.extensions.schema.Schema;
import javax.wsdl.factory.WSDLFactory;
import javax.xml.bind.JAXBException;
+import javax.xml.namespace.QName;
import antlr.ASTVisitor;
import antlr.collections.AST;
@@ -46,6 +49,7 @@
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.ws.commons.schema.XmlSchemaSerializer;
import org.apache.yoko.tools.common.WSDLUtils;
import org.apache.yoko.wsdl.CorbaConstants;
@@ -56,7 +60,6 @@
Definition definition;
WSDLFactory wsdlFactory;
- TypesVisitor typesVisitor;
XmlSchema schema;
XmlSchemaCollection schemas;
@@ -72,9 +75,6 @@
schema = new XmlSchema(definition.getTargetNamespace(), schemas);
createCorbaTypeMap();
-
- // REVISIT why is typesVisitor created here????
- typesVisitor = new TypesVisitor(new Scope(), schemas, schema, typeMap);
}
public void visit(AST node) {
@@ -83,7 +83,6 @@
while (node != null) {
DefinitionVisitor definitionVisitor = new DefinitionVisitor(new Scope(),
definition,
- typesVisitor,
schemas,
schema,
typeMap);
@@ -93,7 +92,7 @@
}
try {
- typesVisitor.attachSchema(definition);
+ attachSchema(definition);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
@@ -107,10 +106,6 @@
return wsdlFactory;
}
- public TypesVisitor getTypesVisitor() {
- return typesVisitor;
- }
-
public Binding[] getCorbaBindings() {
List<Binding> result = new ArrayList<Binding>();
Map bindings = definition.getBindings();
@@ -174,5 +169,17 @@
throw new JAXBException(ex.getMessage());
}
}
+
+ private void attachSchema(Definition definition) throws Exception {
+ Types types = definition.createTypes();
+ Schema wsdlSchema = (Schema)
+ definition.getExtensionRegistry().createExtension(Types.class,
+ new QName("http://www.w3.org/2001/XMLSchema",
+ "schema"));
+ org.w3c.dom.Element el = XmlSchemaSerializer.serializeSchema(schema, true)[0].getDocumentElement();
+ wsdlSchema.setElement(el);
+ types.addExtensibilityElement(wsdlSchema);
+ definition.setTypes(types);
+ }
}