You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2010/05/27 19:32:38 UTC

svn commit: r948919 - in /tapestry/tapestry5/trunk: tapestry-core/src/main/java/org/apache/tapestry5/internal/ tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javasc...

Author: hlship
Date: Thu May 27 17:32:37 2010
New Revision: 948919

URL: http://svn.apache.org/viewvc?rev=948919&view=rev
Log:
Convert the Mapper interface to an abstract base class

Removed:
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/AbstractMapper.java
Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ObjectComponentEventResultProcessor.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/JavascriptStackPathConstructorImpl.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/MultiZoneUpdateInsideForm.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/F.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/Mapper.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/func/FuncTest.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java?rev=948919&r1=948918&r2=948919&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java Thu May 27 17:32:37 2010
@@ -34,7 +34,6 @@ import org.apache.tapestry5.ioc.Resource
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.apache.tapestry5.ioc.internal.util.Defense;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
-import org.apache.tapestry5.ioc.util.func.AbstractMapper;
 import org.apache.tapestry5.ioc.util.func.F;
 import org.apache.tapestry5.ioc.util.func.Mapper;
 import org.apache.tapestry5.services.javascript.StylesheetLink;
@@ -566,7 +565,7 @@ public class TapestryInternalUtils
      * 
      * @since 5.2.0
      */
