diff options
Diffstat (limited to 'gnu/xml/validation')
28 files changed, 221 insertions, 217 deletions
diff --git a/gnu/xml/validation/datatype/AnySimpleType.java b/gnu/xml/validation/datatype/AnySimpleType.java index 36fb98daa..a13749ea5 100644 --- a/gnu/xml/validation/datatype/AnySimpleType.java +++ b/gnu/xml/validation/datatype/AnySimpleType.java @@ -49,7 +49,7 @@ final class AnySimpleType { super(new QName(XMLConstants.W3C_XML_SCHEMA_NS_URI, "anySimpleType"), ANY, /* variety */ - (Set) null, /* facets */ + null, /* facets */ 0, /* fundametalFacets */ (SimpleType) Type.ANY_TYPE, /* baseType */ null); diff --git a/gnu/xml/validation/datatype/AtomicSimpleType.java b/gnu/xml/validation/datatype/AtomicSimpleType.java index 38528eecf..54bd7d5a3 100644 --- a/gnu/xml/validation/datatype/AtomicSimpleType.java +++ b/gnu/xml/validation/datatype/AtomicSimpleType.java @@ -52,7 +52,7 @@ public class AtomicSimpleType { public AtomicSimpleType(QName name, - Set facets, + Set<Facet> facets, int fundamentalFacets, SimpleType baseType, Annotation annotation) diff --git a/gnu/xml/validation/datatype/BooleanType.java b/gnu/xml/validation/datatype/BooleanType.java index 5d98d2412..33a918614 100644 --- a/gnu/xml/validation/datatype/BooleanType.java +++ b/gnu/xml/validation/datatype/BooleanType.java @@ -59,8 +59,8 @@ final class BooleanType Facet.WHITESPACE }; - static final Set VALUE_SPACE = - new TreeSet(Arrays.asList(new String[] {"true", "false", "1", "0"})); + static final Set<String> VALUE_SPACE = + new TreeSet<String>(Arrays.asList(new String[] {"true", "false", "1", "0"})); BooleanType() { diff --git a/gnu/xml/validation/datatype/DoubleType.java b/gnu/xml/validation/datatype/DoubleType.java index dfaa7c8cb..c9f479557 100644 --- a/gnu/xml/validation/datatype/DoubleType.java +++ b/gnu/xml/validation/datatype/DoubleType.java @@ -64,8 +64,8 @@ final class DoubleType Facet.MIN_EXCLUSIVE }; - static final Set SPECIAL = - new TreeSet(Arrays.asList(new String[] {"INF", "-INF", "NaN"})); + static final Set<String> SPECIAL = + new TreeSet<String>(Arrays.asList(new String[] {"INF", "-INF", "NaN"})); DoubleType() { diff --git a/gnu/xml/validation/datatype/DurationType.java b/gnu/xml/validation/datatype/DurationType.java index 6c0f7b889..33e210b94 100644 --- a/gnu/xml/validation/datatype/DurationType.java +++ b/gnu/xml/validation/datatype/DurationType.java @@ -52,7 +52,7 @@ final class DurationType { static class Duration - implements Comparable + implements Comparable<Duration> { int years; int months; @@ -60,6 +60,7 @@ final class DurationType int minutes; float seconds; + @Override public int hashCode() { int hc = years; @@ -70,6 +71,7 @@ final class DurationType return hc; } + @Override public boolean equals(Object other) { if (other instanceof Duration) @@ -84,24 +86,20 @@ final class DurationType return false; } - public int compareTo(Object other) + @Override + public int compareTo(Duration duration) { - if (other instanceof Duration) - { - Duration duration = (Duration) other; - if (duration.years != years) - return years - duration.years; - if (duration.months != months) - return months - duration.months; - if (duration.days != days) - return days - duration.days; - if (duration.minutes != minutes) - return minutes = duration.minutes; - if (duration.seconds == seconds) - return 0; - return (seconds < duration.seconds) ? -1 : 1; - } - return 0; + if (duration.years != years) + return years - duration.years; + if (duration.months != months) + return months - duration.months; + if (duration.days != days) + return days - duration.days; + if (duration.minutes != minutes) + return minutes = duration.minutes; + if (duration.seconds == seconds) + return 0; + return (seconds < duration.seconds) ? -1 : 1; } } @@ -173,8 +171,7 @@ final class DurationType public Object createValue(String value, ValidationContext context) { boolean negative = false; - int days = 0, months = 0, years = 0; - int minutes = 0; + int days = 0, years = 0, minutes = 0; float seconds = 0.0f; int len = value.length(); char expect = 'P'; @@ -232,6 +229,7 @@ final class DurationType duration.days = days; duration.minutes = minutes; duration.seconds = seconds; + duration.years = years; return duration; } diff --git a/gnu/xml/validation/datatype/FloatType.java b/gnu/xml/validation/datatype/FloatType.java index 8dbb4aa56..b9b25b252 100644 --- a/gnu/xml/validation/datatype/FloatType.java +++ b/gnu/xml/validation/datatype/FloatType.java @@ -64,8 +64,8 @@ final class FloatType Facet.MIN_EXCLUSIVE }; - static final Set SPECIAL = - new TreeSet(Arrays.asList(new String[] {"INF", "-INF", "NaN"})); + static final Set<String> SPECIAL = + new TreeSet<String>(Arrays.asList(new String[] {"INF", "-INF", "NaN"})); FloatType() { diff --git a/gnu/xml/validation/datatype/GDayType.java b/gnu/xml/validation/datatype/GDayType.java index cc6b8e3d4..e9d836adc 100644 --- a/gnu/xml/validation/datatype/GDayType.java +++ b/gnu/xml/validation/datatype/GDayType.java @@ -52,16 +52,18 @@ final class GDayType { static class GDay - implements Comparable + implements Comparable<GDay> { int day; + @Override public int hashCode() { return day; } + @Override public boolean equals(Object other) { if (other instanceof GDay) @@ -69,16 +71,12 @@ final class GDayType return false; } - public int compareTo(Object other) + @Override + public int compareTo(GDay gd) { - if (other instanceof GDay) - { - GDay gd = (GDay) other; - if (gd.day == day) - return 0; - return (day < gd.day) ? -1 : 1; - } - return 0; + if (gd.day == day) + return 0; + return (day < gd.day) ? -1 : 1; } } diff --git a/gnu/xml/validation/datatype/GMonthDayType.java b/gnu/xml/validation/datatype/GMonthDayType.java index d293d9b57..8832fe79d 100644 --- a/gnu/xml/validation/datatype/GMonthDayType.java +++ b/gnu/xml/validation/datatype/GMonthDayType.java @@ -52,17 +52,19 @@ final class GMonthDayType { static class GMonthDay - implements Comparable + implements Comparable<GMonthDay> { int month; int day; + @Override public int hashCode() { return month * 31 + day; } + @Override public boolean equals(Object other) { if (other instanceof GMonthDay) @@ -73,20 +75,16 @@ final class GMonthDayType return false; } - public int compareTo(Object other) + @Override + public int compareTo(GMonthDay gmd) { - if (other instanceof GMonthDay) - { - GMonthDay gmd = (GMonthDay) other; - if (gmd.month == month) - { - if (gmd.day == day) - return 0; - return (day < gmd.day) ? -1 : 1; - } - return (month < gmd.month) ? -1 : 1; - } - return 0; + if (gmd.month == month) + { + if (gmd.day == day) + return 0; + return (day < gmd.day) ? -1 : 1; + } + return (month < gmd.month) ? -1 : 1; } } diff --git a/gnu/xml/validation/datatype/GMonthType.java b/gnu/xml/validation/datatype/GMonthType.java index 9450874b9..daa907bab 100644 --- a/gnu/xml/validation/datatype/GMonthType.java +++ b/gnu/xml/validation/datatype/GMonthType.java @@ -52,16 +52,18 @@ final class GMonthType { static class GMonth - implements Comparable + implements Comparable<GMonth> { int month; + @Override public int hashCode() { return month; } + @Override public boolean equals(Object other) { if (other instanceof GMonth) @@ -69,16 +71,12 @@ final class GMonthType return false; } - public int compareTo(Object other) + @Override + public int compareTo(GMonth gm) { - if (other instanceof GMonth) - { - GMonth gm = (GMonth) other; - if (gm.month == month) - return 0; - return (month < gm.month) ? -1 : 1; - } - return 0; + if (gm.month == month) + return 0; + return (month < gm.month) ? -1 : 1; } } diff --git a/gnu/xml/validation/datatype/GYearMonthType.java b/gnu/xml/validation/datatype/GYearMonthType.java index 9aabfb61c..e10e511be 100644 --- a/gnu/xml/validation/datatype/GYearMonthType.java +++ b/gnu/xml/validation/datatype/GYearMonthType.java @@ -52,17 +52,19 @@ final class GYearMonthType { static class GYearMonth - implements Comparable + implements Comparable<GYearMonth> { int year; int month; + @Override public int hashCode() { return year * 31 + month; } + @Override public boolean equals(Object other) { if (other instanceof GYearMonth) @@ -73,20 +75,16 @@ final class GYearMonthType return false; } - public int compareTo(Object other) + @Override + public int compareTo(GYearMonth gmy) { - if (other instanceof GYearMonth) + if (gmy.year == year) { - GYearMonth gmy = (GYearMonth) other; - if (gmy.year == year) - { - if (gmy.month == month) - return 0; - return (month < gmy.month) ? -1 : 1; - } - return (year < gmy.year) ? -1 : 1; + if (gmy.month == month) + return 0; + return (month < gmy.month) ? -1 : 1; } - return 0; + return (year < gmy.year) ? -1 : 1; } } diff --git a/gnu/xml/validation/datatype/GYearType.java b/gnu/xml/validation/datatype/GYearType.java index 5b1e03232..d69fda430 100644 --- a/gnu/xml/validation/datatype/GYearType.java +++ b/gnu/xml/validation/datatype/GYearType.java @@ -52,16 +52,18 @@ final class GYearType { static class GYear - implements Comparable + implements Comparable<GYear> { int year; + @Override public int hashCode() { return year; } + @Override public boolean equals(Object other) { if (other instanceof GYear) @@ -69,16 +71,12 @@ final class GYearType return false; } - public int compareTo(Object other) + @Override + public int compareTo(GYear gy) { - if (other instanceof GYear) - { - GYear gy = (GYear) other; - if (gy.year == year) - return 0; - return (year < gy.year) ? -1 : 1; - } - return 0; + if (gy.year == year) + return 0; + return (year < gy.year) ? -1 : 1; } } diff --git a/gnu/xml/validation/datatype/ListSimpleType.java b/gnu/xml/validation/datatype/ListSimpleType.java index 1e0d41d01..54a753c9b 100644 --- a/gnu/xml/validation/datatype/ListSimpleType.java +++ b/gnu/xml/validation/datatype/ListSimpleType.java @@ -57,7 +57,7 @@ public class ListSimpleType */ public final SimpleType itemType; - public ListSimpleType(QName name, Set facets, + public ListSimpleType(QName name, Set<Facet> facets, int fundamentalFacets, SimpleType baseType, Annotation annotation, SimpleType itemType) { diff --git a/gnu/xml/validation/datatype/MaxExclusiveFacet.java b/gnu/xml/validation/datatype/MaxExclusiveFacet.java index 90e940371..e6d0beab4 100644 --- a/gnu/xml/validation/datatype/MaxExclusiveFacet.java +++ b/gnu/xml/validation/datatype/MaxExclusiveFacet.java @@ -99,7 +99,9 @@ public final class MaxExclusiveFacet { if (!(test.getClass().equals(value.getClass()))) return false; - return ((Comparable) test).compareTo(value) < 0; + @SuppressWarnings("unchecked") + Comparable<Object> comp = (Comparable<Object>) test; + return comp.compareTo(value) < 0; } Number nvalue = (Number) value; if (!(test instanceof Number)) diff --git a/gnu/xml/validation/datatype/MaxInclusiveFacet.java b/gnu/xml/validation/datatype/MaxInclusiveFacet.java index c260113da..b70dcbd70 100644 --- a/gnu/xml/validation/datatype/MaxInclusiveFacet.java +++ b/gnu/xml/validation/datatype/MaxInclusiveFacet.java @@ -100,7 +100,9 @@ public final class MaxInclusiveFacet { if (!(test.getClass().equals(value.getClass()))) return false; - return ((Comparable) test).compareTo(value) <= 0; + @SuppressWarnings("unchecked") + Comparable<Object> comp = (Comparable<Object>) test; + return comp.compareTo(value) <= 0; } Number nvalue = (Number) value; if (!(test instanceof Number)) diff --git a/gnu/xml/validation/datatype/MinExclusiveFacet.java b/gnu/xml/validation/datatype/MinExclusiveFacet.java index a779d09d8..b5717851b 100644 --- a/gnu/xml/validation/datatype/MinExclusiveFacet.java +++ b/gnu/xml/validation/datatype/MinExclusiveFacet.java @@ -99,7 +99,9 @@ public final class MinExclusiveFacet { if (!(test.getClass().equals(value.getClass()))) return false; - return ((Comparable) test).compareTo(value) > 0; + @SuppressWarnings("unchecked") + Comparable<Object> comp = (Comparable<Object>) test; + return comp.compareTo(value) > 0; } Number nvalue = (Number) value; if (!(test instanceof Number)) diff --git a/gnu/xml/validation/datatype/MinInclusiveFacet.java b/gnu/xml/validation/datatype/MinInclusiveFacet.java index 6138c9af8..11412f8c7 100644 --- a/gnu/xml/validation/datatype/MinInclusiveFacet.java +++ b/gnu/xml/validation/datatype/MinInclusiveFacet.java @@ -100,7 +100,9 @@ public final class MinInclusiveFacet { if (!(test.getClass().equals(value.getClass()))) return false; - return ((Comparable) test).compareTo(value) >= 0; + @SuppressWarnings("unchecked") + Comparable<Object> comp = (Comparable<Object>) test; + return comp.compareTo(value) >= 0; } Number nvalue = (Number) value; if (!(test instanceof Number)) diff --git a/gnu/xml/validation/datatype/SimpleType.java b/gnu/xml/validation/datatype/SimpleType.java index 1233723bd..bbfe0fa4a 100644 --- a/gnu/xml/validation/datatype/SimpleType.java +++ b/gnu/xml/validation/datatype/SimpleType.java @@ -89,7 +89,7 @@ public class SimpleType /** * The facets of this simple type. */ - public Set facets; + public Set<Facet> facets; /** * The fundamental facets of this simple type. @@ -107,7 +107,7 @@ public class SimpleType */ public final Annotation annotation; - public SimpleType(QName name, int variety, Set facets, + public SimpleType(QName name, int variety, Set<Facet> facets, int fundamentalFacets, SimpleType baseType, Annotation annotation) { @@ -141,9 +141,9 @@ public class SimpleType if (facets != null && !facets.isEmpty()) { Object parsedValue = createValue(value, context); - for (Iterator i = facets.iterator(); i.hasNext(); ) + for (Iterator<Facet> i = facets.iterator(); i.hasNext(); ) { - Facet facet = (Facet) i.next(); + Facet facet = i.next(); switch (facet.type) { case Facet.LENGTH: diff --git a/gnu/xml/validation/datatype/TimeType.java b/gnu/xml/validation/datatype/TimeType.java index 83ada5bc6..7c508c434 100644 --- a/gnu/xml/validation/datatype/TimeType.java +++ b/gnu/xml/validation/datatype/TimeType.java @@ -53,16 +53,18 @@ final class TimeType { static class Time - implements Comparable + implements Comparable<Time> { int minutes; float seconds; + @Override public int hashCode() { return minutes * 31 + new Float(seconds).hashCode(); } + @Override public boolean equals(Object other) { if (other instanceof Time) @@ -73,18 +75,14 @@ final class TimeType return false; } - public int compareTo(Object other) + @Override + public int compareTo(Time time) { - if (other instanceof Time) - { - Time time = (Time) other; - if (time.minutes != minutes) - return minutes - time.minutes; - if (time.seconds == seconds) - return 0; - return (seconds < time.seconds) ? -1 : 1; - } - return 0; + if (time.minutes != minutes) + return minutes - time.minutes; + if (time.seconds == seconds) + return 0; + return (seconds < time.seconds) ? -1 : 1; } } diff --git a/gnu/xml/validation/datatype/TypeBuilder.java b/gnu/xml/validation/datatype/TypeBuilder.java index 087333153..7a4e9610e 100644 --- a/gnu/xml/validation/datatype/TypeBuilder.java +++ b/gnu/xml/validation/datatype/TypeBuilder.java @@ -59,7 +59,7 @@ public class TypeBuilder { this.type = type; // TODO fundamental facets - type.facets = new LinkedHashSet(); + type.facets = new LinkedHashSet<Facet>(); } public void addParameter(String name, String value, ValidationContext context) diff --git a/gnu/xml/validation/datatype/TypeLibrary.java b/gnu/xml/validation/datatype/TypeLibrary.java index 4db48f799..dff67ab5d 100644 --- a/gnu/xml/validation/datatype/TypeLibrary.java +++ b/gnu/xml/validation/datatype/TypeLibrary.java @@ -101,10 +101,10 @@ public class TypeLibrary public static final SimpleType UNSIGNED_BYTE = new UnsignedByteType(); public static final SimpleType POSITIVE_INTEGER = new PositiveIntegerType(); - private static Map byName; + private static Map<String,SimpleType> byName; static { - byName = new HashMap(); + byName = new HashMap<String,SimpleType>(); byName.put("anySimpleType", ANY_SIMPLE_TYPE); byName.put("string", STRING); byName.put("boolean", BOOLEAN); diff --git a/gnu/xml/validation/datatype/UnionSimpleType.java b/gnu/xml/validation/datatype/UnionSimpleType.java index 253e1df7b..df219748a 100644 --- a/gnu/xml/validation/datatype/UnionSimpleType.java +++ b/gnu/xml/validation/datatype/UnionSimpleType.java @@ -56,11 +56,11 @@ public class UnionSimpleType /** * The member types in this union. */ - public final List memberTypes; + public final List<SimpleType> memberTypes; - public UnionSimpleType(QName name, Set facets, + public UnionSimpleType(QName name, Set<Facet> facets, int fundamentalFacets, SimpleType baseType, - Annotation annotation, List memberTypes) + Annotation annotation, List<SimpleType> memberTypes) { super(name, UNION, facets, fundamentalFacets, baseType, annotation); this.memberTypes = memberTypes; @@ -70,9 +70,9 @@ public class UnionSimpleType throws DatatypeException { super.checkValid(value, context); - for (Iterator i = memberTypes.iterator(); i.hasNext(); ) + for (Iterator<SimpleType> i = memberTypes.iterator(); i.hasNext(); ) { - SimpleType type = (SimpleType) i.next(); + SimpleType type = i.next(); if (type.isValid(value, context)) return; } diff --git a/gnu/xml/validation/relaxng/DataPattern.java b/gnu/xml/validation/relaxng/DataPattern.java index f4e36c726..3e7e0688c 100644 --- a/gnu/xml/validation/relaxng/DataPattern.java +++ b/gnu/xml/validation/relaxng/DataPattern.java @@ -53,7 +53,7 @@ class DataPattern Datatype type; DatatypeLibrary datatypeLibrary; - List params = new LinkedList(); + List<Param> params = new LinkedList<Param>(); Pattern exceptPattern; } diff --git a/gnu/xml/validation/relaxng/FullSyntaxBuilder.java b/gnu/xml/validation/relaxng/FullSyntaxBuilder.java index bb73c4f38..da24362fe 100644 --- a/gnu/xml/validation/relaxng/FullSyntaxBuilder.java +++ b/gnu/xml/validation/relaxng/FullSyntaxBuilder.java @@ -78,53 +78,55 @@ class FullSyntaxBuilder /** * Complete vocabulary (elements and attributes) of the full syntax. */ - static final Map VOCABULARY = new HashMap(); - static final Set STRIPPED_ATTRIBUTES = new HashSet(); - static final Set PATTERN_ELEMENTS = new HashSet(); + static final Map<String,Set<String>> VOCABULARY = new HashMap<String,Set<String>>(); + static final Set<String> STRIPPED_ATTRIBUTES = new HashSet<String>(); + static final Set<String> PATTERN_ELEMENTS = new HashSet<String>(); + static final Set<String> EMPTY_STRING_SET = Collections.emptySet(); + static { - Set elementAttrs = Collections.singleton("name"); - Set dataAttrs = new HashSet(); + Set<String> elementAttrs = Collections.singleton("name"); + Set<String> dataAttrs = new HashSet<String>(); dataAttrs.add("type"); dataAttrs.add("datatypeLibrary"); - Set valueAttrs = new HashSet(); + Set<String> valueAttrs = new HashSet<String>(); valueAttrs.add("type"); valueAttrs.add("datatypeLibrary"); valueAttrs.add("ns"); - Set externalAttrs = Collections.singleton("href"); - Set startAttrs = Collections.singleton("combine"); - Set defineAttrs = new HashSet(); + Set<String> externalAttrs = Collections.singleton("href"); + Set<String> startAttrs = Collections.singleton("combine"); + Set<String> defineAttrs = new HashSet<String>(); defineAttrs.add("name"); defineAttrs.add("combine"); - Set nsAttrs = Collections.singleton("ns"); + Set<String> nsAttrs = Collections.singleton("ns"); VOCABULARY.put("element", elementAttrs); VOCABULARY.put("attribute", elementAttrs); - VOCABULARY.put("group", Collections.EMPTY_SET); - VOCABULARY.put("interleave", Collections.EMPTY_SET); - VOCABULARY.put("choice", Collections.EMPTY_SET); - VOCABULARY.put("optional", Collections.EMPTY_SET); - VOCABULARY.put("zeroOrMore", Collections.EMPTY_SET); - VOCABULARY.put("oneOrMore", Collections.EMPTY_SET); - VOCABULARY.put("list", Collections.EMPTY_SET); - VOCABULARY.put("mixed", Collections.EMPTY_SET); + VOCABULARY.put("group", EMPTY_STRING_SET); + VOCABULARY.put("interleave", EMPTY_STRING_SET); + VOCABULARY.put("choice", EMPTY_STRING_SET); + VOCABULARY.put("optional", EMPTY_STRING_SET); + VOCABULARY.put("zeroOrMore", EMPTY_STRING_SET); + VOCABULARY.put("oneOrMore", EMPTY_STRING_SET); + VOCABULARY.put("list", EMPTY_STRING_SET); + VOCABULARY.put("mixed", EMPTY_STRING_SET); VOCABULARY.put("ref", elementAttrs); VOCABULARY.put("parentRef", elementAttrs); - VOCABULARY.put("empty", Collections.EMPTY_SET); - VOCABULARY.put("text", Collections.EMPTY_SET); + VOCABULARY.put("empty", EMPTY_STRING_SET); + VOCABULARY.put("text", EMPTY_STRING_SET); VOCABULARY.put("value", valueAttrs); VOCABULARY.put("data", dataAttrs); - VOCABULARY.put("notAllowed", Collections.EMPTY_SET); + VOCABULARY.put("notAllowed", EMPTY_STRING_SET); VOCABULARY.put("externalRef", externalAttrs); - VOCABULARY.put("grammar", Collections.EMPTY_SET); + VOCABULARY.put("grammar", EMPTY_STRING_SET); VOCABULARY.put("param", elementAttrs); - VOCABULARY.put("except", Collections.EMPTY_SET); - VOCABULARY.put("div", Collections.EMPTY_SET); + VOCABULARY.put("except", EMPTY_STRING_SET); + VOCABULARY.put("div", EMPTY_STRING_SET); VOCABULARY.put("include", externalAttrs); VOCABULARY.put("start", startAttrs); VOCABULARY.put("define", defineAttrs); VOCABULARY.put("name", nsAttrs); - VOCABULARY.put("anyName", Collections.EMPTY_SET); + VOCABULARY.put("anyName", EMPTY_STRING_SET); VOCABULARY.put("nsName", nsAttrs); STRIPPED_ATTRIBUTES.add("name"); @@ -152,9 +154,9 @@ class FullSyntaxBuilder PATTERN_ELEMENTS.add("grammar"); } - private Set urls; // recursion checking + private Set<String> urls; // recursion checking private int refCount; // creation of ref names - private Map datatypeLibraries; + private Map<String,DatatypeLibrary> datatypeLibraries; /** * Parse the specified document into a grammar. @@ -162,7 +164,7 @@ class FullSyntaxBuilder synchronized Grammar parse(Document doc) throws IOException { - urls = new HashSet(); + urls = new HashSet<String>(); refCount = 1; doc.normalizeDocument(); // Normalize XML document @@ -195,24 +197,24 @@ class FullSyntaxBuilder } // 4.19. define and ref elements - Set allDefines = new HashSet(), reachableDefines = new HashSet(); + Set<Element> allDefines = new HashSet<Element>(), reachableDefines = new HashSet<Element>(); getDefines(allDefines, grammar, grammar, false); getDefines(reachableDefines, grammar, start, true); allDefines.removeAll(reachableDefines); - for (Iterator i = allDefines.iterator(); i.hasNext(); ) + for (Iterator<Element> i = allDefines.iterator(); i.hasNext(); ) { // remove unreachable defines - Element d = (Element) i.next(); + Element d = i.next(); Node parent = d.getParentNode(); parent.removeChild(d); } // replace all elements that are not children of defines by refs to new // defines - Set elements = new HashSet(); + Set<Element> elements = new HashSet<Element>(); getElements(elements, grammar, grammar); - for (Iterator i = elements.iterator(); i.hasNext(); ) + for (Iterator<Element> i = elements.iterator(); i.hasNext(); ) { - Element element = (Element) i.next(); + Element element = i.next(); Node parent = element.getParentNode(); if (!reachableDefines.contains(parent)) { @@ -230,9 +232,9 @@ class FullSyntaxBuilder } } // Get defines that don't have element children - for (Iterator i = reachableDefines.iterator(); i.hasNext(); ) + for (Iterator<Element> i = reachableDefines.iterator(); i.hasNext(); ) { - Element d = (Element) i.next(); + Element d = i.next(); Element child = getFirstChildElement(d); if (child != null && "element".equals(child.getLocalName())) i.remove(); @@ -240,9 +242,9 @@ class FullSyntaxBuilder // Expand refs that refer to these defines expandRefs(reachableDefines, grammar); // Remove any defines that don't have element children - for (Iterator i = reachableDefines.iterator(); i.hasNext(); ) + for (Iterator<Element> i = reachableDefines.iterator(); i.hasNext(); ) { - Element d = (Element) i.next(); + Element d = i.next(); Node parent = d.getParentNode(); parent.removeChild(d); } @@ -254,7 +256,7 @@ class FullSyntaxBuilder return ret; } - private void getDefines(Set defines, Element grammar, Element node, + private void getDefines(Set<Element> defines, Element grammar, Element node, boolean followRefs) { String elementName = node.getLocalName(); @@ -281,7 +283,7 @@ class FullSyntaxBuilder getDefines(defines, grammar, child, followRefs); } - private void getElements(Set elements, Element grammar, Element node) + private void getElements(Set<Element> elements, Element grammar, Element node) { String elementName = node.getLocalName(); if ("element".equals(elementName)) @@ -291,16 +293,16 @@ class FullSyntaxBuilder getElements(elements, grammar, child); } - private void expandRefs(Set defines, Element node) + private void expandRefs(Set<Element> defines, Element node) throws GrammarException { String elementName = node.getLocalName(); if ("ref".equals(elementName)) { String rname = node.getAttribute("name"); - for (Iterator i = defines.iterator(); i.hasNext(); ) + for (Iterator<Element> i = defines.iterator(); i.hasNext(); ) { - Element define = (Element) i.next(); + Element define = i.next(); String dname = define.getAttribute("name"); if (rname.equals(dname)) { @@ -351,7 +353,7 @@ class FullSyntaxBuilder parent.removeChild(node); else { - Set allowedAttrs = (Set) VOCABULARY.get(elementName); + Set<String> allowedAttrs = VOCABULARY.get(elementName); NamedNodeMap attrs = node.getAttributes(); int len = attrs.getLength(); for (int i = len - 1; i >= 0; i--) @@ -467,19 +469,19 @@ class FullSyntaxBuilder transform(element); urls.remove(href); // handle components - List includeComponents = getComponents(include); - List grammarComponents = getComponents(element); - for (Iterator i = includeComponents.iterator(); i.hasNext(); ) + List<Element> includeComponents = getComponents(include); + List<Element> grammarComponents = getComponents(element); + for (Iterator<Element> i = includeComponents.iterator(); i.hasNext(); ) { - Element comp = (Element) i.next(); + Element comp = i.next(); String compName = comp.getLocalName(); if ("start".equals(compName)) { boolean found = false; - for (Iterator j = grammarComponents.iterator(); + for (Iterator<Element> j = grammarComponents.iterator(); j.hasNext(); ) { - Element c2 = (Element) j.next(); + Element c2 = j.next(); if ("start".equals(c2.getLocalName())) { c2.getParentNode().removeChild(c2); @@ -494,10 +496,10 @@ class FullSyntaxBuilder { String name = comp.getAttribute("name"); boolean found = false; - for (Iterator j = grammarComponents.iterator(); + for (Iterator<Element> j = grammarComponents.iterator(); j.hasNext(); ) { - Element c2 = (Element) j.next(); + Element c2 = j.next(); if ("define".equals(c2.getLocalName()) && name.equals(c2.getAttribute("name"))) { @@ -706,7 +708,7 @@ class FullSyntaxBuilder forbidDescendants(node, Collections.singleton("anyName")); else if ("nsName".equals(parentName)) { - Set names = new HashSet(); + Set<String> names = new HashSet<String>(); names.add("nsName"); names.add("anyName"); forbidDescendants(node, names); @@ -748,7 +750,7 @@ class FullSyntaxBuilder else if ("grammar".equals(elementName)) { String combine = null; - List nodes = new LinkedList(); + List<Node> nodes = new LinkedList<Node>(); Node ctx = node.getFirstChild(); while (ctx != null) { @@ -767,8 +769,8 @@ class FullSyntaxBuilder if (!nodes.isEmpty()) combineNodes(node, combine, "start", nodes); // defines - Map defines = new HashMap(); - Map defineCombines = new HashMap(); + Map<String,List<Node>> defines = new HashMap<String,List<Node>>(); + Map<String,String> defineCombines = new HashMap<String,String>(); ctx = node.getFirstChild(); while (ctx != null) { @@ -776,7 +778,7 @@ class FullSyntaxBuilder if ("define".equals(ctx.getLocalName())) { String name = ((Element) ctx).getAttribute("name"); - combine = (String) defineCombines.get(name); + combine = defineCombines.get(name); String c = ((Element) ctx).getAttribute("combine"); if (combine != null && !combine.equals(c)) throw new GrammarException("multiple define " + @@ -784,21 +786,21 @@ class FullSyntaxBuilder name + "' but no " + "combine attribute"); defineCombines.put(name, c); - nodes = (List) defines.get(name); + nodes = defines.get(name); if (nodes == null) { - nodes = new LinkedList(); + nodes = new LinkedList<Node>(); defines.put(name, nodes); } nodes.add(ctx); } ctx = next; } - for (Iterator i = defines.keySet().iterator(); i.hasNext(); ) + for (Iterator<String> i = defines.keySet().iterator(); i.hasNext(); ) { - String name = (String) i.next(); - combine = (String) defineCombines.get(name); - nodes = (List) defines.get(name); + String name = i.next(); + combine = defineCombines.get(name); + nodes = defines.get(name); if (!nodes.isEmpty()) combineNodes(node, combine, "define", nodes); } @@ -937,7 +939,7 @@ class FullSyntaxBuilder grammar = grammar1; String name = ((Element) node).getAttribute("name"); - if (name != null) + if (name == null) throw new GrammarException("no name attribute on " + elementName); Node define = null; @@ -1205,9 +1207,9 @@ class FullSyntaxBuilder /** * Returns the "components" of an element, as described in section 4.7. */ - private List getComponents(Node node) + private List<Element> getComponents(Node node) { - List ret = new LinkedList(); + List<Element> ret = new LinkedList<Element>(); for (Node ctx = node.getFirstChild(); ctx != null; ctx = ctx.getNextSibling()) { @@ -1220,7 +1222,7 @@ class FullSyntaxBuilder if ("div".equals(name)) ret.addAll(getComponents(ctx)); else if (VOCABULARY.containsKey(name)) - ret.add(ctx); + ret.add((Element) ctx); } return ret; } @@ -1257,7 +1259,7 @@ class FullSyntaxBuilder return (Element) ctx; } - private static void forbidDescendants(Node node, Set names) + private static void forbidDescendants(Node node, Set<String> names) throws GrammarException { for (Node ctx = node.getFirstChild(); ctx != null; @@ -1289,7 +1291,7 @@ class FullSyntaxBuilder } private static void combineNodes(Node node, String combine, String name, - List nodes) + List<Node> nodes) { Document doc = node.getOwnerDocument(); Node child = @@ -1298,9 +1300,9 @@ class FullSyntaxBuilder doc.createElementNS(XMLConstants.RELAXNG_NS_URI, combine); child.appendChild(combineNode); boolean inserted = false; - for (Iterator i = nodes.iterator(); i.hasNext(); ) + for (Iterator<Node> i = nodes.iterator(); i.hasNext(); ) { - Node startNode = (Node) i.next(); + Node startNode = i.next(); if (!inserted) { node.insertBefore(child, startNode); @@ -1635,8 +1637,8 @@ class FullSyntaxBuilder throws GrammarException { if (datatypeLibraries == null) - datatypeLibraries = new HashMap(); - DatatypeLibrary library = (DatatypeLibrary) datatypeLibraries.get(uri); + datatypeLibraries = new HashMap<String,DatatypeLibrary>(); + DatatypeLibrary library = datatypeLibraries.get(uri); if (library == null) { library = new DatatypeLibraryLoader().createDatatypeLibrary(uri); diff --git a/gnu/xml/validation/relaxng/Grammar.java b/gnu/xml/validation/relaxng/Grammar.java index c2407da2b..b933fa771 100644 --- a/gnu/xml/validation/relaxng/Grammar.java +++ b/gnu/xml/validation/relaxng/Grammar.java @@ -53,7 +53,7 @@ class Grammar { Pattern start; - List defines = new LinkedList(); + List<Define> defines = new LinkedList<Define>(); public Validator newValidator() { diff --git a/gnu/xml/validation/xmlschema/ComplexType.java b/gnu/xml/validation/xmlschema/ComplexType.java index 826ba32d9..f92212b50 100644 --- a/gnu/xml/validation/xmlschema/ComplexType.java +++ b/gnu/xml/validation/xmlschema/ComplexType.java @@ -37,10 +37,12 @@ exception statement from your version. */ package gnu.xml.validation.xmlschema; +import gnu.xml.validation.datatype.Annotation; +import gnu.xml.validation.datatype.Type; + import java.util.LinkedHashSet; import java.util.Set; import javax.xml.namespace.QName; -import gnu.xml.validation.datatype.Type; /** * A complex type definition. @@ -68,7 +70,9 @@ class ComplexType final boolean isAbstract; - Set attributeUses; + // Currently both AttributeUse and QName objects + // are added to this. + Set<Object> attributeUses; AnyAttribute attributeWildcard; @@ -84,7 +88,7 @@ class ComplexType final int prohibitedSubstitutions; - Set annotations; + Set<Annotation> annotations; ComplexType(QName name, boolean isAbstract, @@ -95,7 +99,7 @@ class ComplexType this.isAbstract = isAbstract; this.prohibitedSubstitutions = prohibitedSubstitutions; this.finality = finality; - attributeUses = new LinkedHashSet(); + attributeUses = new LinkedHashSet<Object>(); } } diff --git a/gnu/xml/validation/xmlschema/XMLSchema.java b/gnu/xml/validation/xmlschema/XMLSchema.java index fb8eb88b1..1df378385 100644 --- a/gnu/xml/validation/xmlschema/XMLSchema.java +++ b/gnu/xml/validation/xmlschema/XMLSchema.java @@ -37,8 +37,11 @@ exception statement from your version. */ package gnu.xml.validation.xmlschema; +import gnu.xml.validation.datatype.Type; + import java.util.LinkedHashMap; import java.util.Map; +import javax.xml.namespace.QName; import javax.xml.validation.Schema; import javax.xml.validation.Validator; import javax.xml.validation.ValidatorHandler; @@ -88,17 +91,17 @@ final class XMLSchema /** * The element declarations in this schema. */ - final Map elementDeclarations; + final Map<QName,ElementDeclaration> elementDeclarations; /** * The attribute declarations in this schema. */ - final Map attributeDeclarations; + final Map<QName,AttributeDeclaration> attributeDeclarations; /** * The type declarations in this schema. */ - final Map types; + final Map <QName,Type> types; XMLSchema(String targetNamespace, String version, int finalDefault, int blockDefault, @@ -111,9 +114,9 @@ final class XMLSchema this.blockDefault = blockDefault; this.attributeFormQualified = attributeFormQualified; this.elementFormQualified = elementFormQualified; - elementDeclarations = new LinkedHashMap(); - attributeDeclarations = new LinkedHashMap(); - types = new LinkedHashMap(); + elementDeclarations = new LinkedHashMap<QName,ElementDeclaration>(); + attributeDeclarations = new LinkedHashMap<QName,AttributeDeclaration>(); + types = new LinkedHashMap<QName,Type>(); } public Validator newValidator() diff --git a/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java b/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java index a7bad3129..3cfcfdedb 100644 --- a/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java +++ b/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java @@ -48,6 +48,7 @@ import org.relaxng.datatype.helpers.DatatypeLibraryLoader; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import gnu.xml.validation.datatype.Annotation; +import gnu.xml.validation.datatype.Facet; import gnu.xml.validation.datatype.SimpleType; import gnu.xml.validation.datatype.Type; @@ -525,10 +526,14 @@ class XMLSchemaBuilder throws DatatypeException { SimpleType type = (SimpleType) schema.types.get(typeName); + if (type != null) + return type; if (!XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(typeName.getNamespaceURI())) return null; String localName = typeName.getLocalPart(); - return (SimpleType) typeLibrary.createDatatype(localName); + type = (SimpleType) typeLibrary.createDatatype(localName); + schema.types.put(typeName, type); + return type; } SimpleType parseSimpleType(Node simpleType) @@ -549,10 +554,10 @@ class XMLSchemaBuilder typeFinal = getAttribute(schemaAttrs, "finalDefault"); } } - int typeFinality = parseSimpleTypeDerivationSet(typeFinal); + parseSimpleTypeDerivationSet(typeFinal); // TODO: Make use of typeFinality QName typeName = asQName(getAttribute(attrs, "name"), simpleType); int variety = 0; - Set facets = new LinkedHashSet(); + Set<Facet> facets = new LinkedHashSet<Facet>(); int fundamentalFacets = 0; // TODO SimpleType baseType = null; // TODO Annotation annotation = null; @@ -661,8 +666,7 @@ class XMLSchemaBuilder { NamedNodeMap attrs = restriction.getAttributes(); String base = getAttribute(attrs, "base"); - QName baseType = asQName(base, restriction); - SimpleType simpleType = null; + asQName(base, restriction); // TODO: make use of basetype for (Node child = restriction.getFirstChild(); child != null; child = child.getNextSibling()) { @@ -678,7 +682,7 @@ class XMLSchemaBuilder else if ("simpleType".equals(name)) { type.contentType = XMLSchema.CONTENT_SIMPLE; - simpleType = parseSimpleType(child); + parseSimpleType(child); // TODO: make use of SimpleType } else if ("minExclusive".equals(name)) { @@ -744,7 +748,7 @@ class XMLSchemaBuilder { NamedNodeMap attrs = extension.getAttributes(); String base = getAttribute(attrs, "base"); - QName baseType = asQName(base, extension); + asQName(base, extension); // TODO: make use of basetype for (Node child = extension.getFirstChild(); child != null; child = child.getNextSibling()) { diff --git a/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java b/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java index 6c4f1f392..1991432a2 100644 --- a/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java +++ b/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java @@ -75,16 +75,16 @@ final class XMLSchemaValidatorHandler ContentHandler contentHandler; ErrorHandler errorHandler; LSResourceResolver resourceResolver; - final LinkedList context; // element context - final ArrayList attributes; // attribute context; + final LinkedList<XMLSchemaElementTypeInfo> context; // element context + final ArrayList<XMLSchemaAttributeTypeInfo> attributes; // attribute context; XMLSchemaValidatorHandler(XMLSchema schema) { this.schema = schema; typeInfoProvider = new XMLSchemaTypeInfoProvider(this); namespaceSupport = new NamespaceSupport(); - context = new LinkedList(); - attributes = new ArrayList(); + context = new LinkedList<XMLSchemaElementTypeInfo>(); + attributes = new ArrayList<XMLSchemaAttributeTypeInfo>(); final String ns = XMLConstants.W3C_XML_SCHEMA_NS_URI; typeLibrary = new DatatypeLibraryLoader().createDatatypeLibrary(ns); } @@ -126,25 +126,23 @@ final class XMLSchemaValidatorHandler TypeInfo getElementTypeInfo() { - return (XMLSchemaElementTypeInfo) context.getFirst(); + return context.getFirst(); } TypeInfo getAttributeTypeInfo(int index) { - return (XMLSchemaAttributeTypeInfo) attributes.get(index); + return attributes.get(index); } boolean isIdAttribute(int index) { - XMLSchemaAttributeTypeInfo typeInfo = - (XMLSchemaAttributeTypeInfo) attributes.get(index); + XMLSchemaAttributeTypeInfo typeInfo = attributes.get(index); return typeInfo.id; } boolean isSpecified(int index) { - XMLSchemaAttributeTypeInfo typeInfo = - (XMLSchemaAttributeTypeInfo) attributes.get(index); + XMLSchemaAttributeTypeInfo typeInfo = attributes.get(index); return typeInfo.specified; } @@ -203,8 +201,7 @@ final class XMLSchemaValidatorHandler { namespaceSupport.pushContext(); QName name = new QName(uri, localName); - ElementDeclaration decl = - (ElementDeclaration) schema.elementDeclarations.get(name); + ElementDeclaration decl = schema.elementDeclarations.get(name); // Validation Rule: Element Locally Valid (Element) String xsiType = atts.getValue(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, "type"); |