Thu, 31 Aug 2017 15:18:52 +0800
merge
1 /*
2 * Copyright (c) 1997, 2012, 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 */
26 package com.sun.tools.internal.ws.processor.modeler.wsdl;
28 import com.sun.tools.internal.ws.resources.WscompileMessages;
29 import com.sun.tools.internal.ws.wscompile.ErrorReceiver;
30 import org.xml.sax.SAXParseException;
32 import java.io.OutputStream;
33 import java.io.PrintStream;
34 import java.net.UnknownHostException;
36 public class ConsoleErrorReporter extends ErrorReceiver {
38 private boolean hasError;
39 private PrintStream output;
40 private boolean debug;
42 public ConsoleErrorReporter(PrintStream stream) {
43 this.output = stream;
44 }
46 public ConsoleErrorReporter(OutputStream outputStream) {
47 this.output = new PrintStream(outputStream);
48 }
50 public boolean hasError() {
51 return hasError;
52 }
54 public void error(SAXParseException e) {
55 if(debug)
56 e.printStackTrace();
57 hasError = true;
58 if((e.getSystemId() == null && e.getPublicId() == null) && (e.getCause() instanceof UnknownHostException)) {
59 print(WscompileMessages.WSIMPORT_ERROR_MESSAGE(e.toString()), e);
60 } else {
61 print(WscompileMessages.WSIMPORT_ERROR_MESSAGE(e.getMessage()), e);
62 }
63 }
67 public void fatalError(SAXParseException e) {
68 if(debug)
69 e.printStackTrace();
70 hasError = true;
71 print(WscompileMessages.WSIMPORT_ERROR_MESSAGE(e.getMessage()), e);
72 }
74 public void warning(SAXParseException e) {
75 print(WscompileMessages.WSIMPORT_WARNING_MESSAGE(e.getMessage()), e);
76 }
78 /**
79 * Used to report possibly verbose information that
80 * can be safely ignored.
81 */
82 public void info(SAXParseException e) {
83 print(WscompileMessages.WSIMPORT_INFO_MESSAGE(e.getMessage()), e);
84 }
86 public void debug(SAXParseException e){
87 print(WscompileMessages.WSIMPORT_DEBUG_MESSAGE(e.getMessage()), e);
88 }
91 private void print(String message, SAXParseException e) {
92 output.println(message);
93 output.println(getLocationString(e));
94 output.println();
95 }
97 public void enableDebugging(){
98 this.debug = true;
99 }
101 }