1 10 11 package org.mmbase.applications.media.filters; 12 13 import org.mmbase.applications.media.urlcomposers.URLComposer; 14 import org.mmbase.applications.media.Format; 15 import java.util.*; 16 import org.mmbase.util.logging.*; 17 18 26 public class ClientFormatSorter extends PreferenceSorter { 27 private static Logger log = Logging.getLoggerInstance(ClientFormatSorter.class); 28 29 30 public ClientFormatSorter() { 31 } 32 33 protected int getPreference(URLComposer ri) { 34 if (log.isDebugEnabled()) { 35 log.debug("ri: " + ri); 36 log.debug("info: " + ri.getInfo()); 37 } 38 39 Object format = ri.getInfo().get("format"); 40 if (log.isDebugEnabled()) { log.debug("Client's preference " + format); } 41 if (format == null) { 42 return 0; } else { 44 if (format instanceof Format) { 45 if (format == ri.getFormat()) return 100; 46 } else if (format instanceof String ) { 47 if (Format.get((String ) format) == ri.getFormat()) return 100; 48 } else if (format instanceof List) { 49 List formatList = (List) format; 50 int i = formatList.indexOf(ri.getFormat().toString()); 51 return i == -1 ? -10000 : -i; 53 } else { 54 log.error("Someting wrong in client's INFO, 'format' specified wrongly: " + format); 55 return 0; 56 } 57 } 58 return 0; 59 } 60 61 } 62 63 | Popular Tags |