OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libjava/] [classpath/] [javax/] [xml/] [transform/] [TransformerException.java] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
/* TransformerException.java --
2
   Copyright (C) 2004, 2005  Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
package javax.xml.transform;
38
 
39
import java.io.PrintStream;
40
import java.io.PrintWriter;
41
 
42
/**
43
 * An exception occurred during the transformation process.
44
 *
45
 * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
46
 */
47
public class TransformerException
48
  extends Exception
49
{
50
  private static final long serialVersionUID = 975798773772956428L;
51
 
52
  // Field names fixed by serialization spec.
53
  private SourceLocator  locator;
54
  private Throwable  containedException;
55
 
56
  /**
57
   * Constructor with a detail message.
58
   */
59
  public TransformerException(String msg)
60
  {
61
    this(msg, null, null);
62
  }
63
 
64
  /**
65
   * Constructor with an underlying cause.
66
   */
67
  public TransformerException(Throwable cause)
68
  {
69
    this(cause.getMessage(), null, cause);
70
  }
71
 
72
  /**
73
   * Constructor with a detail message and underlying cause.
74
   */
75
  public TransformerException(String msg, Throwable cause)
76
  {
77
    this(msg, null, cause);
78
  }
79
 
80
  /**
81
   * Constructor with a detail message and locator.
82
   */
83
  public TransformerException(String msg, SourceLocator locator)
84
  {
85
    this(msg, locator, null);
86
  }
87
 
88
  /**
89
   * Constructor with detail message, locator and underlying cause.
90
   */
91
  public TransformerException(String msg, SourceLocator locator,
92
                              Throwable cause)
93
  {
94
    super(msg);
95
    this.locator = locator;
96
    if (cause != null)
97
      {
98
        initCause(cause);
99
        this.containedException = cause;
100
      }
101
  }
102
 
103
  /**
104
   * Returns a locator indicating where the error occurred.
105
   */
106
  public SourceLocator getLocator()
107
  {
108
    return locator;
109
  }
110
 
111
  /**
112
   * Sets the locator indicating where the error occurred.
113
   */
114
  public void setLocator(SourceLocator location)
115
  {
116
    locator = location;
117
  }
118
 
119
  /**
120
   * Returns the underlying cause of this exception.
121
   */
122
  public Throwable getException()
123
  {
124
    return containedException;
125
  }
126
 
127
  /**
128
   * Returns the underlying cause of this exception.
129
   */
130
  public Throwable getCause()
131
  {
132
    return containedException;
133
  }
134
 
135
  /**
136
   * Initializes the root cause of this exception.
137
   * This method may be called only once, and will be called by the
138
   * constructor if a non-null cause is specified.
139
   * Really phenomenally poor API design.
140
   * @param cause the underlying cause
141
   * @exception IllegalArgumentException if this exception is passed as the
142
   * argument
143
   * @exception IllegalStateException if a cause has already been
144
   * initialized
145
   */
146
  public Throwable initCause(Throwable cause)
147
  {
148
    if (this.containedException != null)
149
      {
150
        throw new IllegalStateException();
151
      }
152
    if (cause == this)
153
      {
154
        throw new IllegalArgumentException();
155
      }
156
    this.containedException = cause;
157
    return this;
158
  }
159
 
160
  /**
161
   * Returns the exception message with location information appended.
162
   */
163
  public String getMessageAndLocation()
164
  {
165
    return (locator == null) ? getMessage() :
166
      getMessage() + ": " + getLocationAsString();
167
  }
168
 
169
  /**
170
   * Returns the location information as a string.
171
   */
172
  public String getLocationAsString()
173
  {
174
    if (locator == null)
175
      {
176
        return null;
177
      }
178
    String publicId = locator.getPublicId();
179
    String systemId = locator.getSystemId();
180
    int lineNumber = locator.getLineNumber();
181
    int columnNumber = locator.getColumnNumber();
182
    StringBuffer buffer = new StringBuffer ();
183
    if (publicId != null)
184
      {
185
        buffer.append ("publicId=");
186
        buffer.append (publicId);
187
      }
188
    if (systemId != null)
189
      {
190
        if (buffer.length() > 0)
191
          {
192
            buffer.append(' ');
193
          }
194
        buffer.append ("systemId=");
195
        buffer.append (systemId);
196
      }
197
    if (lineNumber != -1)
198
      {
199
        if (buffer.length() > 0)
200
          {
201
            buffer.append(' ');
202
          }
203
        buffer.append ("lineNumber=");
204
        buffer.append (lineNumber);
205
      }
206
    if (columnNumber != -1)
207
      {
208
        if (buffer.length() > 0)
209
          {
210
            buffer.append(' ');
211
          }
212
        buffer.append ("columnNumber=");
213
        buffer.append (columnNumber);
214
      }
215
    return buffer.toString();
216
  }
217
 
218
  public void printStackTrace()
219
  {
220
    printStackTrace(System.out);
221
  }
222
 
223
  public void printStackTrace(PrintStream s)
224
  {
225
    super.printStackTrace(s);
226
    if (containedException != null)
227
      {
228
        s.print("caused by ");
229
        containedException.printStackTrace(s);
230
      }
231
  }
232
 
233
  public void printStackTrace(PrintWriter s)
234
  {
235
    super.printStackTrace(s);
236
    if (containedException != null)
237
      {
238
        s.print("caused by ");
239
        containedException.printStackTrace(s);
240
      }
241
  }
242
 
243
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.