Class JavaWriter
- All Implemented Interfaces:
Generator
- Direct Known Subclasses:
JavaBuildFileWriter
,JavaClassWriter
,JavaDeployWriter
,JavaUndeployWriter
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.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Close the print writer.void
generate()
Generate a file.protected abstract String
This method must be implemented by a subclass.protected String
getJavadocDescriptionPart
(String documentation, boolean addTab) Takes out new lines and wraps at Javadoc tagsprotected 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 abstract void
This method must be implemented by a subclass.protected void
You may want to override this method.protected void
This method is intended to be overridden as necessary to generate file header information.
-
Field Details
-
LINE_LENGTH
protected static final int LINE_LENGTHThis controls how many characters per line for javadoc comments- See Also:
-
emitter
Field emitter -
type
Field type
-
-
Constructor Details
-
JavaWriter
Constructor.- Parameters:
emitter
-type
-
-
-
Method Details
-
generate
Generate a file.- Specified by:
generate
in interfaceGenerator
- Throws:
IOException
-
getFileName
This method must be implemented by a subclass. It returns the fully-qualified name of the file to be generated.- Returns:
-
isFileGenerated
You should not need to override this method. It checks to see whether the given file is in the List returned by emitter.getGeneratedFileNames.- Parameters:
file
-- Returns:
-
registerFile
You should not need to override this method. It registers the given file by calling emitter.getGeneratedFileInfo().add(...).- Parameters:
file
-
-
verboseMessage
Return the string: "Generating". Override this method if you want to provide more information. - Parameters:
file
-- Returns:
-
getPrintWriter
You should not need to override this method. Given the file name, it creates a PrintWriter for it.- Parameters:
filename
-- Returns:
- Throws:
IOException
-
writeFileHeader
This method is intended to be overridden as necessary to generate file header information. This default implementation does nothing.- Parameters:
pw
-- Throws:
IOException
-
writeFileBody
This method must be implemented by a subclass. This is where the body of a file is generated.- Parameters:
pw
-- Throws:
IOException
-
closePrintWriter
Close the print writer.- Parameters:
pw
-
-
getJavadocDescriptionPart
Takes out new lines and wraps at Javadoc tags- Parameters:
documentation
- the raw comments from schemaaddTab
- if true adds a tab character when wrapping (methods)
-
writeComment
Output a documentation element as a Java comment.- Parameters:
pw
-element
-
-
writeComment
Output a documentation element as a Java comment.- Parameters:
pw
-element
-addTab
-
-