You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by an...@apache.org on 2011/07/31 13:59:25 UTC

svn commit: r1152570 - in /cocoon/cocoon3/trunk: cocoon-docs/src/changes/ cocoon-stax/src/main/java/org/apache/cocoon/stax/component/ cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/

Author: anathaniel
Date: Sun Jul 31 11:59:24 2011
New Revision: 1152570

URL: http://svn.apache.org/viewvc?rev=1152570&view=rev
Log:
Parametrise generic collections to avoid rawtype warnings and minizes scope of unavoidable @SuppressWarnings("unchecked")

Modified:
    cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml
    cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/component/XMLGenerator.java
    cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/ExtendedNamespaceContext.java
    cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/SimpleNamespaceContext.java
    cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/StAXEventContentHandler.java
    cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/XMLEventToContentHandler.java

Modified: cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml?rev=1152570&r1=1152569&r2=1152570&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml (original)
+++ cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml Sun Jul 31 11:59:24 2011
@@ -26,6 +26,12 @@
   xsi:schemaLocation="http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
 
   <body>
+    <release version="3.0.0-alpha-4" date="2011-00-00" description="unreleased">
+      <action dev="anathaniel" type="update">
+        [cocoon-stax] Parametrise generic collections to avoid rawtype warnings and minizes scope of
+        unavoidable @SuppressWarnings("unchecked").
+      </action>
+    </release>
     <release version="3.0.0-alpha-3" date="2011-06-08" description="released">
       <action dev="simonetripodi" type="fix" issue="COCOON3-58">
         [cocoon-sax] The org.apache.cocoon.optional.pipeline.components.sax.jaxb.JAXBGenerator is incomplete.

Modified: cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/component/XMLGenerator.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/component/XMLGenerator.java?rev=1152570&r1=1152569&r2=1152570&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/component/XMLGenerator.java (original)
+++ cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/component/XMLGenerator.java Sun Jul 31 11:59:24 2011
@@ -28,7 +28,6 @@ import javax.xml.stream.events.XMLEvent;
 import org.apache.cocoon.pipeline.SetupException;
 import org.apache.cocoon.pipeline.component.Starter;
 import org.apache.cocoon.stax.AbstractStAXProducer;
-import org.apache.cocoon.stax.StAXProducer;
 
 /**
  * General element generator for a StAX pipeline directly taking all elements from an internal

Modified: cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/ExtendedNamespaceContext.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/ExtendedNamespaceContext.java?rev=1152570&r1=1152569&r2=1152570&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/ExtendedNamespaceContext.java (original)
+++ cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/ExtendedNamespaceContext.java Sun Jul 31 11:59:24 2011
@@ -70,7 +70,7 @@ public interface ExtendedNamespaceContex
      * 
      * @return An {@link Iterator} of prefix {@link String}s.
      */
-    public Iterator<?> getPrefixes();
+    public Iterator<String> getPrefixes();
 
     /**
      * Returns an {@link Iterator} of all namespace prefixes declared within this context,
@@ -78,5 +78,5 @@ public interface ExtendedNamespaceContex
      * 
      * @return An {@link Iterator} of prefix {@link String}s.
      */
-    public Iterator<?> getDeclaredPrefixes();
+    public Iterator<String> getDeclaredPrefixes();
 }

