Author: reto
Date: Mon May 10 06:45:26 2010
New Revision: 942670

URL: http://svn.apache.org/viewvc?rev=942670&view=rev
Log:
CLEREZZA-20: prioritize more specific SerializingProvider

Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/serializedform/Serializer.java

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/serializedform/Serializer.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/serializedform/Serializer.java?rev=942670&r1=942669&r2=942670&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/serializedform/Serializer.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/serializedform/Serializer.java
 Mon May 10 06:45:26 2010
@@ -20,6 +20,8 @@ package org.apache.clerezza.rdf.core.ser
 
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -168,6 +170,15 @@ public class Serializer {
 
        private void refreshProviderMap() {
                final Map<String, SerializingProvider> newProviderMap = new 
HashMap<String, SerializingProvider>();
+               //we want more generic providers first so they get overridden 
by more specific ones
+               Collections.sort(providerList, new 
Comparator<SerializingProvider>() {
+
+                       @Override
+                       public int compare(SerializingProvider s1, 
SerializingProvider s2) {
+                               return getFormatIdentifiers(s2).length - 
getFormatIdentifiers(s1).length;
+                       }
+
+               });
                for (SerializingProvider provider : providerList) {
                        String[] formatIdentifiers = 
getFormatIdentifiers(provider);
                        for (String formatIdentifier : formatIdentifiers) {


Reply via email to