Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* 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.cxf.tools.corba.processors.idl;
import javax.wsdl.Definition;
import antlr.collections.AST;
import org.apache.ws.commons.schema.XmlSchema;
public class DefinitionVisitor extends VisitorBase {
public DefinitionVisitor(Scope scope,
Definition defn,
XmlSchema schemaRef,
WSDLASTVisitor wsdlVisitor) {
super(scope, defn, schemaRef, wsdlVisitor);
}
public void visit(AST node) {
// ::= ";"
// | ";"
// | ";"
// | ";"
// | ";"
// | ";"
switch (node.getType()) {
case IDLTokenTypes.LITERAL_custom:
case IDLTokenTypes.LITERAL_valuetype: {
System.out.println("Valuetypes not supported");
System.exit(1);
break;
}
case IDLTokenTypes.LITERAL_module: {
ModuleVisitor moduleVisitor = new ModuleVisitor(getScope(),
definition,
schema,
wsdlVisitor);
moduleVisitor.visit(node);
break;
}
case IDLTokenTypes.LITERAL_interface: {
Definition newDefinition = createDefinition(null);
PortTypeVisitor portTypeVisitor = new PortTypeVisitor(getScope(),
newDefinition,
schema,
wsdlVisitor);
portTypeVisitor.visit(node);
break;
}
case IDLTokenTypes.LITERAL_exception: {
XmlSchema newSchema = createSchema();
Definition newDefinition = createDefinition(newSchema);
ExceptionVisitor exceptionVisitor = new ExceptionVisitor(getScope(),
newDefinition,
newSchema,
wsdlVisitor);
exceptionVisitor.visit(node);
break;
}
case IDLTokenTypes.LITERAL_const: {
XmlSchema newSchema = createSchema();
ConstVisitor constVisitor = new ConstVisitor(getScope(),
definition,
newSchema,
wsdlVisitor);
constVisitor.visit(node);
break;
}
default: {
XmlSchema newSchema = createSchema();
TypeDclVisitor typeDclVisitor = new TypeDclVisitor(getScope(),
definition,
newSchema,
wsdlVisitor);
typeDclVisitor.visit(node);
}
}
}
/**
* Creates the XmlSchema corresponding to the module scope if none exists
*/
private XmlSchema createSchema() {
String tns = mapper.map(getScope());
XmlSchema xmlSchema = schema;
if (tns != null) {
xmlSchema = manager.getXmlSchema(tns);
if (xmlSchema == null) {
xmlSchema = manager.createXmlSchema(tns, schemas);
}
}
return xmlSchema;
}
/**
* Creates the WSDL definition correspoinding to the module scope if none exists
*/
private Definition createDefinition(XmlSchema schema) {
String tns = mapper.map(getScope());
Definition defn = definition;
if (tns != null) {
defn = manager.getWSDLDefinition(tns);
if (defn == null) {
try {
defn = manager.createWSDLDefinition(tns);
String key = getScope().toString("_");
String fileName = getWsdlVisitor().getOutputDir()
+ System.getProperty("file.separator")
+ key;
manager.addWSDLDefinitionImport(definition,
defn,
key,
fileName);
if (schema == null) {
schema = manager.getXmlSchema(tns);
}
if (schema != null) {
// add a schema based on the module with a corresponding import to the actual schema
manager.addWSDLSchemaImport(defn, tns, fileName);
// make sure that if we are adding the import to the wsdl, then we also
// add the schema to the list of imported schemas
manager.getImportedXmlSchemas().put(new java.io.File(fileName + ".xsd"),
schema);
}
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
}
return defn;
}
}