Modified: cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/SimpleNamespaceContext.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/SimpleNamespaceContext.java?rev=1152570&r1=1152569&r2=1152570&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/SimpleNamespaceContext.java (original)
+++ cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/SimpleNamespaceContext.java Sun Jul 31 11:59:24 2011
@@ -62,8 +62,7 @@ public class SimpleNamespaceContext impl
      * that {@link #getPrefix(String)} always returns the same prefix, unless that prefix is
      * removed.
      */
-    @SuppressWarnings("unchecked")
-    protected Map namespaces = new LinkedHashMap();
+    protected Map<String,String> namespaces = new LinkedHashMap<String,String>();
 
     /**
      * Constructs a SimpleNamespaceContext with no parent context or namespace declarations.
@@ -78,8 +77,7 @@ public class SimpleNamespaceContext impl
      * 
      * @param namespaces A Map of namespace URIs, keyed by their prefixes.
      */
-    @SuppressWarnings("unchecked")
-    public SimpleNamespaceContext(Map namespaces) {
+    public SimpleNamespaceContext(Map<String,String> namespaces) {
 
         if (namespaces != null) {
 
@@ -108,8 +106,7 @@ public class SimpleNamespaceContext impl
      * @param parent The parent context.
      * @param namespaces A Map of namespace URIs, keyed by their prefixes.
      */
-    @SuppressWarnings("unchecked")
-    public SimpleNamespaceContext(NamespaceContext parent, Map namespaces) {
+    public SimpleNamespaceContext(NamespaceContext parent, Map<String,String> namespaces) {
 
         this.parent = parent;
 
@@ -198,7 +195,6 @@ public class SimpleNamespaceContext impl
 
     }
 
-    @SuppressWarnings("unchecked")
     public String getPrefix(String nsURI) {
 
         if (nsURI == null) {
@@ -219,15 +215,12 @@ public class SimpleNamespaceContext impl
 
         }
 
-        Iterator iter = this.namespaces.entrySet().iterator();
-        while (iter.hasNext()) {
-
-            Map.Entry entry = (Map.Entry) iter.next();
-            String uri = (String) entry.getValue();
+        for (Map.Entry<String,String> entry : this.namespaces.entrySet()) {
+            String uri = entry.getValue();
 
             if (uri.equals(nsURI)) {
 
-                return (String) entry.getKey();
+                return entry.getKey();
 
             }
 
@@ -263,10 +256,9 @@ public class SimpleNamespaceContext impl
 
     }
 
-    @SuppressWarnings("unchecked")
-    public Iterator getDeclaredPrefixes() {
+    public Iterator<String> getDeclaredPrefixes() {
 
-        return Collections.unmodifiableCollection(this.namespaces.keySet()).iterator();
+    	return Collections.unmodifiableCollection(this.namespaces.keySet()).iterator();
 
     }
 
@@ -281,8 +273,7 @@ public class SimpleNamespaceContext impl
 
     }
 
-    @SuppressWarnings("unchecked")
-    public Iterator getPrefixes() {
+    public Iterator<String> getPrefixes() {
 
         if (this.parent == null || !(this.parent instanceof ExtendedNamespaceContext)) {
 
@@ -290,10 +281,10 @@ public class SimpleNamespaceContext impl
 
         } else {
 
-            Set prefixes = new HashSet(this.namespaces.keySet());
+            Set<String> prefixes = new HashSet<String>(this.namespaces.keySet());
 
             ExtendedNamespaceContext superCtx = (ExtendedNamespaceContext) this.parent;
-            for (Iterator i = superCtx.getPrefixes(); i.hasNext();) {
+            for (Iterator<String> i = superCtx.getPrefixes(); i.hasNext();) {
 
                 String prefix = (String) i.next();
                 prefixes.add(prefix);
@@ -306,8 +297,7 @@ public class SimpleNamespaceContext impl
 
     }
 
-    @SuppressWarnings("unchecked")
-    public Iterator getPrefixes(String nsURI) {
+	public Iterator<String> getPrefixes(String nsURI) {
 
         if (nsURI == null) {
 
@@ -323,17 +313,14 @@ public class SimpleNamespaceContext impl
 
         }
 
-        Set prefixes = null;
-        Iterator iter = this.namespaces.entrySet().iterator();
-        while (iter.hasNext()) {
-
-            Map.Entry entry = (Map.Entry) iter.next();
+        Set<String> prefixes = null;
+        for (Map.Entry<String,String> entry : this.namespaces.entrySet()) {
             String uri = (String) entry.getValue();
             if (uri.equals(nsURI)) {
 
                 if (prefixes == null) {
 
-                    prefixes = new HashSet();
+                	prefixes = new HashSet<String>();
 
                 }
                 prefixes.add(entry.getKey());
@@ -344,13 +331,14 @@ public class SimpleNamespaceContext impl
 
         if (this.parent != null) {
 
-            for (Iterator i = this.parent.getPrefixes(nsURI); i.hasNext();) {
-
-                String prefix = (String) i.next();
+        	@SuppressWarnings("unchecked")
+            Iterator<String> i = (Iterator<String>) this.parent.getPrefixes(nsURI);
+            while (i.hasNext()) {
+                String prefix = i.next();
 
                 if (prefixes == null) {
 
-                    prefixes = new HashSet();
+                	prefixes = new HashSet<String>();
 
                 }
                 prefixes.add(prefix);
@@ -369,7 +357,7 @@ public class SimpleNamespaceContext impl
 
         } else {
 
-            return Collections.EMPTY_LIST.iterator();
+            return Collections.emptyListIterator();
 
         }
 
@@ -382,7 +370,6 @@ public class SimpleNamespaceContext impl
      * @return The previously declared namespace uri, or <code>null</code> if the default prefix
      *         wasn't previously declared in this context.
      */
-    @SuppressWarnings("unchecked")
     public String setDefaultNamespace(String nsURI) {
 
         if (nsURI != null) {
@@ -416,7 +403,6 @@ public class SimpleNamespaceContext impl
      * @return The previously declared namespace uri, or <code>null</code> if the prefix wasn't
      *         previously declared in this context.
      */
-    @SuppressWarnings("unchecked")
     public String setPrefix(String prefix, String nsURI) {
 
         if (prefix == null) {

Modified: cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/StAXEventContentHandler.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/StAXEventContentHandler.java?rev=1152570&r1=1152569&r2=1152570&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/StAXEventContentHandler.java (original)
+++ cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/StAXEventContentHandler.java Sun Jul 31 11:59:24 2011
@@ -104,8 +104,7 @@ public class StAXEventContentHandler ext
      * {@link StartElement}event. It is necessary to keep these namespaces so we can report them to
      * the {@link EndElement}event.
      */
-    @SuppressWarnings("unchecked")
-    private List namespaceStack = new ArrayList();
+    private List<Collection<?>> namespaceStack = new ArrayList<Collection<?>>();
 
     /**
      * Constructs a default instance with a default event factory. You must set the
@@ -125,7 +124,7 @@ public class StAXEventContentHandler ext
      */
     public StAXEventContentHandler(XMLEventConsumer consumer) {
 
-        this.consumer = consumer;
+    	this.consumer = consumer;
         this.eventFactory = XMLEventFactory.newInstance();
 
     }
@@ -214,7 +213,6 @@ public class StAXEventContentHandler ext
         this.namespaceStack.clear();
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
         this.namespaces = null;
@@ -222,7 +220,7 @@ public class StAXEventContentHandler ext
         this.eventFactory.setLocation(this.getCurrentLocation());
 
         // create attribute and namespace events
-        Collection[] events = { null, null };
+        Collection<?>[] events = { null, null };
         this.createStartEvents(attributes, events);
 
         // save a reference to the namespace collection so we can use them
@@ -243,7 +241,6 @@ public class StAXEventContentHandler ext
         }
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public void endElement(String uri, String localName, String qName) throws SAXException {
         this.namespaces = null;
@@ -256,8 +253,8 @@ public class StAXEventContentHandler ext
         this.parseQName(qName, qname);
 
         // get namespaces
-        Collection nsList = (Collection) this.namespaceStack.remove(this.namespaceStack.size() - 1);
-        Iterator nsIter = nsList.iterator();
+        Collection<?> nsList = this.namespaceStack.remove(this.namespaceStack.size() - 1);
+        Iterator<?> nsIter = nsList.iterator();
 
         try {
             this.consumer.add(this.eventFactory.createEndElement(qname[0], uri, qname[1], nsIter));
@@ -331,21 +328,20 @@ public class StAXEventContentHandler ext
      *            {@link Attribute}events. The namespaces will be placed at <code>events[0]</code>
      *            and the attributes as <code>events[1]</code>.
      */
-    @SuppressWarnings("unchecked")
-    protected void createStartEvents(Attributes attributes, Collection[] events) {
-        Map nsMap = null;
-        List attrs = null;
+    protected void createStartEvents(Attributes attributes, Collection<?>[] events) {
+        Map<String,Namespace> nsMap = null;
+        List<Attribute> attrs = null;
 
         // create namespaces
         if (this.namespaces != null) {
-            Iterator prefixes = this.namespaces.getDeclaredPrefixes();
+            Iterator<String> prefixes = this.namespaces.getDeclaredPrefixes();
             while (prefixes.hasNext()) {
-                String prefix = (String) prefixes.next();
+                String prefix = prefixes.next();
                 String uri = this.namespaces.getNamespaceURI(prefix);
 
                 Namespace ns = this.createNamespace(prefix, uri);
                 if (nsMap == null) {
-                    nsMap = new HashMap();
+                    nsMap = new HashMap<String,Namespace>();
                 }
                 nsMap.put(prefix, ns);
             }
@@ -372,9 +368,6 @@ public class StAXEventContentHandler ext
 
                 if (!nsMap.containsKey(attrPrefix)) {
                     Namespace ns = this.createNamespace(attrPrefix, attrValue);
-                    if (nsMap == null) {
-                        nsMap = new HashMap();
-                    }
                     nsMap.put(attrPrefix, ns);
                 }
 
@@ -387,7 +380,7 @@ public class StAXEventContentHandler ext
                 }
 
                 if (attrs == null) {
-                    attrs = new ArrayList();
+                    attrs = new ArrayList<Attribute>();
                 }
                 attrs.add(attribute);
             }

Modified: cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/XMLEventToContentHandler.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/XMLEventToContentHandler.java?rev=1152570&r1=1152569&r2=1152570&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/XMLEventToContentHandler.java (original)
+++ cocoon/cocoon3/trunk/cocoon-stax/src/main/java/org/apache/cocoon/stax/converter/util/XMLEventToContentHandler.java Sun Jul 31 11:59:24 2011
@@ -195,7 +195,6 @@ public class XMLEventToContentHandler {
         }
     }
 
-    @SuppressWarnings("unchecked")
     private void handleEndElement(EndElement event) throws XMLStreamException {
         QName qName = event.getName();
 
@@ -212,8 +211,10 @@ public class XMLEventToContentHandler {
             this.filter.endElement(qName.getNamespaceURI(), qName.getLocalPart(), rawname);
 
             // end namespace bindings
-            for (Iterator i = event.getNamespaces(); i.hasNext();) {
-                String nsprefix = ((Namespace) i.next()).getPrefix();
+            @SuppressWarnings("unchecked")
+            Iterator<Namespace> i = (Iterator<Namespace>) event.getNamespaces();
+            while (i.hasNext()) {
+                String nsprefix = i.next().getPrefix();
                 if (nsprefix == null) { // true for default namespace
                     nsprefix = "";
                 }
@@ -224,12 +225,13 @@ public class XMLEventToContentHandler {
         }
     }
 
-    @SuppressWarnings("unchecked")
     private void handleStartElement(StartElement event) throws XMLStreamException {
         try {
             // start namespace bindings
-            for (Iterator i = event.getNamespaces(); i.hasNext();) {
-                String prefix = ((Namespace) i.next()).getPrefix();
+            @SuppressWarnings("unchecked")
+            Iterator<Namespace> i = (Iterator<Namespace>) event.getNamespaces();
+            while (i.hasNext()) {
+                String prefix = i.next().getPrefix();
                 if (prefix == null) { // true for default namespace
                     prefix = "";
                 }
@@ -257,7 +259,6 @@ public class XMLEventToContentHandler {
      * 
      * @return the StAX attributes converted to an org.xml.sax.Attributes
      */
-    @SuppressWarnings("unchecked")
     private Attributes getAttributes(StartElement event) {
         AttributesImpl attrs = new AttributesImpl();
 
@@ -267,8 +268,10 @@ public class XMLEventToContentHandler {
 
         // Add namspace declarations if required
         if (this.filter.getNamespacePrefixes()) {
-            for (Iterator i = event.getNamespaces(); i.hasNext();) {
-                Namespace staxNamespace = (javax.xml.stream.events.Namespace) i.next();
+            @SuppressWarnings("unchecked")
+            Iterator<Namespace> i = (Iterator<Namespace>) event.getNamespaces();
+            while (i.hasNext()) {
+                Namespace staxNamespace = i.next();
                 String uri = staxNamespace.getNamespaceURI();
                 if (uri == null) {
                     uri = "";
@@ -290,8 +293,10 @@ public class XMLEventToContentHandler {
         }
 
         // gather non-namespace attrs
-        for (Iterator i = event.getAttributes(); i.hasNext();) {
-            Attribute staxAttr = (javax.xml.stream.events.Attribute) i.next();
+        @SuppressWarnings("unchecked")
+        Iterator<Attribute> i = (Iterator<Attribute>) event.getAttributes();
+        while (i.hasNext()) {
+            Attribute staxAttr = i.next();
 
             String uri = staxAttr.getName().getNamespaceURI();
             if (uri == null) {