org.apache.axis.wsdl.toJava
Class JavaWriter
java.lang.Object
org.apache.axis.wsdl.toJava.JavaWriter
- Generator
public abstract class JavaWriter
extends java.lang.Object
Emitter knows about WSDL writers, one each for PortType, Binding, Service,
Definition, Type. But for some of these WSDL types, Wsdl2java generates
multiple files. Each of these files has a corresponding writer that extends
JavaWriter. So the Java WSDL writers (JavaPortTypeWriter, JavaBindingWriter,
etc.) each calls a file writer (JavaStubWriter, JavaSkelWriter, etc.) for
each file that that WSDL generates.
For example, when Emitter calls JavaWriterFactory for a Binding Writer, it
returns a JavaBindingWriter. JavaBindingWriter, in turn, contains a
JavaStubWriter, JavaSkelWriter, and JavaImplWriter since a Binding may cause
a stub, skeleton, and impl template to be generated.
Note that the writers that are given to Emitter by JavaWriterFactory DO NOT
extend JavaWriter. They simply implement Writer and delegate the actual
task of writing to extensions of JavaWriter.
All of Wsdl2java's Writer implementations follow a common behaviour.
JavaWriter is the abstract base class that dictates this common behaviour.
This behaviour is primarily placed within the generate method. The generate
method calls, in succession (note: the starred methods are the ones you are
probably most interested in):
- * getFileName
- This is an abstract method that must be implemented by the subclass.
It returns the fully-qualified file name.
- isFileGenerated(file)
- You should not need to override this method. It checks to see whether
this file is in the List returned by emitter.getGeneratedFileNames.
- registerFile(file)
- You should not need to override this method. It registers this file by
calling emitter.getGeneratedFileInfo().add(...).
- * verboseMessage(file)
- You may override this method if you want to provide more information.
The generate method only calls verboseMessage if verbose is turned on.
- getPrintWriter(file)
- You should not need to override this method. Given the file name, it
creates a PrintWriter for it.
- * writeFileHeader(pw)
- You may want to override this method. The default implementation
generates nothing.
- * writeFileBody(pw)
- This is an abstract method that must be implemented by the subclass.
This is where the body of a file is generated.
- * writeFileFooter(pw)
- You may want to override this method. The default implementation
generates nothing.
- closePrintWriter(pw)
- You should not need to override this method. It simply closes the
PrintWriter.
protected static int | LINE_LENGTH - This controls how many characters per line for javadoc comments
|
protected Emitter | emitter - Field emitter
|
protected String | type - Field type
|
protected void | closePrintWriter(PrintWriter pw) - Close the print writer.
|
void | generate() - Generate a file.
|
protected String | getFileName() - This method must be implemented by a subclass.
|
protected String | getJavadocDescriptionPart(String documentation, boolean addTab) - Takes out new lines and wraps at Javadoc tags
|
protected PrintWriter | getPrintWriter(String filename) - You should not need to override this method.
|
protected boolean | isFileGenerated(String file) - You should not need to override this method.
|
protected void | registerFile(String file) - You should not need to override this method.
|
protected String | verboseMessage(String file) - Return the string: "Generating ".
|
protected void | writeComment(PrintWriter pw, Element element) - Output a documentation element as a Java comment.
|
protected void | writeComment(PrintWriter pw, Element element, boolean addTab) - Output a documentation element as a Java comment.
|
protected void | writeFileBody(PrintWriter pw) - This method must be implemented by a subclass.
|
protected void | writeFileFooter(PrintWriter pw) - You may want to override this method.
|
protected void | writeFileHeader(PrintWriter pw) - This method is intended to be overridden as necessary
to generate file header information.
|
LINE_LENGTH
protected static final int LINE_LENGTH
This controls how many characters per line for javadoc comments
- 65
emitter
protected Emitter emitter
Field emitter
type
protected String type
Field type
JavaWriter
protected JavaWriter(Emitter emitter,
String type)
Constructor.
emitter
- type
-
closePrintWriter
protected void closePrintWriter(PrintWriter pw)
Close the print writer.
pw
-
generate
public void generate()
throws IOException
Generate a file.
- generate in interface Generator
getFileName
protected String getFileName()
This method must be implemented by a subclass. It
returns the fully-qualified name of the file to be
generated.
getJavadocDescriptionPart
protected String getJavadocDescriptionPart(String documentation,
boolean addTab)
Takes out new lines and wraps at Javadoc tags
documentation
- the raw comments from schemaaddTab
- if true adds a tab character when wrapping (methods)
getPrintWriter
protected PrintWriter getPrintWriter(String filename)
throws IOException
You should not need to override this method.
Given the file name, it creates a PrintWriter for it.
filename
-
isFileGenerated
protected boolean isFileGenerated(String file)
You should not need to override this method. It checks
to see whether the given file is in the List returned
by emitter.getGeneratedFileNames.
file
-
registerFile
protected void registerFile(String file)
You should not need to override this method.
It registers the given file by calling
emitter.getGeneratedFileInfo().add(...).
file
-
verboseMessage
protected String verboseMessage(String file)
Return the string: "Generating ". Override this
method if you want to provide more information.
file
-
writeComment
protected void writeComment(PrintWriter pw,
Element element)
Output a documentation element as a Java comment.
pw
- element
-
writeComment
protected void writeComment(PrintWriter pw,
Element element,
boolean addTab)
Output a documentation element as a Java comment.
pw
- element
- addTab
-
writeFileBody
protected void writeFileBody(PrintWriter pw)
throws IOException
This method must be implemented by a subclass. This
is where the body of a file is generated.
pw
-
writeFileFooter
protected void writeFileFooter(PrintWriter pw)
throws IOException
You may want to override this method. This default
implementation generates nothing.
pw
-
writeFileHeader
protected void writeFileHeader(PrintWriter pw)
throws IOException
This method is intended to be overridden as necessary
to generate file header information. This default
implementation does nothing.
pw
-
Copyright B) 2005 Apache Web Services Project. All Rights Reserved.