Author: michiel
Date: 2009-09-10 00:30:00 +0200 (Thu, 10 Sep 2009)
New Revision: 38540

Added:
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueFilter.java
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueLabeler.java
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FilterUtils.java
Modified:
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/BitrateInfo.java
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/ClientFormatFilter.java
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/Filter.java
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/ServerDimensionSorter.java
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/Sorter.java
Log:
added a fews filters and labelers


Property changes on: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/BitrateInfo.java
___________________________________________________________________
Name: svn:keywords
   + Id

Modified: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/ClientFormatFilter.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/ClientFormatFilter.java
 2009-09-09 22:28:53 UTC (rev 38539)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/ClientFormatFilter.java
 2009-09-09 22:30:00 UTC (rev 38540)
@@ -1,11 +1,11 @@
  /*
-  
+
 This software is OSI Certified Open Source Software.
 OSI Certified is a certification mark of the Open Source Initiative.
-  
+
 The license (Mozilla version 1.0) can be read at the MMBase site.
 See http://www.MMBase.org/license
-  
+
   */
 
 package org.mmbase.applications.media.filters;
@@ -26,20 +26,20 @@
  */
 public class ClientFormatFilter implements Filter {
     private static Logger log = 
Logging.getLoggerInstance(ClientFormatFilter.class);
-    
+
     public void configure(DocumentReader reader, Element e) {
         // nothing to be configured on default.
     }
-    
+
     final public List<URLComposer> filter(List<URLComposer> urlcomposers) {
         List<URLComposer> filteredUrlcomposers = new ArrayList<URLComposer>();
-        
+
         for (URLComposer urlcomposer : urlcomposers) {
             Object format = urlcomposer.getInfo().get("format");
             if (log.isDebugEnabled()) {
                 log.debug("Client specified format = " + format);
             }
-          
+
             if(format==null) {
                 if (log.isDebugEnabled()) {
                     log.debug("Client did not specify format.");
@@ -54,7 +54,7 @@
                     }
                     return urlcomposers;
                }
-            } 
+            }
 
             if (format instanceof Format) {
                 if (format == urlcomposer.getFormat()) 
filteredUrlcomposers.add(urlcomposer);

Added: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueFilter.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueFilter.java
                           (rev 0)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueFilter.java
   2009-09-09 22:30:00 UTC (rev 38540)
@@ -0,0 +1,72 @@
+ /*
+
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+The license (Mozilla version 1.0) can be read at the MMBase site.
+See http://www.MMBase.org/license
+
+  */
+
+package org.mmbase.applications.media.filters;
+import org.mmbase.applications.media.urlcomposers.URLComposer;
+import java.util.*;
+import java.util.regex.*;
+import org.mmbase.util.xml.DocumentReader;
+import org.w3c.dom.Element;
+import org.mmbase.util.logging.Logger;
+import org.mmbase.util.logging.Logging;
+
+/**
+ * Filters out all sources where a field's values matches or not a certain 
regular expression
+ *
+ * @author Michiel Meeuwissen
+ */
+public class FieldValueFilter implements Filter {
+    private static Logger log = 
Logging.getLoggerInstance(FieldValueFilter.class);
+
+    private String field = "label";
+
+    private boolean inverse = false;
+    private Pattern pattern = Pattern.compile(".*");
+
+    public void setField(String f) {
+        field = f;
+    }
+
+    /**
+     * If inverse, than only filters out those sources that do <em>not</em> 
match the regular expression.
+     */
+    public void setInverse(boolean i) {
+        inverse = i;
+    }
+
+    public void setPattern(String  p) {
+        pattern = Pattern.compile(p);
+    }
+
+    public void configure(DocumentReader reader, Element e) {
+        FilterUtils.propertiesConfigure(this, reader, e);
+    }
+
+
+    final public List<URLComposer> filter(List<URLComposer> urlcomposers) {
+        List<URLComposer> filteredUrlcomposers = new ArrayList<URLComposer>();
+        for (URLComposer urlcomposer : urlcomposers) {
+
+            String value = urlcomposer.getSource().getStringValue(field);
+            Matcher matcher = pattern.matcher(value);
+            if (matcher.matches()) {
+                if (inverse) {
+                    filteredUrlcomposers.add(urlcomposer);
+                }
+            } else {
+                if (! inverse) {
+                    filteredUrlcomposers.add(urlcomposer);
+                }
+            }
+
+        }
+        return filteredUrlcomposers;
+    }
+}


Property changes on: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueFilter.java
___________________________________________________________________
Name: svn:keywords
   + Id

Added: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueLabeler.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueLabeler.java
                          (rev 0)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueLabeler.java
  2009-09-09 22:30:00 UTC (rev 38540)
@@ -0,0 +1,62 @@
+ /*
+
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+The license (Mozilla version 1.0) can be read at the MMBase site.
+See http://www.MMBase.org/license
+
+  */
+
+package org.mmbase.applications.media.filters;
+
+import org.mmbase.applications.media.urlcomposers.URLComposer;
+import java.util.regex.*;
+import org.mmbase.util.logging.*;
+import org.mmbase.util.xml.DocumentReader;
+import org.w3c.dom.Element;
+import java.util.*;
+
+/**
+ *
+ *
+ * @author Michiel Meeuwissen
+ * @since MMBase-1.9.2
+ * @version $Id$
+ */
+public class  FieldValueLabeler  extends Labeler  {
+    private static final Logger log = 
Logging.getLoggerInstance(FieldValueLabeler.class);
+
+    private String field = "label";
+    private Pattern pattern = null;
+    private String label = null;
+    private String key = "label";
+
+    public void setField(String f) {
+        field = f;
+    }
+    public void setPattern(String p) {
+        pattern = Pattern.compile(p);
+    }
+
+    public void setLabel(String l) {
+        label = l;
+    }
+
+    public void setKey(String k) {
+        key = k;
+    }
+
+    @Override
+    public void configure(DocumentReader reader, Element element) {
+        FilterUtils.propertiesConfigure(this, reader, element);
+    }
+
+
+    protected void label(URLComposer uc) {
+        if (pattern.matcher(uc.getSource().getStringValue(field)).matches()) {
+            uc.getInfo().put(key, label);
+        }
+    }
+
+}


Property changes on: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FieldValueLabeler.java
___________________________________________________________________
Name: svn:keywords
   + Id

Modified: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/Filter.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/Filter.java
     2009-09-09 22:28:53 UTC (rev 38539)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/Filter.java
     2009-09-09 22:30:00 UTC (rev 38540)
@@ -19,6 +19,7 @@
  */
 public interface Filter {
 
+
     List<URLComposer> filter(List<URLComposer> urlcomposers);
     void configure(DocumentReader reader, Element e);
 }

Added: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FilterUtils.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FilterUtils.java
                                (rev 0)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FilterUtils.java
        2009-09-09 22:30:00 UTC (rev 38540)
@@ -0,0 +1,49 @@
+/*
+
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+The license (Mozilla version 1.0) can be read at the MMBase site.
+See http://www.MMBase.org/license
+
+ */
+
+package org.mmbase.applications.media.filters;
+import org.mmbase.applications.media.urlcomposers.URLComposer;
+import org.mmbase.util.xml.DocumentReader;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Node;
+import java.util.List;
+
+import org.mmbase.util.logging.Logger;
+import org.mmbase.util.logging.Logging;
+
+/**
+ *
+ * @author Michiel Meeuwissen
+ * @since MMBase-1.9.2
+ * @version $Id$
+ */
+public abstract class FilterUtils {
+
+    private static Logger log = Logging.getLoggerInstance(FilterUtils.class);
+
+    public static void propertiesConfigure(Object o, DocumentReader reader, 
Element e) {
+        NodeList params = e.getChildNodes();
+        for (int i = 0 ; i < params.getLength(); i++) {
+            try {
+                Node node = params.item(i);
+                if (node instanceof Element && 
node.getNodeName().equals("property")) {
+                    Element param = (Element)node;
+                    String name = param.getAttribute("name");
+                    String value = DocumentReader.getNodeTextValue(param);
+                    org.mmbase.util.xml.Instantiator.setProperty(name, 
o.getClass(), o, value);
+                }
+            } catch (Exception ex) {
+                log.error(ex.getMessage(), ex);
+            }
+        }
+    }
+}
+


Property changes on: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/FilterUtils.java
___________________________________________________________________
Name: svn:keywords
   + Id

Modified: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/ServerDimensionSorter.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/ServerDimensionSorter.java
      2009-09-09 22:28:53 UTC (rev 38539)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/ServerDimensionSorter.java
      2009-09-09 22:30:00 UTC (rev 38540)
@@ -26,7 +26,7 @@
  * can be combined with this one).
  *
  * @author  Michiel Meeuwissen
- * @version $Id: ServerFormatSorter.java 36047 2009-06-14 14:44:44Z michiel $
+ * @version $Id$
  * @see     ClientFormatSorter
  */
 public class ServerDimensionSorter extends  PreferenceSorter {


Property changes on: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/ServerDimensionSorter.java
___________________________________________________________________
Name: svn:keywords
   + Id

Modified: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/Sorter.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/Sorter.java
     2009-09-09 22:28:53 UTC (rev 38539)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/filters/Sorter.java
     2009-09-09 22:30:00 UTC (rev 38540)
@@ -36,21 +36,7 @@
      * Configure with setters on default
      */
     public void configure(DocumentReader reader, Element e) {
-        NodeList params = e.getChildNodes();
-        for (int i = 0 ; i < params.getLength(); i++) {
-            try {
-                Node node = params.item(i);
-                if (node instanceof Element && 
node.getNodeName().equals("property")) {
-                    Element param = (Element)node;
-                    String name = param.getAttribute("name");
-                    String value = 
org.mmbase.util.xml.DocumentReader.getNodeTextValue(param);
-                    org.mmbase.util.xml.Instantiator.setProperty(name, 
this.getClass(), this, value);
-
-                }
-            } catch (Exception ex) {
-                log.error(ex.getMessage(), ex);
-            }
-        }
+        FilterUtils.propertiesConfigure(this, reader, e);
     }
 
     final public int compare(URLComposer ri1, URLComposer ri2) {

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to