src/share/jaxws_classes/com/sun/tools/internal/ws/processor/generator/GeneratorBase.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
@@ -58,15 +58,15 @@
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import javax.annotation.processing.Filer;
+import javax.tools.FileObject;
+
+import javax.tools.StandardLocation;
-/**
- *
- * @author WS Development Team
- */
public abstract class GeneratorBase implements ModelVisitor {
private File destDir;
private String targetVersion;
protected boolean donotOverride;
protected JCodeModel cm;
@@ -94,57 +94,61 @@
} catch (Exception e) {
receiver.error(e);
}
}
+ @Override
public void visit(Model model) throws Exception {
for (Service service : model.getServices()) {
service.accept(this);
}
}
+ @Override
public void visit(Service service) throws Exception {
for (Port port : service.getPorts()) {
port.accept(this);
}
}
+ @Override
public void visit(Port port) throws Exception {
for (Operation operation : port.getOperations()) {
operation.accept(this);
}
}
+ @Override
public void visit(Operation operation) throws Exception {
operation.getRequest().accept(this);
- if (operation.getResponse() != null)
+ if (operation.getResponse() != null) {
operation.getResponse().accept(this);
+ }
Iterator faults = operation.getFaultsSet().iterator();
if (faults != null) {
Fault fault;
while (faults.hasNext()) {
fault = (Fault) faults.next();
fault.accept(this);
}
}
}
- public void visit(Parameter param) throws Exception {
- }
-
- public void visit(Block block) throws Exception {
- }
+ @Override
+ public void visit(Parameter param) throws Exception {}
- public void visit(Response response) throws Exception {
- }
+ @Override
+ public void visit(Block block) throws Exception {}
+ @Override
+ public void visit(Response response) throws Exception {}
- public void visit(Request request) throws Exception {
- }
+ @Override
+ public void visit(Request request) throws Exception {}
- public void visit(Fault fault) throws Exception {
- }
+ @Override
+ public void visit(Fault fault) throws Exception {}
public List<String> getJAXWSClassComment(){
return getJAXWSClassComment(targetVersion);
}
@@ -160,13 +164,14 @@
JDefinedClass cls;
try {
cls = cm._class(className, type);
} catch (JClassAlreadyExistsException e){
cls = cm._getClass(className);
- if(cls == null)
+ if (cls == null) {
throw e;
}
+ }
return cls;
}
protected void log(String msg) {
if (options.verbose) {
@@ -179,12 +184,13 @@
}
}
protected void writeHandlerConfig(String className, JDefinedClass cls, WsimportOptions options) {
Element e = options.getHandlerChainConfiguration();
- if(e == null)
+ if (e == null) {
return;
+ }
JAnnotationUse handlerChainAnn = cls.annotate(cm.ref(HandlerChain.class));
NodeList nl = e.getElementsByTagNameNS(
"http://java.sun.com/xml/ns/javaee", "handler-chain");
if(nl.getLength() > 0){
String fName = getHandlerConfigFileName(className);
@@ -197,21 +203,29 @@
String name = Names.stripQualifier(fullName);
return name+"_handler.xml";
}
private void generateHandlerChainFile(Element hChains, String name) {
- String hcName = getHandlerConfigFileName(name);
+ Filer filer = options.filer;
+
+ try {
+ IndentingWriter p;
+ FileObject jfo;
+ if (filer != null) {
+ jfo = filer.createResource(StandardLocation.SOURCE_OUTPUT,
+ Names.getPackageName(name), getHandlerConfigFileName(name));
+ options.addGeneratedFile(new File(jfo.toUri()));
+ p = new IndentingWriter(new OutputStreamWriter(jfo.openOutputStream()));
+ } else { // leave for backw. compatibility now
+ String hcName = getHandlerConfigFileName(name);
File packageDir = DirectoryUtil.getOutputDirectoryFor(name, destDir);
File hcFile = new File(packageDir, hcName);
-
options.addGeneratedFile(hcFile);
+ p = new IndentingWriter(new OutputStreamWriter(new FileOutputStream(hcFile)));
+ }
- try {
- IndentingWriter p =
- new IndentingWriter(
- new OutputStreamWriter(new FileOutputStream(hcFile)));
Transformer it = XmlUtil.newTransformer();
it.setOutputProperty(OutputKeys.METHOD, "xml");
it.setOutputProperty(OutputKeys.INDENT, "yes");
it.setOutputProperty(