001: /**
002: * JOnAS : Java(TM) OpenSource Application Server
003: * Copyright (C) 2004-2005 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: JOnASClientGeneratorFactory.java 7560 2005-10-21 13:50:04Z sauthieg $
023: * --------------------------------------------------------------------------
024: */package org.objectweb.jonas_ws.wsgen.generator.ews.wsdltoj2ee.factory;
025:
026: import javax.wsdl.Binding;
027: import javax.wsdl.Definition;
028: import javax.wsdl.PortType;
029: import javax.wsdl.Service;
030:
031: import org.apache.axis.wsdl.gen.Generator;
032: import org.apache.axis.wsdl.gen.NoopGenerator;
033: import org.apache.axis.wsdl.symbolTable.BindingEntry;
034: import org.apache.axis.wsdl.symbolTable.ServiceEntry;
035: import org.apache.axis.wsdl.symbolTable.SymbolTable;
036: import org.apache.axis.wsdl.symbolTable.TypeEntry;
037: import org.apache.ws.ews.mapper.J2eeGeneratorFactory;
038:
039: import org.objectweb.jonas_ws.wsgen.generator.ews.wsdltoj2ee.writer.J2EEClientDeployWriter;
040: import org.objectweb.jonas_ws.wsgen.generator.ews.wsdltoj2ee.writer.JOnASEWSBindingWriter;
041: import org.objectweb.jonas_ws.wsgen.generator.ews.wsdltoj2ee.writer.JOnASEWSServiceWriter;
042: import org.objectweb.jonas_ws.wsgen.generator.ews.wsdltoj2ee.writer.JOnASTypeWriter;
043:
044: /**
045: * JOnAS implementation of J2EEGeneratorFactory for the client side.
046: * @author Guillaume Sauthier
047: */
048: public class JOnASClientGeneratorFactory extends J2eeGeneratorFactory {
049:
050: /**
051: * @see org.apache.geronimo.ews.jaxrpcmapping.J2eeGeneratorFactory#addDefinitionGenerators()
052: */
053: protected void addDefinitionGenerators() {
054: // for faults
055: // Do not emit Faults
056: //addGenerator(Definition.class, JavaDefinitionWriter.class);
057: // for deploy.wsdd
058: addGenerator(Definition.class, J2EEClientDeployWriter.class);
059: }
060:
061: /**
062: * Use the JOnASServiceWriter instead of default JavaServiceWriter
063: * @param service wsdl:service
064: * @param symbolTable symbol Table
065: * @return Returns the JOnASServiceWriter
066: */
067: public Generator getGenerator(Service service,
068: SymbolTable symbolTable) {
069: Generator writer = new JOnASEWSServiceWriter(emitter, service,
070: symbolTable);
071: ServiceEntry sEntry = symbolTable.getServiceEntry(service
072: .getQName());
073: serviceWriters.addStuff(writer, sEntry, symbolTable);
074: return serviceWriters;
075: }
076:
077: /**
078: * Use the JOnASServiceWriter instead of default JavaServiceWriter
079: * @param binding wsdl:binding
080: * @param symbolTable symbol Table
081: * @return Returns the JOnASJ2eeBindingWriter
082: */
083: public Generator getGenerator(Binding binding,
084: SymbolTable symbolTable) {
085: Generator writer = new JOnASEWSBindingWriter(emitter, binding,
086: symbolTable);
087: BindingEntry bEntry = symbolTable.getBindingEntry(binding
088: .getQName());
089: bindingWriters.addStuff(writer, bEntry, symbolTable);
090: return bindingWriters;
091: }
092:
093: /**
094: * Since this Generator doesn't output anything else than
095: * deploy-server.wsdd, other generator are NoopGenerator.
096: * @see org.apache.axis.wsdl.gen.GeneratorFactory#getGenerator(javax.wsdl.PortType,
097: * org.apache.axis.wsdl.symbolTable.SymbolTable)
098: */
099: public Generator getGenerator(PortType portType,
100: SymbolTable symbolTable) {
101: return new NoopGenerator();
102: }
103:
104: /**
105: * Use the JOnASTypeWriter instead of default JavaTypeWriter
106: * @see org.apache.axis.wsdl.gen.GeneratorFactory#getGenerator(org.apache.axis.wsdl.symbolTable.TypeEntry,
107: * org.apache.axis.wsdl.symbolTable.SymbolTable)
108: */
109: public Generator getGenerator(TypeEntry type,
110: SymbolTable symbolTable) {
111: Generator writer = new JOnASTypeWriter(emitter, type,
112: symbolTable);
113: typeWriters.addStuff(writer, type, symbolTable);
114: return typeWriters;
115: }
116: }
|