Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/apache/axis/wsdl/toJava/JavaUndeployWriter.java


1   /*
2    * Copyright 2001-2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.apache.axis.wsdl.toJava;
17  
18  import org.apache.axis.deployment.wsdd.WSDDConstants;
19  import org.apache.axis.utils.Messages;
20  import org.apache.axis.wsdl.symbolTable.SymbolTable;
21  
22  import javax.wsdl.Definition;
23  import javax.wsdl.Port;
24  import javax.wsdl.Service;
25  import java.io.File;
26  import java.io.FileOutputStream;
27  import java.io.IOException;
28  import java.io.OutputStreamWriter;
29  import java.io.PrintWriter;
30  import java.util.Iterator;
31  import java.util.Map;
32  
33  /**
34   * This is Wsdl2java's deploy Writer.  It writes the deploy.java file.
35   */
36  public class JavaUndeployWriter extends JavaWriter {
37  
38      /** Field definition */
39      protected Definition definition;
40  
41      /**
42       * Constructor.
43       * 
44       * @param emitter    
45       * @param definition 
46       * @param notUsed    
47       */
48      public JavaUndeployWriter(Emitter emitter, Definition definition,
49                                SymbolTable notUsed) {
50  
51          super(emitter, "undeploy");
52  
53          this.definition = definition;
54      }    // ctor
55  
56      /**
57       * Generate undeploy.wsdd.  Only generate it if the emitter
58       * is generating server-side mappings.
59       * 
60       * @throws IOException 
61       */
62      public void generate() throws IOException {
63  
64          if (emitter.isServerSide()) {
65              super.generate();
66          }
67      }    // generate
68  
69      /**
70       * Return the fully-qualified name of the undeploy.wsdd file
71       * to be generated.
72       * 
73       * @return 
74       */
75      protected String getFileName() {
76  
77          String dir =
78                  emitter.getNamespaces().getAsDir(definition.getTargetNamespace());
79  
80          return dir + "undeploy.wsdd";
81      }    // getFileName
82  
83      /**
84       * Replace the default file header with the deployment doc file header.
85       * 
86       * @param pw 
87       * @throws IOException 
88       */
89      protected void writeFileHeader(PrintWriter pw) throws IOException {
90  
91          pw.println(Messages.getMessage("deploy01"));
92          pw.println(Messages.getMessage("deploy02"));
93          pw.println(Messages.getMessage("deploy04"));
94          pw.println(Messages.getMessage("deploy05"));
95          pw.println(Messages.getMessage("deploy06"));
96          pw.println(Messages.getMessage("deploy08"));
97          pw.println(Messages.getMessage("deploy09"));
98          pw.println();
99          pw.println("<undeployment");
100         pw.println("    xmlns=\"" + WSDDConstants.URI_WSDD + "\">");
101     }    // writeFileHeader
102 
103     /**
104      * Write the body of the deploy.wsdd file.
105      * 
106      * @param pw 
107      * @throws IOException 
108      */
109     protected void writeFileBody(PrintWriter pw) throws IOException {
110         writeDeployServices(pw);
111         pw.println("</undeployment>");
112     }    // writeFileBody
113 
114     /**
115      * Write out deployment and undeployment instructions for each WSDL service
116      * 
117      * @param pw 
118      * @throws IOException 
119      */
120     protected void writeDeployServices(PrintWriter pw) throws IOException {
121 
122         // deploy the ports on each service
123         Map serviceMap = definition.getServices();
124 
125         for (Iterator mapIterator = serviceMap.values().iterator();
126              mapIterator.hasNext();) {
127             Service myService = (Service) mapIterator.next();
128 
129             pw.println();
130             pw.println(
131                     "  <!-- "
132                     + Messages.getMessage(
133                             "wsdlService00", myService.getQName().getLocalPart()) + " -->");
134             pw.println();
135 
136             for (Iterator portIterator = myService.getPorts().values().iterator();
137                  portIterator.hasNext();) {
138                 Port myPort = (Port) portIterator.next();
139 
140                 writeDeployPort(pw, myPort);
141             }
142         }
143     }    // writeDeployServices
144 
145     /**
146      * Write out deployment and undeployment instructions for given WSDL port
147      * 
148      * @param pw   
149      * @param port 
150      * @throws IOException 
151      */
152     protected void writeDeployPort(PrintWriter pw, Port port) throws IOException {
153 
154         String serviceName = port.getName();
155 
156         pw.println("  <service name=\"" + serviceName + "\"/>");
157     }    // writeDeployPort
158 
159     /**
160      * Method getPrintWriter
161      * 
162      * @param filename 
163      * @return 
164      * @throws IOException 
165      */
166     protected PrintWriter getPrintWriter(String filename) throws IOException {
167 
168         File file = new File(filename);
169         File parent = new File(file.getParent());
170 
171         parent.mkdirs();
172 
173         FileOutputStream out = new FileOutputStream(file);
174         OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8");
175 
176         return new PrintWriter(writer);
177     }
178 }    // class JavaUndeployWriter