You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2011/12/18 09:25:37 UTC

svn commit: r1220348 - /abdera/abdera2/core/src/main/java/org/apache/abdera2/parser/axiom/FOMFactory.java

Author: jmsnell
Date: Sun Dec 18 08:25:36 2011
New Revision: 1220348

URL: http://svn.apache.org/viewvc?rev=1220348&view=rev
Log:
More code review... just doing things better

Modified:
    abdera/abdera2/core/src/main/java/org/apache/abdera2/parser/axiom/FOMFactory.java

Modified: abdera/abdera2/core/src/main/java/org/apache/abdera2/parser/axiom/FOMFactory.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/core/src/main/java/org/apache/abdera2/parser/axiom/FOMFactory.java?rev=1220348&r1=1220347&r2=1220348&view=diff
==============================================================================
--- abdera/abdera2/core/src/main/java/org/apache/abdera2/parser/axiom/FOMFactory.java (original)
+++ abdera/abdera2/core/src/main/java/org/apache/abdera2/parser/axiom/FOMFactory.java Sun Dec 18 08:25:36 2011
@@ -64,6 +64,9 @@ import org.apache.axiom.om.OMText;
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.llom.factory.OMLinkedListImplFactory;
 
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+
 @SuppressWarnings( {"unchecked", "deprecation"})
 public class FOMFactory extends OMLinkedListImplFactory 
     implements Factory, Constants, ExtensionFactory {
@@ -98,11 +101,82 @@ public class FOMFactory extends OMLinked
      * every qname on every iteration... albeit, at a cost of a bit more 
      * complexity
      */
+    
     private static java.util.Map<QName,java.lang.reflect.Constructor<?>> conmap =
-      new java.util.HashMap<QName,java.lang.reflect.Constructor<?>>();
+      ImmutableMap.<QName,java.lang.reflect.Constructor<?>>builder()
+      .put(FEED, confrom(FOMFeed.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(SERVICE, confrom(FOMService.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class))
+      .put(PRE_RFC_SERVICE, confrom(FOMService.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(ENTRY, confrom(FOMEntry.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(AUTHOR, confrom(FOMPerson.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(CATEGORY, confrom(FOMCategory.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(CONTENT, confrom(FOMContent.class, String.class, OMNamespace.class, Content.Type.class, OMContainer.class, OMFactory.class)) 
+      .put(CONTRIBUTOR, confrom(FOMPerson.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(GENERATOR, confrom(FOMGenerator.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(ICON, confrom(FOMIRI.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(ID, confrom(FOMIRI.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(LOGO, confrom(FOMIRI.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(LINK, confrom(FOMLink.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(PUBLISHED, confrom(FOMDateTime.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(SOURCE, confrom(FOMSource.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(RIGHTS, confrom(FOMText.class, Text.Type.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(SUBTITLE, confrom(FOMText.class, Text.Type.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(SUMMARY, confrom(FOMText.class, Text.Type.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(TITLE, confrom(FOMText.class, Text.Type.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(UPDATED, confrom(FOMDateTime.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(WORKSPACE, confrom(FOMWorkspace.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(PRE_RFC_WORKSPACE, confrom(FOMWorkspace.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(COLLECTION, confrom(FOMCollection.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(PRE_RFC_COLLECTION, confrom(FOMCollection.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(NAME, confrom(FOMElement.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(EMAIL, confrom(FOMElement.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(URI, confrom(FOMIRI.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(CONTROL, confrom(FOMControl.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class))
+      .put(PRE_RFC_CONTROL, confrom(FOMControl.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)) 
+      .put(DIV, confrom(FOMDiv.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class))
+      .put(CATEGORIES, confrom(FOMCategories.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class))
+      .put(PRE_RFC_CATEGORIES, confrom(FOMCategories.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class))
+      .put(EDITED, confrom(FOMDateTime.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class))
+      .build();
+    
     private static java.util.Map<QName,java.lang.reflect.Constructor<?>> conmap2 =
-      new java.util.HashMap<QName,java.lang.reflect.Constructor<?>>();
-    private static java.util.Set<QName> textset = new java.util.HashSet<QName>();
+      ImmutableMap.<QName,java.lang.reflect.Constructor<?>>builder()
+      .put(FEED, confrom(FOMFeed.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(SERVICE, confrom(FOMService.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class))
+      .put(PRE_RFC_SERVICE, confrom(FOMService.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(ENTRY, confrom(FOMEntry.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(AUTHOR, confrom(FOMPerson.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(CATEGORY, confrom(FOMCategory.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(CONTENT, confrom(FOMContent.class, QName.class, Content.Type.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(CONTRIBUTOR, confrom(FOMPerson.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(GENERATOR, confrom(FOMGenerator.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(ICON, confrom(FOMIRI.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(ID, confrom(FOMIRI.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(LOGO, confrom(FOMIRI.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(LINK, confrom(FOMLink.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(PUBLISHED, confrom(FOMDateTime.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(SOURCE, confrom(FOMSource.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(RIGHTS, confrom(FOMText.class, Text.Type.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(SUBTITLE, confrom(FOMText.class, Text.Type.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(SUMMARY, confrom(FOMText.class, Text.Type.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(TITLE, confrom(FOMText.class, Text.Type.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(UPDATED, confrom(FOMDateTime.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(WORKSPACE, confrom(FOMWorkspace.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(PRE_RFC_WORKSPACE, confrom(FOMWorkspace.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(COLLECTION, confrom(FOMCollection.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(PRE_RFC_COLLECTION, confrom(FOMCollection.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(URI, confrom(FOMIRI.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(CONTROL, confrom(FOMControl.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class))
+      .put(PRE_RFC_CONTROL, confrom(FOMControl.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(DIV, confrom(FOMDiv.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(CATEGORIES, confrom(FOMCategories.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(PRE_RFC_CATEGORIES, confrom(FOMCategories.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(EDITED, confrom(FOMDateTime.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(NAME, confrom(FOMElement.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .put(EMAIL, confrom(FOMElement.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)) 
+      .build();
+
+    private static java.util.Set<QName> textset = ImmutableSet.of(RIGHTS,SUBTITLE,SUMMARY,TITLE);
     private static java.lang.reflect.Constructor<?> confrom(Class<?> _class, Class<?>... _types) {
       try {
         return _class.getConstructor(_types);
@@ -133,81 +207,6 @@ public class FOMFactory extends OMLinked
     private static boolean is_text(QName qname) {
       return textset.contains(qname);
     }
-    static {
-      // these are text elements.. they'll have a different constructor
-      textset.add(RIGHTS);
-      textset.add(SUBTITLE);
-      textset.add(SUMMARY);
-      textset.add(TITLE);
-      
-      conmap.put(FEED, confrom(FOMFeed.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(SERVICE, confrom(FOMService.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class));
-      conmap.put(PRE_RFC_SERVICE, confrom(FOMService.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(ENTRY, confrom(FOMEntry.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(AUTHOR, confrom(FOMPerson.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(CATEGORY, confrom(FOMCategory.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(CONTENT, confrom(FOMContent.class, String.class, OMNamespace.class, Content.Type.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(CONTRIBUTOR, confrom(FOMPerson.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(GENERATOR, confrom(FOMGenerator.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(ICON, confrom(FOMIRI.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(ID, confrom(FOMIRI.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(LOGO, confrom(FOMIRI.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(LINK, confrom(FOMLink.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(PUBLISHED, confrom(FOMDateTime.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(SOURCE, confrom(FOMSource.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(RIGHTS, confrom(FOMText.class, Text.Type.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(SUBTITLE, confrom(FOMText.class, Text.Type.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(SUMMARY, confrom(FOMText.class, Text.Type.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(TITLE, confrom(FOMText.class, Text.Type.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(UPDATED, confrom(FOMDateTime.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(WORKSPACE, confrom(FOMWorkspace.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(PRE_RFC_WORKSPACE, confrom(FOMWorkspace.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(COLLECTION, confrom(FOMCollection.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(PRE_RFC_COLLECTION, confrom(FOMCollection.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(NAME, confrom(FOMElement.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(EMAIL, confrom(FOMElement.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(URI, confrom(FOMIRI.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(CONTROL, confrom(FOMControl.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class));
-      conmap.put(PRE_RFC_CONTROL, confrom(FOMControl.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(DIV, confrom(FOMDiv.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(CATEGORIES, confrom(FOMCategories.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(PRE_RFC_CATEGORIES, confrom(FOMCategories.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-      conmap.put(EDITED, confrom(FOMDateTime.class, String.class, OMNamespace.class, OMContainer.class, OMFactory.class)); 
-
-      conmap2.put(FEED, confrom(FOMFeed.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(SERVICE, confrom(FOMService.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class));
-      conmap2.put(PRE_RFC_SERVICE, confrom(FOMService.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(ENTRY, confrom(FOMEntry.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(AUTHOR, confrom(FOMPerson.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(CATEGORY, confrom(FOMCategory.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(CONTENT, confrom(FOMContent.class, QName.class, Content.Type.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(CONTRIBUTOR, confrom(FOMPerson.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(GENERATOR, confrom(FOMGenerator.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(ICON, confrom(FOMIRI.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(ID, confrom(FOMIRI.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(LOGO, confrom(FOMIRI.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(LINK, confrom(FOMLink.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(PUBLISHED, confrom(FOMDateTime.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(SOURCE, confrom(FOMSource.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(RIGHTS, confrom(FOMText.class, Text.Type.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(SUBTITLE, confrom(FOMText.class, Text.Type.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(SUMMARY, confrom(FOMText.class, Text.Type.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(TITLE, confrom(FOMText.class, Text.Type.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(UPDATED, confrom(FOMDateTime.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(WORKSPACE, confrom(FOMWorkspace.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(PRE_RFC_WORKSPACE, confrom(FOMWorkspace.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(COLLECTION, confrom(FOMCollection.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(PRE_RFC_COLLECTION, confrom(FOMCollection.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(URI, confrom(FOMIRI.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(CONTROL, confrom(FOMControl.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class));
-      conmap2.put(PRE_RFC_CONTROL, confrom(FOMControl.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(DIV, confrom(FOMDiv.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(CATEGORIES, confrom(FOMCategories.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(PRE_RFC_CATEGORIES, confrom(FOMCategories.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(EDITED, confrom(FOMDateTime.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(NAME, confrom(FOMElement.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-      conmap2.put(EMAIL, confrom(FOMElement.class, QName.class, OMContainer.class, OMFactory.class, OMXMLParserWrapper.class)); 
-    }
     
     /***********************************************************************/