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 -->T) with another mapper (T -->X) to form
* a composite mapper (S --> 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)
{