01: /*
02: * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
03: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
04: *
05: * This code is free software; you can redistribute it and/or modify it
06: * under the terms of the GNU General Public License version 2 only, as
07: * published by the Free Software Foundation. Sun designates this
08: * particular file as subject to the "Classpath" exception as provided
09: * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22: * CA 95054 USA or visit www.sun.com if you need additional information or
23: * have any questions.
24: */
25:
26: /*
27: * @(#)$Id: CollisionInfo.java,v 1.1 2005/04/15 20:09:53 kohsuke Exp $
28: */
29:
30: package com.sun.tools.internal.xjc.reader.xmlschema;
31:
32: import org.xml.sax.Locator;
33:
34: /**
35: * Details of a name collision.
36: *
37: * @author
38: * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
39: */
40: final class CollisionInfo {
41: private final String name;
42: private final Locator source1;
43: private final Locator source2;
44:
45: public CollisionInfo(String name, Locator source1, Locator source2) {
46: this .name = name;
47: this .source1 = source1;
48: this .source2 = source2;
49: }
50:
51: /**
52: * Returns a localized message that describes the collision.
53: */
54: public String toString() {
55: return Messages.format(Messages.MSG_COLLISION_INFO, name,
56: printLocator(source1), printLocator(source2));
57: }
58:
59: private String printLocator(Locator loc) {
60: if (loc == null)
61: return "";
62:
63: int line = loc.getLineNumber();
64: String sysId = loc.getSystemId();
65: if (sysId == null)
66: sysId = Messages.format(Messages.MSG_UNKNOWN_FILE);
67:
68: if (line != -1)
69: return Messages.format(Messages.MSG_LINE_X_OF_Y, Integer
70: .toString(line), sysId);
71: else
72: return sysId;
73: }
74: }
|