1 /* 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package com.sun.tools.internal.ws.spi; 27 28 import com.sun.tools.internal.ws.util.WSToolsObjectFactoryImpl; 29 import com.sun.xml.internal.ws.api.server.Container; 30 31 import java.io.OutputStream; 32 33 34 /** 35 * Singleton abstract factory used to produce JAX-WS tools related objects. 36 * 37 * @author JAX-WS Development Team 38 */ 39 public abstract class WSToolsObjectFactory { 40 41 private static final WSToolsObjectFactory factory = new WSToolsObjectFactoryImpl(); 42 43 /** 44 * Obtain an instance of a factory. Don't worry about synchronization(at the 45 * most, one more factory is created). 46 */ 47 public static WSToolsObjectFactory newInstance() { 48 return factory; 49 } 50 51 /** 52 * Invokes wsimport on the wsdl URL argument, and generates the necessary 53 * portable artifacts like SEI, Service, Bean classes etc. 54 * 55 * @param logStream Stream used for reporting log messages like errors, warnings etc 56 * @param container gives an environment for tool if it is run during appserver 57 * deployment 58 * @param args arguments with various options and wsdl url 59 * 60 * @return true if there is no error, otherwise false 61 */ 62 public abstract boolean wsimport(OutputStream logStream, Container container, String[] args); 63 64 /** 65 * Invokes wsimport on the wsdl URL argument, and generates the necessary 66 * portable artifacts like SEI, Service, Bean classes etc. 67 * 68 * @return true if there is no error, otherwise false 69 * 70 * @see #wsimport(OutputStream, Container, String[]) 71 */ 72 public boolean wsimport(OutputStream logStream, String[] args) { 73 return wsimport(logStream, Container.NONE, args); 74 } 75 76 /** 77 * Invokes wsgen on the endpoint implementation, and generates the necessary 78 * artifacts like wrapper, exception bean classes etc. 79 * 80 * @param logStream Stream used for reporting log messages like errors, warnings etc 81 * @param container gives an environment for tool if it is run during appserver 82 * deployment 83 * @param args arguments with various options and endpoint class 84 * 85 * @return true if there is no error, otherwise false 86 */ 87 public abstract boolean wsgen(OutputStream logStream, Container container, String[] args); 88 89 /** 90 * Invokes wsgen on the endpoint implementation, and generates the necessary 91 * artifacts like wrapper, exception bean classes etc. 92 * 93 * @return true if there is no error, otherwise false 94 * @see #wsgen(OutputStream, Container, String[]) 95 */ 96 public boolean wsgen(OutputStream logStream, String[] args) { 97 return wsgen(logStream, Container.NONE, args); 98 } 99 100 }