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);
+    }
 
 }