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) {