-    public static Mapper<Asset, StylesheetLink> assetToStylesheetLink = new AbstractMapper<Asset, StylesheetLink>()
+    public static Mapper<Asset, StylesheetLink> assetToStylesheetLink = new Mapper<Asset, StylesheetLink>()
     {
         public StylesheetLink map(Asset input)
         {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ObjectComponentEventResultProcessor.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ObjectComponentEventResultProcessor.java?rev=948919&r1=948918&r2=948919&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ObjectComponentEventResultProcessor.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ObjectComponentEventResultProcessor.java Thu May 27 17:32:37 2010
@@ -21,7 +21,7 @@ import java.util.List;
 import org.apache.tapestry5.ioc.services.ClassFabUtils;
 import org.apache.tapestry5.ioc.util.AvailableValues;
 import org.apache.tapestry5.ioc.util.UnknownValueException;
-import org.apache.tapestry5.ioc.util.func.AbstractMapper;
+import org.apache.tapestry5.ioc.util.func.Mapper;
 import org.apache.tapestry5.ioc.util.func.F;
 import org.apache.tapestry5.services.ComponentEventResultProcessor;
 
@@ -40,7 +40,7 @@ public class ObjectComponentEventResultP
 
     public void processResultValue(Object value) throws IOException
     {
-        List<String> names = F.map(new AbstractMapper<Class, String>()
+        List<String> names = F.map(new Mapper<Class, String>()
         {
             public String map(Class input)
             {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java?rev=948919&r1=948918&r2=948919&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java Thu May 27 17:32:37 2010
@@ -24,9 +24,8 @@ import org.apache.tapestry5.SymbolConsta
 import org.apache.tapestry5.internal.TapestryInternalUtils;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.services.ThreadLocale;
-import org.apache.tapestry5.ioc.util.func.AbstractMapper;
-import org.apache.tapestry5.ioc.util.func.F;
 import org.apache.tapestry5.ioc.util.func.Mapper;
+import org.apache.tapestry5.ioc.util.func.F;
 import org.apache.tapestry5.json.JSONArray;
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.AssetSource;
@@ -49,7 +48,7 @@ public class DateFieldStack implements J
         this.threadLocale = threadLocale;
         this.compactJSON = compactJSON;
 
-        Mapper<String, Asset> pathToAsset = new AbstractMapper<String, Asset>()
+        Mapper<String, Asset> pathToAsset = new Mapper<String, Asset>()
         {
             public Asset map(String path)
             {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/JavascriptStackPathConstructorImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/JavascriptStackPathConstructorImpl.java?rev=948919&r1=948918&r2=948919&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/JavascriptStackPathConstructorImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/JavascriptStackPathConstructorImpl.java Thu May 27 17:32:37 2010
@@ -22,9 +22,8 @@ import org.apache.tapestry5.internal.ser
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.apache.tapestry5.ioc.services.ThreadLocale;
-import org.apache.tapestry5.ioc.util.func.AbstractMapper;
-import org.apache.tapestry5.ioc.util.func.F;
 import org.apache.tapestry5.ioc.util.func.Mapper;
+import org.apache.tapestry5.ioc.util.func.F;
 import org.apache.tapestry5.services.assets.AssetPathConstructor;
 import org.apache.tapestry5.services.javascript.JavascriptStack;
 import org.apache.tapestry5.services.javascript.JavascriptStackSource;
@@ -39,7 +38,7 @@ public class JavascriptStackPathConstruc
 
     private final boolean combineScripts;
 
-    private final Mapper<Asset, String> toPath = new AbstractMapper<Asset, String>()
+    private final Mapper<Asset, String> toPath = new Mapper<Asset, String>()
     {
         public String map(Asset input)
         {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java?rev=948919&r1=948918&r2=948919&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java Thu May 27 17:32:37 2010
@@ -24,7 +24,7 @@ import org.apache.tapestry5.annotations.
 import org.apache.tapestry5.annotations.SetupRender;
 import org.apache.tapestry5.ioc.Resource;
 import org.apache.tapestry5.ioc.services.SymbolSource;
-import org.apache.tapestry5.ioc.util.func.AbstractMapper;
+import org.apache.tapestry5.ioc.util.func.Mapper;
 import org.apache.tapestry5.ioc.util.func.AbstractWorker;
 import org.apache.tapestry5.ioc.util.func.F;
 import org.apache.tapestry5.ioc.util.func.Worker;
@@ -206,7 +206,7 @@ public class ImportWorker implements Com
 
     private List<Asset> convertPathsToAssets(final Resource baseResource, final Locale locale, String[] assetPaths)
     {
-        return F.map(new AbstractMapper<String, Asset>()
+        return F.map(new Mapper<String, Asset>()
         {
             public Asset map(String assetPath)
             {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/MultiZoneUpdateInsideForm.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/MultiZoneUpdateInsideForm.java?rev=948919&r1=948918&r2=948919&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/MultiZoneUpdateInsideForm.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/MultiZoneUpdateInsideForm.java Thu May 27 17:32:37 2010
@@ -30,7 +30,7 @@ import org.apache.tapestry5.annotations.
 import org.apache.tapestry5.corelib.components.Select;
 import org.apache.tapestry5.corelib.components.Zone;
 import org.apache.tapestry5.ioc.annotations.Inject;
-import org.apache.tapestry5.ioc.util.func.AbstractMapper;
+import org.apache.tapestry5.ioc.util.func.Mapper;
 import org.apache.tapestry5.ioc.util.func.F;
 import org.apache.tapestry5.services.Request;
 import org.apache.tapestry5.util.AbstractSelectModel;
@@ -104,7 +104,7 @@ public class MultiZoneUpdateInsideForm
 
         public List<OptionModel> getOptions()
         {
-            return F.map(new AbstractMapper<SelectObj, OptionModel>()
+            return F.map(new Mapper<SelectObj, OptionModel>()
             {
                 public OptionModel map(final SelectObj input)
                 {

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/F.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/F.java?rev=948919&r1=948918&r2=948919&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/F.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/F.java Thu May 27 17:32:37 2010
@@ -67,7 +67,7 @@ public class F
     {
         Defense.notNull(coercion, "coercion");
 
-        return new AbstractMapper<S, T>()
+        return new Mapper<S, T>()
         {
 
             public T map(S value)
@@ -193,7 +193,7 @@ public class F
     /** Returns a Mapper that ignores its input value and always returns a predetermined result. */
     public static <S, T> Mapper<S, T> always(final T fixedResult)
     {
-        return new AbstractMapper<S, T>()
+        return new Mapper<S, T>()
         {
             public T map(S input)
             {
@@ -213,10 +213,10 @@ public class F
      * @param ifRejected
      *            used when predicate evaluates to false
      */
-    public static <S, T> Mapper<S, T> select(final Predicate<? super S> predicate, final Mapper<S, T> ifAccepted,
-            final Mapper<S, T> ifRejected)
+    public static <S, T> Mapper<S, T> select(final Predicate<? super S> predicate,
+            final Mapper<S, T> ifAccepted, final Mapper<S, T> ifRejected)
     {
-        return new AbstractMapper<S, T>()
+        return new Mapper<S, T>()
         {
             public T map(S input)
             {
@@ -238,7 +238,8 @@ public class F
     /**
      * Override of {@link #select(Predicate, Mapper)} where rejected values are replaced with a fixed value.
      */
-    public static <S, T> Mapper<S, T> select(Predicate<? super S> predicate, Mapper<S, T> ifAccepted, T ifRejected)
+    public static <S, T> Mapper<S, T> select(Predicate<? super S> predicate, Mapper<S, T> ifAccepted,
+            T ifRejected)
     {
         Mapper<S, T> rejectedMapper = always(ifRejected);
 
@@ -248,7 +249,7 @@ public class F
     /** The identity mapper simply returns the input unchanged. */
     public static <S> Mapper<S, S> identity()
     {
-        return new AbstractMapper<S, S>()
+        return new Mapper<S, S>()
         {
             public S map(S input)
             {

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/Mapper.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/Mapper.java?rev=948919&r1=948918&r2=948919&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/Mapper.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/Mapper.java Thu May 27 17:32:37 2010
@@ -14,14 +14,36 @@
 
 package org.apache.tapestry5.ioc.util.func;
 
-public interface Mapper<S, T>
+/**
+ * Base class used with {@link F#map(Mapper, java.util.Collection)} and {@link Flow#map(Mapper)} to
+ * define how objects
+ * are mapped from one type
+ * to another (or otherwise transformed).
+ * 
+ * @since 5.2.0
+ */
+public abstract class Mapper<S, T>
 {
-    /** Maps a source value to a target value. */
-    T map(S value);
+    /** Implemented in subclasses to map a source value to a target value. */
+    public abstract T map(S value);
 
-    /*
+    /**
      * Combines this mapper (S --&gt;T) with another mapper (T --&gt;X) to form
      * a composite mapper (S --&gt; X).
      */
-    <X> Mapper<S, X> combine(Mapper<T, X> other);
+    public final <X> Mapper<S, X> combine(final Mapper<T, X> other)
+    {
+        final Mapper<S, T> stMapper = this;
+
+        return new Mapper<S, X>()
+        {
+            public X map(S value)
+            {
+
+                T tValue = stMapper.map(value);
+
+                return other.map(tValue);
+            }
+        };
+    }
 }

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/func/FuncTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/func/FuncTest.java?rev=948919&r1=948918&r2=948919&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/func/FuncTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/func/FuncTest.java Thu May 27 17:32:37 2010
@@ -24,7 +24,7 @@ import org.testng.annotations.Test;
 
 public class FuncTest extends TestBase
 {
-    private Mapper<String, Integer> stringToLength = new AbstractMapper<String, Integer>()
+    private Mapper<String, Integer> stringToLength = new Mapper<String, Integer>()
     {
         public Integer map(String input)
         {
@@ -32,7 +32,7 @@ public class FuncTest extends TestBase
         }
     };
 
-    private Mapper<Integer, Boolean> toEven = new AbstractMapper<Integer, Boolean>()
+    private Mapper<Integer, Boolean> toEven = new Mapper<Integer, Boolean>()
     {
         public Boolean map(Integer input)
         {