Tweak new name 'Transform' into 'BeanFilter' and 'PojoSwap'

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/0ce0e663
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/0ce0e663
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/0ce0e663

Branch: refs/heads/master
Commit: 0ce0e663e9cffc90c7ba5c6a4c953036255e84f5
Parents: a6ba780
Author: jamesbognar <[email protected]>
Authored: Sat Aug 27 10:14:33 2016 -0400
Committer: jamesbognar <[email protected]>
Committed: Sat Aug 27 11:29:35 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/juneau/client/package.html  |   2 +-
 .../java/org/apache/juneau/BeanContext.java     |  86 +--
 .../main/java/org/apache/juneau/BeanMap.java    |  18 +-
 .../java/org/apache/juneau/BeanMapEntry.java    |  10 +-
 .../main/java/org/apache/juneau/BeanMeta.java   |  16 +-
 .../org/apache/juneau/BeanPropertyMeta.java     |  42 +-
 .../main/java/org/apache/juneau/ClassMeta.java  |  46 +-
 .../java/org/apache/juneau/ContextFactory.java  |  12 +-
 .../main/java/org/apache/juneau/ObjectMap.java  |   8 +-
 .../java/org/apache/juneau/annotation/Bean.java |  10 +-
 .../apache/juneau/annotation/BeanProperty.java  |   4 +-
 .../java/org/apache/juneau/annotation/Pojo.java |  18 +-
 .../org/apache/juneau/dto/atom/CommonEntry.java |   2 +-
 .../java/org/apache/juneau/dto/atom/Entry.java  |   2 +-
 .../org/apache/juneau/dto/cognos/Column.java    |  10 +-
 .../org/apache/juneau/dto/cognos/DataSet.java   |   6 +-
 .../org/apache/juneau/dto/cognos/package.html   |   4 +-
 .../apache/juneau/dto/jsonschema/Schema.java    |  48 +-
 .../java/org/apache/juneau/html/HtmlParser.java |   4 +-
 .../juneau/html/HtmlSchemaDocSerializer.java    |   2 +-
 .../org/apache/juneau/html/HtmlSerializer.java  |  22 +-
 .../org/apache/juneau/internal/HashCode.java    |   4 +-
 .../apache/juneau/internal/JuneauLogger.java    |   8 +-
 .../java/org/apache/juneau/jena/RdfParser.java  |   4 +-
 .../org/apache/juneau/jena/RdfSerializer.java   |   4 +-
 .../java/org/apache/juneau/jena/package.html    |  16 +-
 .../java/org/apache/juneau/json/JsonParser.java |   4 +-
 .../juneau/json/JsonSchemaSerializer.java       |   2 +-
 .../org/apache/juneau/json/JsonSerializer.java  |   4 +-
 .../java/org/apache/juneau/json/package.html    |  22 +-
 .../apache/juneau/msgpack/MsgPackParser.java    |   4 +-
 .../juneau/msgpack/MsgPackSerializer.java       |   4 +-
 .../main/java/org/apache/juneau/package.html    |   6 +-
 .../java/org/apache/juneau/parser/Parser.java   |   8 +-
 .../org/apache/juneau/parser/ParserGroup.java   |   4 +-
 .../juneau/plaintext/PlainTextParser.java       |   2 +-
 .../juneau/plaintext/PlainTextSerializer.java   |   2 +-
 .../juneau/serializer/SerializerGroup.java      |   4 +-
 .../juneau/serializer/SerializerSession.java    |   4 +-
 .../juneau/transform/AnnotationBeanFilter.java  |  70 ++
 .../transform/AnnotationBeanTransform.java      |  70 --
 .../org/apache/juneau/transform/BeanFilter.java | 526 ++++++++++++++
 .../apache/juneau/transform/BeanTransform.java  | 526 --------------
 .../juneau/transform/InterfaceBeanFilter.java   |  39 ++
 .../transform/InterfaceBeanTransform.java       |  39 --
 .../org/apache/juneau/transform/PojoSwap.java   | 265 +++++++
 .../apache/juneau/transform/PojoTransform.java  | 265 -------
 .../apache/juneau/transform/SurrogateSwap.java  | 207 ++++++
 .../juneau/transform/SurrogateTransform.java    | 207 ------
 .../org/apache/juneau/transform/Transform.java  |  14 +-
 .../org/apache/juneau/transform/package.html    | 136 ++--
 .../juneau/transforms/BeanStringSwap.java       |  39 ++
 .../juneau/transforms/BeanStringTransform.java  |  39 --
 .../juneau/transforms/ByteArrayBase64Swap.java  |  51 ++
 .../transforms/ByteArrayBase64Transform.java    |  51 --
 .../juneau/transforms/CalendarLongSwap.java     |  54 ++
 .../transforms/CalendarLongTransform.java       |  54 --
 .../juneau/transforms/CalendarMapSwap.java      |  62 ++
 .../juneau/transforms/CalendarMapTransform.java |  62 --
 .../apache/juneau/transforms/CalendarSwap.java  | 293 ++++++++
 .../juneau/transforms/CalendarTransform.java    | 293 --------
 .../apache/juneau/transforms/DateLongSwap.java  |  52 ++
 .../juneau/transforms/DateLongTransform.java    |  52 --
 .../apache/juneau/transforms/DateMapSwap.java   |  56 ++
 .../juneau/transforms/DateMapTransform.java     |  56 --
 .../org/apache/juneau/transforms/DateSwap.java  | 370 ++++++++++
 .../apache/juneau/transforms/DateTransform.java | 370 ----------
 .../juneau/transforms/EnumerationSwap.java      |  39 ++
 .../juneau/transforms/EnumerationTransform.java |  39 --
 .../apache/juneau/transforms/IteratorSwap.java  |  39 ++
 .../juneau/transforms/IteratorTransform.java    |  39 --
 .../apache/juneau/transforms/ReaderSwap.java    | 112 +++
 .../juneau/transforms/ReaderTransform.java      | 112 ---
 .../transforms/XMLGregorianCalendarSwap.java    |  64 ++
 .../XMLGregorianCalendarTransform.java          |  64 --
 .../apache/juneau/urlencoding/UonParser.java    |   4 +-
 .../juneau/urlencoding/UonSerializer.java       |   4 +-
 .../juneau/urlencoding/UrlEncodingParser.java   |   4 +-
 .../urlencoding/UrlEncodingSerializer.java      |   4 +-
 .../org/apache/juneau/urlencoding/package.html  |   8 +-
 .../java/org/apache/juneau/xml/XmlParser.java   |   4 +-
 .../org/apache/juneau/xml/XmlSerializer.java    |   4 +-
 .../java/org/apache/juneau/xml/package.html     |   6 +-
 juneau-core/src/main/java/overview.html         | 108 +--
 .../java/org/apache/juneau/BeanConfigTest.java  |  28 +-
 .../java/org/apache/juneau/BeanFilterTest.java  | 145 ++++
 .../java/org/apache/juneau/BeanMapTest.java     |   4 +-
 .../org/apache/juneau/BeanTransformTest.java    | 145 ----
 .../java/org/apache/juneau/ClassMetaTest.java   | 160 ++---
 .../org/apache/juneau/DataConversionTest.java   |   2 +-
 .../java/org/apache/juneau/PojoSwapTest.java    |  57 ++
 .../org/apache/juneau/PojoTransformTest.java    |  57 --
 .../test/java/org/apache/juneau/TestUtils.java  |   4 +-
 .../juneau/a/rttests/RoundTripBeanMapsTest.java |  70 +-
 .../juneau/a/rttests/RoundTripMapsTest.java     |   6 +-
 .../a/rttests/RoundTripTransformBeansTest.java  |  42 +-
 .../java/org/apache/juneau/html/HtmlTest.java   |  16 +-
 .../org/apache/juneau/jena/RdfParserTest.java   |   4 +-
 .../juneau/transforms/BeanFilterTest.java       | 205 ++++++
 .../apache/juneau/transforms/BeanMapTest.java   |  14 +-
 .../juneau/transforms/BeanTransformTest.java    | 205 ------
 .../transforms/ByteArrayBase64SwapTest.java     | 172 +++++
 .../ByteArrayBase64TransformTest.java           | 172 -----
 .../juneau/transforms/CalendarSwapTest.java     | 697 +++++++++++++++++++
 .../transforms/CalendarTransformTest.java       | 697 -------------------
 .../juneau/transforms/DateFilterTest.java       |  20 +-
 .../juneau/transforms/EnumerationSwapTest.java  |  36 +
 .../transforms/EnumerationTransformTest.java    |  36 -
 .../juneau/transforms/IteratorSwapTest.java     |  38 +
 .../transforms/IteratorTransformTest.java       |  38 -
 .../juneau/transforms/ReaderFilterTest.java     |   4 +-
 .../org/apache/juneau/utils/PojoQueryTest.java  |   4 +-
 .../apache/juneau/utils/StringUtilsTest.java    |   2 +-
 .../resources/DirectoryResource.java            |   2 +-
 .../microservice/resources/LogsResource.java    |   6 +-
 .../samples/addressbook/CreatePerson.java       |   2 +-
 .../juneau/samples/addressbook/Person.java      |   2 +-
 .../server/samples/RequestEchoResource.java     |   2 +-
 .../server/samples/UrlEncodedFormResource.java  |   2 +-
 .../addressbook/AddressBookResource.java        |   6 +-
 .../server/samples/AddressBookResourceTest.java |   6 +-
 .../SampleRemoteableServicesResourceTest.java   |   2 +-
 .../apache/juneau/server/samples/TestUtils.java |   4 +-
 juneau-server-test/.classpath                   |  79 +--
 .../server/TestBeanContextProperties.java       |   6 +-
 .../apache/juneau/server/TestInheritance.java   |  18 +-
 .../org/apache/juneau/server/TestMessages.java  |   6 +-
 .../org/apache/juneau/server/TestParams.java    |   2 +-
 .../apache/juneau/server/TestTransforms.java    |  44 +-
 .../juneau/server/TestTransformsParent.java     |   2 +-
 .../juneau/server/TestClientVersionTest.java    |  14 +-
 .../org/apache/juneau/server/TestUtils.java     |   2 +-
 .../org/apache/juneau/server/RestServlet.java   |   6 +-
 .../juneau/server/annotation/RestMethod.java    |   2 +-
 .../juneau/server/annotation/RestResource.java  |   2 +-
 .../server/converters/Introspectable.java       |   4 +-
 .../juneau/server/converters/Queryable.java     |   4 +-
 .../juneau/server/converters/Traversable.java   |   4 +-
 .../juneau/server/jaxrs/JuneauProvider.java     |   2 +-
 .../java/org/apache/juneau/server/package.html  |  18 +-
 140 files changed, 4390 insertions(+), 4389 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-client/src/main/java/org/apache/juneau/client/package.html
----------------------------------------------------------------------
diff --git a/juneau-client/src/main/java/org/apache/juneau/client/package.html 
b/juneau-client/src/main/java/org/apache/juneau/client/package.html
index c5d2478..7fb2581 100755
--- a/juneau-client/src/main/java/org/apache/juneau/client/package.html
+++ b/juneau-client/src/main/java/org/apache/juneau/client/package.html
@@ -185,7 +185,7 @@
                .getResponse(Boolean.<jk>class</jk>);
                        
        <jc>// GET request, getting a filtered object</jc>
-       
client.getParser().addTransforms(CalendarTransform.<jsf>ISO8601</jsf>.<jk>class</jk>);
+       
client.getParser().addTransforms(CalendarSwap.<jsf>ISO8601</jsf>.<jk>class</jk>);
        Calendar birthDate = 
client.doGet(<js>"http://localhost:9080/sample/addressBook/0/birthDate";</js>)
                .getResponse(GregorianCalendar.<jk>class</jk>);
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java 
b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
index 9027d57..f32e46e 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
@@ -164,10 +164,10 @@ import org.apache.juneau.transform.Transform;
  *     {@link Transform Transforms} are used to tailor how beans and non-beans 
are handled.<br>
  *     There are two subclasses of transforms:
  *     <ol class='spaced-list'>
- *             <li>{@link BeanTransform} - Allows you to tailor handling of 
bean classes.
+ *             <li>{@link BeanFilter} - Allows you to tailor handling of bean 
classes.
  *                     This class can be considered a programmatic equivalent 
to the {@link Bean} annotation when
  *                     annotating classes are not possible (e.g. you don't 
have access to the source).
- *             <li>{@link PojoTransform} - Allows you to convert objects to 
serializable forms.
+ *             <li>{@link PojoSwap} - Allows you to convert objects to 
serializable forms.
  *     </ol>
  * <p>
  *     See {@link org.apache.juneau.transform} for more information.
@@ -396,14 +396,14 @@ public class BeanContext extends Context {
         * <p>
         * There are two category of classes that can be passed in through this 
method:
         * <ul class='spaced-list'>
-        *      <li>Subclasses of {@link PojoTransform} and {@link 
BeanTransform}.
+        *      <li>Subclasses of {@link PojoSwap} and {@link BeanFilter}.
         *      <li>Any other class.
         * </ul>
         * <p>
         * When <code>Transform</code> classes are specified, they identify 
objects that need to be
         *      transformed into some other type during serialization (and 
optionally the reverse during parsing).
         * <p>
-        * When non-<code>Transform</code> classes are specified, they are 
wrapped inside {@link BeanTransform BeanTransforms}.
+        * When non-<code>Transform</code> classes are specified, they are 
wrapped inside {@link BeanFilter BeanFilters}.
         * For example, if you have an interface <code>IFoo</code> and a 
subclass <code>Foo</code>, and you
         *      only want properties defined on <code>IFoo</code> to be visible 
as bean properties for <code>Foo</code> objects,
         *      you can simply pass in <code>IFoo.<jk>class</jk></code> to this 
method.
@@ -512,8 +512,8 @@ public class BeanContext extends Context {
 
        final Class<?>[] notBeanClasses;
        final String[] notBeanPackageNames, notBeanPackagePrefixes;
-       final BeanTransform<?>[] beanTransforms;
-       final PojoTransform<?,?>[] pojoTransforms;
+       final BeanFilter<?>[] beanFilters;
+       final PojoSwap<?,?>[] pojoSwaps;
        final Map<Class<?>,Class<?>> implClasses;
        final Class<?>[] implKeyClasses, implValueClasses;
        final ClassLoader classLoader;
@@ -578,17 +578,17 @@ public class BeanContext extends Context {
                notBeanPackageNames = l1.toArray(new String[l1.size()]);
                notBeanPackagePrefixes = l2.toArray(new String[l2.size()]);
 
-               LinkedList<BeanTransform<?>> lbf = new 
LinkedList<BeanTransform<?>>();
-               LinkedList<PojoTransform<?,?>> lpf = new 
LinkedList<PojoTransform<?,?>>();
+               LinkedList<BeanFilter<?>> lbf = new LinkedList<BeanFilter<?>>();
+               LinkedList<PojoSwap<?,?>> lpf = new LinkedList<PojoSwap<?,?>>();
                for (Class<?> c : pm.get(BEAN_transforms, Class[].class, new 
Class[0])) {
                        if (isParentClass(Transform.class, c)) {
                                try {
-                                       if (isParentClass(BeanTransform.class, 
c)) {
-                                               BeanTransform<?> f = 
(BeanTransform<?>)c.newInstance();
+                                       if (isParentClass(BeanFilter.class, c)) 
{
+                                               BeanFilter<?> f = 
(BeanFilter<?>)c.newInstance();
                                                //f.setBeanContext(this);
                                                lbf.add(f);
-                                       } else if 
(isParentClass(PojoTransform.class, c)) {
-                                               PojoTransform<?,?> f = 
(PojoTransform<?,?>)c.newInstance();
+                                       } else if 
(isParentClass(PojoSwap.class, c)) {
+                                               PojoSwap<?,?> f = 
(PojoSwap<?,?>)c.newInstance();
                                                f.setBeanContext(this);
                                                lpf.add(f);
                                        }
@@ -597,22 +597,22 @@ public class BeanContext extends Context {
                                }
                        } else {
                                if (! c.getClass().isInterface()) {
-                                       List<SurrogateTransform<?,?>> l = 
SurrogateTransform.findTransforms(c);
+                                       List<SurrogateSwap<?,?>> l = 
SurrogateSwap.findTransforms(c);
                                        if (! l.isEmpty()) {
-                                               for (SurrogateTransform<?,?> f 
: l) {
+                                               for (SurrogateSwap<?,?> f : l) {
                                                        f.setBeanContext(this);
                                                        lpf.add(f);
                                                }
                                                continue;
                                        }
                                }
-                               BeanTransform<?> f = new 
InterfaceBeanTransform(c);
+                               BeanFilter<?> f = new InterfaceBeanFilter(c);
                                f.setBeanContext(this);
                                lbf.add(f);
                        }
                }
-               beanTransforms = lbf.toArray(new BeanTransform[0]);
-               pojoTransforms = lpf.toArray(new PojoTransform[0]);
+               beanFilters = lbf.toArray(new BeanFilter[0]);
+               pojoSwaps = lpf.toArray(new PojoSwap[0]);
 
                implClasses = new TreeMap<Class<?>,Class<?>>(new 
ClassComparator());
                Map<Class,Class> m = pm.getMap(BEAN_implClasses, Class.class, 
Class.class, null);
@@ -872,7 +872,7 @@ public class BeanContext extends Context {
                        T o = (T)m.newBean(outer);
                        if (o == null) {
                                // Beans with subtypes won't be instantiated 
until the sub type property is specified.
-                               if (cm.beanTransform != null && 
cm.beanTransform.getSubTypeProperty() != null)
+                               if (cm.beanFilter != null && 
cm.beanFilter.getSubTypeProperty() != null)
                                        return null;
                                throw new BeanRuntimeException(c, "Class does 
not have a no-arg constructor.");
                        }
@@ -942,8 +942,8 @@ public class BeanContext extends Context {
 
                // If this is an array, then we want it wrapped in an uncached 
ClassMeta object.
                // Note that if it has a pojo transform, we still want to cache 
it so that
-               // we can cache something like byte[] with 
ByteArrayBase64Transform.
-               if (c.isArray() && findPojoTransform(c) == null)
+               // we can cache something like byte[] with ByteArrayBase64Swap.
+               if (c.isArray() && findPojoSwap(c) == null)
                        return new ClassMeta(c, this);
 
                // This can happen if we have transforms defined against String 
or Object.
@@ -1410,46 +1410,46 @@ public class BeanContext extends Context {
        }
 
        /**
-        * Returns the {@link PojoTransform} associated with the specified 
class, or <jk>null</jk> if there is no
+        * Returns the {@link PojoSwap} associated with the specified class, or 
<jk>null</jk> if there is no
         * pojo transform associated with the class.
         *
         * @param <T> The class associated with the transform.
         * @param c The class associated with the transform.
         * @return The transform associated with the class, or null if there is 
no association.
         */
-       protected <T> PojoTransform findPojoTransform(Class<T> c) {
+       protected <T> PojoSwap findPojoSwap(Class<T> c) {
                // Note:  On first
                if (c != null)
-                       for (PojoTransform f : pojoTransforms)
+                       for (PojoSwap f : pojoSwaps)
                                if (isParentClass(f.forClass(), c))
                                        return f;
                return null;
        }
 
        /**
-        * Checks whether a class has a {@link PojoTransform} associated with 
it in this bean context.
+        * Checks whether a class has a {@link PojoSwap} associated with it in 
this bean context.
         * @param c The class to check.
-        * @return <jk>true</jk> if the specified class or one of its 
subclasses has a {@link PojoTransform} associated with it.
+        * @return <jk>true</jk> if the specified class or one of its 
subclasses has a {@link PojoSwap} associated with it.
         */
-       protected boolean hasChildPojoTransforms(Class<?> c) {
+       protected boolean hasChildPojoSwaps(Class<?> c) {
                if (c != null)
-                       for (PojoTransform f : pojoTransforms)
+                       for (PojoSwap f : pojoSwaps)
                                if (isParentClass(c, f.forClass()))
                                        return true;
                return false;
        }
 
        /**
-        * Returns the {@link BeanTransform} associated with the specified 
class, or <jk>null</jk> if there is no
-        * bean transform associated with the class.
+        * Returns the {@link BeanFilter} associated with the specified class, 
or <jk>null</jk> if there is no
+        * bean filter associated with the class.
         *
         * @param <T> The class associated with the transform.
         * @param c The class associated with the transform.
         * @return The transform associated with the class, or null if there is 
no association.
         */
-       protected <T> BeanTransform findBeanTransform(Class<T> c) {
+       protected <T> BeanFilter findBeanFilter(Class<T> c) {
                if (c != null)
-                       for (BeanTransform f : beanTransforms)
+                       for (BeanFilter f : beanFilters)
                                if (isParentClass(f.forClass(), c))
                                        return f;
                return null;
@@ -1569,19 +1569,19 @@ public class BeanContext extends Context {
         *              <tr><th>Convert to type</th><th>Valid input value 
types</th><th>Notes</th></tr>
         *              <tr>
         *                      <td>
-        *                              A class that is the normal type of a 
registered {@link PojoTransform}.
+        *                              A class that is the normal type of a 
registered {@link PojoSwap}.
         *                      </td>
         *                      <td>
-        *                              A value whose class matches the 
transformed type of that registered {@link PojoTransform}.
+        *                              A value whose class matches the 
transformed type of that registered {@link PojoSwap}.
         *                      </td>
         *                      <td>&nbsp;</td>
         *              </tr>
         *              <tr>
         *                      <td>
-        *                              A class that is the transformed type of 
a registered {@link PojoTransform}.
+        *                              A class that is the transformed type of 
a registered {@link PojoSwap}.
         *                      </td>
         *                      <td>
-        *                              A value whose class matches the normal 
type of that registered {@link PojoTransform}.
+        *                              A value whose class matches the normal 
type of that registered {@link PojoSwap}.
         *                      </td>
         *                      <td>&nbsp;</td>
         *              </tr>
@@ -1734,19 +1734,19 @@ public class BeanContext extends Context {
                        if (tc == Class.class)
                                return 
(T)(classLoader.loadClass(value.toString()));
 
-                       if (type.getPojoTransform() != null) {
-                               PojoTransform f = type.getPojoTransform();
+                       if (type.getPojoSwap() != null) {
+                               PojoSwap f = type.getPojoSwap();
                                Class<?> nc = f.getNormalClass(), fc = 
f.getTransformedClass();
                                if (isParentClass(nc, tc) && isParentClass(fc, 
value.getClass()))
-                                       return (T)f.normalize(value, type);
+                                       return (T)f.unswap(value, type);
                        }
 
                        ClassMeta<?> vt = getClassMetaForObject(value);
-                       if (vt.getPojoTransform() != null) {
-                               PojoTransform f = vt.getPojoTransform();
+                       if (vt.getPojoSwap() != null) {
+                               PojoSwap f = vt.getPojoSwap();
                                Class<?> nc = f.getNormalClass(), fc = 
f.getTransformedClass();
                                if (isParentClass(nc, vt.getInnerClass()) && 
isParentClass(fc, tc))
-                                       return (T)f.transform(value);
+                                       return (T)f.swap(value);
                        }
 
                        if (type.isPrimitive()) {
@@ -2055,8 +2055,8 @@ public class BeanContext extends Context {
                        .append("ignoreInvocationExceptionsOnGetters", 
ignoreInvocationExceptionsOnGetters)
                        .append("ignoreInvocationExceptionsOnSetters", 
ignoreInvocationExceptionsOnSetters)
                        .append("useJavaBeanIntrospector", 
useJavaBeanIntrospector)
-                       .append("beanTransforms", beanTransforms)
-                       .append("pojoTransforms", pojoTransforms)
+                       .append("beanFilters", beanFilters)
+                       .append("pojoSwaps", pojoSwaps)
                        .append("notBeanClasses", notBeanClasses)
                        .append("implClasses", implClasses)
                        .append("sortProperties", sortProperties);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMap.java 
b/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
index 6150526..d796367 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
@@ -42,12 +42,12 @@ import org.apache.juneau.xml.annotation.*;
  *                     by the {@link java.beans.BeanInfo} class (i.e. ordered 
by definition in the class).
  *     </ul>
  *     <br>
- *     The order can also be overridden through the use of a {@link 
BeanTransform}.
+ *     The order can also be overridden through the use of a {@link 
BeanFilter}.
  *
  *
- * <h6 class='topic'>POJO transforms</h6>
+ * <h6 class='topic'>POJO swaps</h6>
  * <p>
- *     If {@link PojoTransform PojoTransforms} are defined on the class types 
of the properties of this bean or the bean properties themselves, the
+ *     If {@link PojoSwap PojoSwaps} are defined on the class types of the 
properties of this bean or the bean properties themselves, the
  *     {@link #get(Object)} and {@link #put(String, Object)} methods will 
automatically
  *     transform the property value to and from the serialized form.
  *
@@ -178,10 +178,10 @@ public class BeanMap<T> extends 
AbstractMap<String,Object> implements Delegate<T
        /**
         * Sets a property on the bean.
         * <p>
-        * If there is a {@link PojoTransform} associated with this bean 
property or bean property type class, then
+        * If there is a {@link PojoSwap} associated with this bean property or 
bean property type class, then
         *      you must pass in a transformed value.
         * For example, if the bean property type class is a {@link Date} and 
the bean property has the
-        *      {@link org.apache.juneau.transforms.DateTransform.ISO8601DT} 
transform associated with it through the
+        *      {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} 
transform associated with it through the
         *      {@link BeanProperty#transform() @BeanProperty.transform()} 
annotation, the value being passed in must be
         *      a String containing an ISO8601 date-time string value.
         *
@@ -193,7 +193,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> 
implements Delegate<T
         *      Person p = <jk>new</jk> Person();
         *
         *      <jc>// Create a bean context and add the ISO8601 date-time 
transform</jc>
-        *      BeanContext beanContext = <jk>new</jk> 
BeanContext().addTransform(DateTransform.ISO8601DT.<jk>class</jk>);
+        *      BeanContext beanContext = <jk>new</jk> 
BeanContext().addTransform(DateSwap.ISO8601DT.<jk>class</jk>);
         *
         *      <jc>// Wrap our bean in a bean map</jc>
         *      BeanMap&lt;Person&gt; b = beanContext.forBean(p);
@@ -264,10 +264,10 @@ public class BeanMap<T> extends 
AbstractMap<String,Object> implements Delegate<T
        /**
         * Gets a property on the bean.
         * <p>
-        * If there is a {@link PojoTransform} associated with this bean 
property or bean property type class, then
+        * If there is a {@link PojoSwap} associated with this bean property or 
bean property type class, then
         *      this method will return the transformed value.
         * For example, if the bean property type class is a {@link Date} and 
the bean property has the
-        *      {@link org.apache.juneau.transforms.DateTransform.ISO8601DT} 
transform associated with it through the
+        *      {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} 
transform associated with it through the
         *      {@link BeanProperty#transform() @BeanProperty.transform()} 
annotation, this method will return a String
         *      containing an ISO8601 date-time string value.
         *
@@ -280,7 +280,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> 
implements Delegate<T
         *      p.setBirthDate(<jk>new</jk> Date(1, 2, 3, 4, 5, 6));
         *
         *      <jc>// Create a bean context and add the ISO8601 date-time 
transform</jc>
-        *      BeanContext beanContext = <jk>new</jk> 
BeanContext().addTransform(DateTransform.ISO8601DT.<jk>class</jk>);
+        *      BeanContext beanContext = <jk>new</jk> 
BeanContext().addTransform(DateSwap.ISO8601DT.<jk>class</jk>);
         *
         *      <jc>// Wrap our bean in a bean map</jc>
         *      BeanMap&lt;Person&gt; b = beanContext.forBean(p);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java 
b/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
index 7e6910d..67b949f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
@@ -36,7 +36,7 @@ import org.apache.juneau.transform.*;
  *     <jc>// Set the property value</jc>
  *     birthDate.setValue(<jk>new</jk> Date(1, 2, 3, 4, 5, 6));
  *
- *     <jc>// Or if the DateTransform.DEFAULT_ISO8601DT is registered with the 
bean context, set a transformed value</jc>
+ *     <jc>// Or if the DateSwap.DEFAULT_ISO8601DT is registered with the bean 
context, set a transformed value</jc>
  *     birthDate.setValue(<js>"'1901-03-03T04:05:06-5000'"</js>);
  * </p>
  *
@@ -65,10 +65,10 @@ public class BeanMapEntry implements 
Map.Entry<String,Object> {
        /**
         * Returns the value of this property.
         * <p>
-        * If there is a {@link PojoTransform} associated with this bean 
property or bean property type class, then
+        * If there is a {@link PojoSwap} associated with this bean property or 
bean property type class, then
         *      this method will return the transformed value.
         * For example, if the bean property type class is a {@link Date} and 
the bean property has the
-        *      {@link org.apache.juneau.transforms.DateTransform.ISO8601DT} 
transform associated with it through the
+        *      {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} 
transform associated with it through the
         *      {@link BeanProperty#transform() @BeanProperty.transform()} 
annotation, this method will return a String
         *      containing an ISO8601 date-time string value.
         */
@@ -84,10 +84,10 @@ public class BeanMapEntry implements 
Map.Entry<String,Object> {
         * <p>
         * If the property is a bean type {@code X}, then the value can either 
be an {@code X} or a {@code Map}.
         * <p>
-        * If there is a {@link PojoTransform} associated with this bean 
property or bean property type class, then
+        * If there is a {@link PojoSwap} associated with this bean property or 
bean property type class, then
         *      you must pass in a transformed value.
         * For example, if the bean property type class is a {@link Date} and 
the bean property has the
-        *      {@link org.apache.juneau.transforms.DateTransform.ISO8601DT} 
transform associated with it through the
+        *      {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} 
transform associated with it through the
         *      {@link BeanProperty#transform() @BeanProperty.transform()} 
annotation, the value being passed in must be
         *      a String containing an ISO8601 date-time string value.
         *

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java 
b/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
index 1eb9123..78f72a3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java
@@ -34,7 +34,7 @@ import org.apache.juneau.utils.*;
  * <h6 class='topic'>Description</h6>
  * <p>
  *     Uses introspection to find all the properties associated with this 
class.  If the {@link Bean @Bean} annotation
- *     is present on the class, or the class has a {@link BeanTransform} 
registered with it in the bean context,
+ *     is present on the class, or the class has a {@link BeanFilter} 
registered with it in the bean context,
  *     then that information is used to determine the properties on the class.
  *     Otherwise, the {@code BeanInfo} functionality in Java is used to 
determine the properties on the class.
  *
@@ -52,7 +52,7 @@ import org.apache.juneau.utils.*;
  *                     </ul>
  *     </ul>
  *     <br>
- *     The order can also be overridden through the use of an {@link 
BeanTransform}.
+ *     The order can also be overridden through the use of an {@link 
BeanFilter}.
  *
  *
  * @param <T> The class type that this metadata applies to.
@@ -79,8 +79,8 @@ public class BeanMeta<T> {
        /** The bean context that created this metadata object. */
        protected BeanContext ctx;
 
-       /** Optional bean transform associated with the target class. */
-       protected BeanTransform<? extends T> transform;
+       /** Optional bean filter associated with the target class. */
+       protected BeanFilter<? extends T> transform;
 
        /** Type variables implemented by this bean. */
        protected Map<Class<?>,Class<?>[]> typeVarImpls;
@@ -106,9 +106,9 @@ public class BeanMeta<T> {
         *
         * @param classMeta The target class.
         * @param ctx The bean context that created this object.
-        * @param transform Optional bean transform associated with the target 
class.  Can be <jk>null</jk>.
+        * @param transform Optional bean filter associated with the target 
class.  Can be <jk>null</jk>.
         */
-       protected BeanMeta(final ClassMeta<T> classMeta, BeanContext ctx, 
org.apache.juneau.transform.BeanTransform<? extends T> transform) {
+       protected BeanMeta(final ClassMeta<T> classMeta, BeanContext ctx, 
org.apache.juneau.transform.BeanFilter<? extends T> transform) {
                this.classMeta = classMeta;
                this.ctx = ctx;
                this.transform = transform;
@@ -325,14 +325,14 @@ public class BeanMeta<T> {
                        // If a transform is defined, look for inclusion and 
exclusion lists.
                        if (transform != null) {
 
-                               // Eliminated excluded properties if 
BeanTransform.excludeKeys is specified.
+                               // Eliminated excluded properties if 
BeanFilter.excludeKeys is specified.
                                String[] includeKeys = 
transform.getProperties();
                                String[] excludeKeys = 
transform.getExcludeProperties();
                                if (excludeKeys != null) {
                                        for (String k : excludeKeys)
                                                properties.remove(k);
 
-                               // Only include specified properties if 
BeanTransform.includeKeys is specified.
+                               // Only include specified properties if 
BeanFilter.includeKeys is specified.
                                // Note that the order must match includeKeys.
                                } else if (includeKeys != null) {
                                        Map<String,BeanPropertyMeta> 
properties2 = new LinkedHashMap<String,BeanPropertyMeta>();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java 
b/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index 1cdd8ea..e017939 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -55,7 +55,7 @@ public class BeanPropertyMeta {
                rawTypeMeta,                           // The real class type 
of the bean property.
                typeMeta;                              // The transformed class 
type of the bean property.
        private String[] properties;
-       private PojoTransform transform;      // PojoTransform defined only via 
@BeanProperty annotation.
+       private PojoSwap transform;      // PojoSwap defined only via 
@BeanProperty annotation.
 
        private MetadataMap extMeta = new MetadataMap();  // Extended metadata
 
@@ -130,7 +130,7 @@ public class BeanPropertyMeta {
        /**
         * Returns the {@link ClassMeta} of the class of this property.
         * <p>
-        * If this property or the property type class has a {@link 
PojoTransform} associated with it, this
+        * If this property or the property type class has a {@link PojoSwap} 
associated with it, this
         *      method returns the transformed class meta.
         * This matches the class type that is used by the {@link 
#get(BeanMap)} and {@link #set(BeanMap, Object)} methods.
         *
@@ -249,7 +249,7 @@ public class BeanPropertyMeta {
                        rawTypeMeta = f.getClassMeta(p, field.getGenericType(), 
typeVarImpls);
                        isUri |= (rawTypeMeta.isUri() || 
field.isAnnotationPresent(org.apache.juneau.annotation.URI.class));
                        if (p != null) {
-                               transform = getPropertyPojoTransform(p);
+                               transform = getPropertyPojoSwap(p);
                                if (p.properties().length != 0)
                                        properties = p.properties();
                                isBeanUri |= p.beanUri();
@@ -263,7 +263,7 @@ public class BeanPropertyMeta {
                        isUri |= (rawTypeMeta.isUri() || 
getter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));
                        if (p != null) {
                                if (transform == null)
-                                       transform = getPropertyPojoTransform(p);
+                                       transform = getPropertyPojoSwap(p);
                                if (properties != null && p.properties().length 
!= 0)
                                        properties = p.properties();
                                isBeanUri |= p.beanUri();
@@ -277,7 +277,7 @@ public class BeanPropertyMeta {
                        isUri |= (rawTypeMeta.isUri() || 
setter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));
                        if (p != null) {
                        if (transform == null)
-                               transform = getPropertyPojoTransform(p);
+                               transform = getPropertyPojoSwap(p);
                                if (properties != null && p.properties().length 
!= 0)
                                        properties = p.properties();
                                isBeanUri |= p.beanUri();
@@ -299,16 +299,16 @@ public class BeanPropertyMeta {
                return true;
        }
 
-       private PojoTransform getPropertyPojoTransform(BeanProperty p) throws 
Exception {
-               Class<? extends PojoTransform> c = p.transform();
-               if (c == PojoTransform.NULL.class)
+       private PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {
+               Class<? extends PojoSwap> c = p.transform();
+               if (c == PojoSwap.NULL.class)
                        return null;
                try {
-                       PojoTransform f = c.newInstance();
+                       PojoSwap f = c.newInstance();
                        f.setBeanContext(this.beanMeta.ctx);
                        return f;
                } catch (Exception e) {
-                       throw new BeanRuntimeException(this.beanMeta.c, "Could 
not instantiate PojoTransform ''{0}'' for bean property ''{1}''", c.getName(), 
this.name).initCause(e);
+                       throw new BeanRuntimeException(this.beanMeta.c, "Could 
not instantiate PojoSwap ''{0}'' for bean property ''{1}''", c.getName(), 
this.name).initCause(e);
                }
        }
 
@@ -383,7 +383,7 @@ public class BeanPropertyMeta {
        public Object set(BeanMap<?> m, Object value) throws 
BeanRuntimeException {
                try {
                        // Comvert to raw form.
-                       value = normalize(value);
+                       value = unswap(value);
                        BeanContext bc = this.beanMeta.ctx;
 
                if (m.bean == null) {
@@ -549,7 +549,7 @@ public class BeanPropertyMeta {
 
                        } else {
                                if (transform != null && value != null && 
isParentClass(transform.getTransformedClass(), value.getClass())) {
-                                               value = 
transform.normalize(value, rawTypeMeta);
+                                               value = transform.unswap(value, 
rawTypeMeta);
                                } else {
                                                value = 
beanMeta.ctx.convertToType(value, rawTypeMeta);
                                        }
@@ -721,31 +721,31 @@ public class BeanPropertyMeta {
        private Object transform(Object o) throws SerializeException {
                // First use transform defined via @BeanProperty.
                if (transform != null)
-                       return transform.transform(o);
+                       return transform.swap(o);
                if (o == null)
                        return null;
                // Otherwise, look it up via bean context.
-               if (rawTypeMeta.hasChildPojoTransforms()) {
+               if (rawTypeMeta.hasChildPojoSwaps()) {
                        Class c = o.getClass();
                        ClassMeta<?> cm = rawTypeMeta.innerClass == c ? 
rawTypeMeta : beanMeta.ctx.getClassMeta(c);
-                       PojoTransform f = cm.getPojoTransform();
+                       PojoSwap f = cm.getPojoSwap();
                        if (f != null)
-                               return f.transform(o);
+                               return f.swap(o);
                }
                return o;
        }
 
-       private Object normalize(Object o) throws ParseException {
+       private Object unswap(Object o) throws ParseException {
                if (transform != null)
-                       return transform.normalize(o, rawTypeMeta);
+                       return transform.unswap(o, rawTypeMeta);
                if (o == null)
                        return null;
-               if (rawTypeMeta.hasChildPojoTransforms()) {
+               if (rawTypeMeta.hasChildPojoSwaps()) {
                        Class c = o.getClass();
                        ClassMeta<?> cm = rawTypeMeta.innerClass == c ? 
rawTypeMeta : beanMeta.ctx.getClassMeta(c);
-                       PojoTransform f = cm.getPojoTransform();
+                       PojoSwap f = cm.getPojoSwap();
                        if (f != null)
-                               return f.normalize(o, rawTypeMeta);
+                               return f.unswap(o, rawTypeMeta);
                }
                return o;
        }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java 
b/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
index f49b7ad..b4af534 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
@@ -76,8 +76,8 @@ public final class ClassMeta<T> implements Type {
        Method namePropertyMethod;                        // The method to set 
the name on an object (if it has one).
        Method parentPropertyMethod;                      // The method to set 
the parent on an object (if it has one).
        String notABeanReason;                            // If this isn't a 
bean, the reason why.
-       PojoTransform<T,?> pojoTransform;                       // The object 
transform associated with this bean (if it has one).
-       BeanTransform<? extends T> beanTransform;               // The bean 
transform associated with this bean (if it has one).
+       PojoSwap<T,?> pojoSwap;                       // The object transform 
associated with this bean (if it has one).
+       BeanFilter<? extends T> beanFilter;               // The bean filter 
associated with this bean (if it has one).
        boolean
                isDelegate,                                    // True if this 
class extends Delegate.
                isAbstract,                                    // True if this 
class is abstract.
@@ -86,7 +86,7 @@ public final class ClassMeta<T> implements Type {
        private MetadataMap extMeta = new MetadataMap();  // Extended metadata
 
        private Throwable initException;                   // Any exceptions 
thrown in the init() method.
-       private boolean hasChildPojoTransforms;               // True if this 
class or any subclass of this class has a PojoTransform associated with it.
+       private boolean hasChildPojoSwaps;               // True if this class 
or any subclass of this class has a PojoSwap associated with it.
        private Object primitiveDefault;                   // Default value for 
primitive type classes.
        private Map<String,Method> remoteableMethods,      // Methods annotated 
with @Remoteable.  Contains all public methods if class is annotated with 
@Remotable.
                publicMethods;                                 // All public 
methods, including static methods.
@@ -130,10 +130,10 @@ public final class ClassMeta<T> implements Type {
                        Transform transform = findTransform(beanContext);
                        if (transform != null) {
                                if (transform.getType() == 
Transform.TransformType.BEAN)
-                                       beanTransform = 
(BeanTransform)transform;
+                                       beanFilter = (BeanFilter)transform;
                                else
-                                       pojoTransform = 
(PojoTransform)transform;
-                               transformedClassMeta = (pojoTransform == null ? 
this : beanContext.getClassMeta(pojoTransform.getTransformedClass()));
+                                       pojoSwap = (PojoSwap)transform;
+                               transformedClassMeta = (pojoSwap == null ? this 
: beanContext.getClassMeta(pojoSwap.getTransformedClass()));
                        }
                        if (transformedClassMeta == null)
                                transformedClassMeta = this;
@@ -144,7 +144,7 @@ public final class ClassMeta<T> implements Type {
                                        noArgConstructor = 
findNoArgConstructor(innerClass, Visibility.PUBLIC);
                        }
 
-                       this.hasChildPojoTransforms = 
beanContext.hasChildPojoTransforms(innerClass);
+                       this.hasChildPojoSwaps = 
beanContext.hasChildPojoSwaps(innerClass);
 
                        Class c = innerClass;
 
@@ -305,7 +305,7 @@ public final class ClassMeta<T> implements Type {
                        // Note that this needs to be done after all other 
initialization has been done.
                        else if (classCategory == UNKNOWN) {
 
-                               BeanMeta newMeta = new BeanMeta(this, 
beanContext, beanTransform);
+                               BeanMeta newMeta = new BeanMeta(this, 
beanContext, beanFilter);
                                try {
                                        notABeanReason = newMeta.init();
                                } catch (RuntimeException e) {
@@ -399,12 +399,12 @@ public final class ClassMeta<T> implements Type {
        }
 
        /**
-        * Returns <jk>true</jk> if this class as subtypes defined through 
{@link Bean#subTypes} or {@link BeanTransform#getSubTypes()}.
+        * Returns <jk>true</jk> if this class as subtypes defined through 
{@link Bean#subTypes} or {@link BeanFilter#getSubTypes()}.
         *
         * @return <jk>true</jk> if this class has subtypes.
         */
        public boolean hasSubTypes() {
-               return beanTransform != null && 
beanTransform.getSubTypeProperty() != null;
+               return beanFilter != null && beanFilter.getSubTypeProperty() != 
null;
        }
 
        /**
@@ -418,15 +418,15 @@ public final class ClassMeta<T> implements Type {
        }
 
        /**
-        * Returns <jk>true</jk> if this class or any child classes has a 
{@link PojoTransform} associated with it.
+        * Returns <jk>true</jk> if this class or any child classes has a 
{@link PojoSwap} associated with it.
         * <p>
         * Used when transforming bean properties to prevent having to look up 
transforms if we know for certain
         * that no transforms are associated with a bean property.
         *
-        * @return <jk>true</jk> if this class or any child classes has a 
{@link PojoTransform} associated with it.
+        * @return <jk>true</jk> if this class or any child classes has a 
{@link PojoSwap} associated with it.
         */
-       public boolean hasChildPojoTransforms() {
-               return hasChildPojoTransforms;
+       public boolean hasChildPojoSwaps() {
+               return hasChildPojoSwaps;
        }
 
        private Transform findTransform(BeanContext context) {
@@ -442,15 +442,15 @@ public final class ClassMeta<T> implements Type {
                        }
                        if (context == null)
                                return null;
-                       Transform f = context.findBeanTransform(innerClass);
+                       Transform f = context.findBeanFilter(innerClass);
                        if (f != null)
                                return f;
-                       f = context.findPojoTransform(innerClass);
+                       f = context.findPojoSwap(innerClass);
                        if (f != null)
                                return f;
                        List<Bean> ba = 
ReflectionUtils.findAnnotations(Bean.class, innerClass);
                        if (! ba.isEmpty())
-                               f = new AnnotationBeanTransform<T>(innerClass, 
ba);
+                               f = new AnnotationBeanFilter<T>(innerClass, ba);
                        return f;
                } catch (Exception e) {
                        throw new RuntimeException(e);
@@ -524,7 +524,7 @@ public final class ClassMeta<T> implements Type {
        }
 
        /**
-        * Returns the generalized form of this class if there is an {@link 
PojoTransform} associated with it.
+        * Returns the generalized form of this class if there is an {@link 
PojoSwap} associated with it.
         *
         * @return The transformed class type, or this object if no transform 
is associated with the class.
         */
@@ -803,13 +803,13 @@ public final class ClassMeta<T> implements Type {
        }
 
        /**
-        * Returns the {@link PojoTransform} associated with this class.
+        * Returns the {@link PojoSwap} associated with this class.
         *
-        * @return The {@link PojoTransform} associated with this class, or 
<jk>null</jk> if there is no POJO transform
+        * @return The {@link PojoSwap} associated with this class, or 
<jk>null</jk> if there is no POJO swap
         *      associated with this class.
         */
-       public PojoTransform<T,?> getPojoTransform() {
-               return pojoTransform;
+       public PojoSwap<T,?> getPojoSwap() {
+               return pojoSwap;
        }
 
        /**
@@ -895,7 +895,7 @@ public final class ClassMeta<T> implements Type {
                if (beanMeta == null)
                        return false;
                // Beans with transforms with subtype properties are assumed to 
be constructable.
-               if (beanTransform != null && beanTransform.getSubTypeProperty() 
!= null)
+               if (beanFilter != null && beanFilter.getSubTypeProperty() != 
null)
                        return true;
                if (beanMeta.constructor == null)
                        return false;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java 
b/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java
index bc957ca..2c6ab81 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java
@@ -127,7 +127,7 @@ import org.apache.juneau.parser.*;
  * <p>
  *     Lists are appended to the beginning of the set so that behavior can be 
overridden.<br>
  * <p>
- *     For sample, the following code shows the order in which POJO transforms 
are applied.<br>
+ *     For sample, the following code shows the order in which POJO swaps are 
applied.<br>
  *     In this case, we want F3 and F4 to appear at the beginning of the set 
so that they
  *     take precedence over F1 and F2....
  * <p class='bcode'>
@@ -264,7 +264,7 @@ public final class ContextFactory extends Lockable {
        private static Comparator<Object> PROPERTY_COMPARATOR = new 
Comparator<Object>() {
                @Override
                public int compare(Object o1, Object o2) {
-                       return 
normalize(o1).toString().compareTo(normalize(o2).toString());
+                       return 
unswap(o1).toString().compareTo(unswap(o2).toString());
                }
        };
 
@@ -750,8 +750,8 @@ public final class ContextFactory extends Lockable {
         */
        protected static class NormalizingHashCode extends HashCode {
                @Override /* HashCode */
-               protected Object normalize(Object o) {
-                       return ContextFactory.normalize(o);
+               protected Object unswap(Object o) {
+                       return ContextFactory.unswap(o);
                }
        }
 
@@ -1202,7 +1202,7 @@ public final class ContextFactory extends Lockable {
         * @param o The object to normalize.
         * @return The normalized object.
         */
-       private static final Object normalize(Object o) {
+       private static final Object unswap(Object o) {
                if (o instanceof Class)
                        return ((Class<?>)o).getName();
                if (o instanceof Number || o instanceof Boolean)
@@ -1247,7 +1247,7 @@ public final class ContextFactory extends Lockable {
                        }
                        return false;
                } else {
-                       return normalize(o1).equals(normalize(o2));
+                       return unswap(o1).equals(unswap(o2));
                }
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java 
b/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java
index 7bbbc8c..507c827 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java
@@ -356,12 +356,12 @@ public class ObjectMap extends 
LinkedHashMap<String,Object> {
         * @throws ParseException Thrown by the transform if a problem occurred 
trying to parse the value.
         */
        @SuppressWarnings({ "rawtypes", "unchecked" })
-       public <T> T get(PojoTransform<T,?> transform, String key) throws 
ParseException {
+       public <T> T get(PojoSwap<T,?> transform, String key) throws 
ParseException {
                Object o = super.get(key);
                if (o == null)
                        return null;
-               PojoTransform f = transform;
-               return (T)f.normalize(o, null);
+               PojoSwap f = transform;
+               return (T)f.unswap(o, null);
        }
 
        /**
@@ -1130,7 +1130,7 @@ public class ObjectMap extends 
LinkedHashMap<String,Object> {
         *              <p>
         *                      It can also be converted to any type that can 
be handled by the {@link BeanContext#convertToType(Object, Class)} method.
         *                      In this case, the value is specified by an 
<code>value</code> entry of any type.
-        *                      For example, if the bean context has a {@link 
CalendarTransform} associated with it, it can convert a string value to a 
calendar.
+        *                      For example, if the bean context has a {@link 
CalendarSwap} associated with it, it can convert a string value to a calendar.
         *              <p class='bcode'>
         *      {
         *              _class: <js>'java.util.GregorianCalendar'</js>,

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/annotation/Bean.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/annotation/Bean.java 
b/juneau-core/src/main/java/org/apache/juneau/annotation/Bean.java
index 55b6468..dd436a2 100644
--- a/juneau-core/src/main/java/org/apache/juneau/annotation/Bean.java
+++ b/juneau-core/src/main/java/org/apache/juneau/annotation/Bean.java
@@ -46,7 +46,7 @@ public @interface Bean {
         * <p>
         *      The order specified is the same order that the entries will be 
returned by the {@link BeanMap#entrySet()} and related methods.
         * <p>
-        *      This annotation is an alternative to using the {@link 
BeanTransform} class with an implemented {@link BeanTransform#getProperties()} 
method.
+        *      This annotation is an alternative to using the {@link 
BeanFilter} class with an implemented {@link BeanFilter#getProperties()} method.
         *
         * <dl>
         *      <dt>Example:</dt>
@@ -84,7 +84,7 @@ public @interface Bean {
        /**
         * Specifies a list of properties that should be excluded from {@link 
BeanMap#entrySet()}.
         * <p>
-        *      This annotation is an alternative to using the {@link 
BeanTransform} class with an implemented {@link 
BeanTransform#getExcludeProperties()} method.
+        *      This annotation is an alternative to using the {@link 
BeanFilter} class with an implemented {@link BeanFilter#getExcludeProperties()} 
method.
         *
         * <dl>
         *      <dt>Example:</dt>
@@ -108,7 +108,7 @@ public @interface Bean {
         *      For example, the {@link PropertyNamerDashedLC} will convert 
property names to dashed-lowercase, and
         *              these will be used as attribute names in JSON, and 
element names in XML.
         * <p>
-        *      This annotation is an alternative to using the {@link 
BeanTransform} class with an implemented {@link 
BeanTransform#getPropertyNamer()} method.
+        *      This annotation is an alternative to using the {@link 
BeanFilter} class with an implemented {@link BeanFilter#getPropertyNamer()} 
method.
         *
         * <dl>
         *      <dt>Example:</dt>
@@ -170,7 +170,7 @@ public @interface Bean {
         *      <jsm>assertTrue</jsm>(a <jk>instanceof</jk> A1);
         * </p>
         * <p>
-        *      This annotation is an alternative to using the {@link 
BeanTransform} class with an implemented {@link 
BeanTransform#getSubTypeProperty()} method.
+        *      This annotation is an alternative to using the {@link 
BeanFilter} class with an implemented {@link BeanFilter#getSubTypeProperty()} 
method.
         */
        String subTypeProperty() default "";
 
@@ -205,7 +205,7 @@ public @interface Bean {
         *      Note that this annotation can be used on the parent class so 
that it filters to all child classes,
         *              or can be set individually on the child classes.
         * <p>
-        *      This annotation is an alternative to using the {@link 
BeanTransform} class with an implemented {@link 
BeanTransform#getInterfaceClass()} method.
+        *      This annotation is an alternative to using the {@link 
BeanFilter} class with an implemented {@link BeanFilter#getInterfaceClass()} 
method.
         */
        Class<?> interfaceClass() default Object.class;
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/annotation/BeanProperty.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/annotation/BeanProperty.java 
b/juneau-core/src/main/java/org/apache/juneau/annotation/BeanProperty.java
index e9ff331..587da9c 100644
--- a/juneau-core/src/main/java/org/apache/juneau/annotation/BeanProperty.java
+++ b/juneau-core/src/main/java/org/apache/juneau/annotation/BeanProperty.java
@@ -126,14 +126,14 @@ public @interface BeanProperty {
         *      <jk>public class</jk> MyClass {
         *
         *              <jc>// During serialization, convert to ISO8601 
date-time string.</jc>
-        *              
<ja>@BeanProperty</ja>(transform=CalendarTransform.ISO8601DT.<jk>class</jk>)
+        *              
<ja>@BeanProperty</ja>(transform=CalendarSwap.ISO8601DT.<jk>class</jk>)
         *              <jk>public</jk> Calendar getTime();
         *      }
         *              </p>
         *      </dd>
         * </dl>
         */
-       Class<? extends PojoTransform<?,?>> transform() default 
PojoTransform.NULL.class;
+       Class<? extends PojoSwap<?,?>> transform() default PojoSwap.NULL.class;
 
        /**
         * Used to limit which child properties are rendered by the serializers.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java 
b/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
index d4919ee..2027c55 100644
--- a/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
+++ b/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
@@ -25,7 +25,7 @@ import org.apache.juneau.transform.*;
  * <p>
  *     Annotation that can be applied to POJOs to associate transforms with 
them.
  * <p>
- *     Typically used to associate {@link PojoTransform PojoTransforms} with 
classes using annotations
+ *     Typically used to associate {@link PojoSwap PojoSwaps} with classes 
using annotations
  *             instead of programatically through a method such as {@link 
Serializer#addTransforms(Class...)}.
  *
  * <h6 class='topic'>Example</h6>
@@ -33,17 +33,17 @@ import org.apache.juneau.transform.*;
  *     In this case, a transform is being applied to a bean that will force it 
to be serialized as a <code>String</code>
  * <p class='bcode'>
  *     <jc>// Our bean class</jc>
- *     <ja>@Pojo</ja>(transform=BTransform.<jk>class</jk>)
+ *     <ja>@Pojo</ja>(transform=BSwap.<jk>class</jk>)
  *     <jk>public class</jk> B {
  *             <jk>public</jk> String <jf>f1</jf>;
  *     }
  *
  *     <jc>// Our transform to force the bean to be serialized as a String</jc>
- *     <jk>public class</jk> BTransform <jk>extends</jk> 
PojoTransform&lt;B,String&gt; {
- *             <jk>public</jk> String transform(B o) <jk>throws</jk> 
SerializeException {
+ *     <jk>public class</jk> BSwap <jk>extends</jk> PojoSwap&lt;B,String&gt; {
+ *             <jk>public</jk> String swap(B o) <jk>throws</jk> 
SerializeException {
  *                     <jk>return</jk> o.f1;
  *             }
- *             <jk>public</jk> B normalize(String f, ClassMeta&lt;?&gt; hint) 
<jk>throws</jk> ParseException {
+ *             <jk>public</jk> B unswap(String f, ClassMeta&lt;?&gt; hint) 
<jk>throws</jk> ParseException {
  *                     B b1 = <jk>new</jk> B();
  *                     b1.<jf>f1</jf> = f;
  *                     <jk>return</jk> b1;
@@ -65,11 +65,11 @@ import org.apache.juneau.transform.*;
  * <p>
  *     Note that using this annotation is functionally equivalent to adding 
transforms to the serializers and parsers:
  * <p class='bcode'>
- *     WriterSerializer s = <jk>new</jk> 
JsonSerializer.addTransforms(BTransform.<jk>class</jk>);
- *     ReaderParser p = <jk>new</jk> 
JsonParser.addTransforms(BTransform.<jk>class</jk>);
+ *     WriterSerializer s = <jk>new</jk> 
JsonSerializer.addTransforms(BSwap.<jk>class</jk>);
+ *     ReaderParser p = <jk>new</jk> 
JsonParser.addTransforms(BSwap.<jk>class</jk>);
  * </p>
  * <p>
- *     It is technically possible to associate a {@link BeanTransform} with a 
bean class using this annotation.
+ *     It is technically possible to associate a {@link BeanFilter} with a 
bean class using this annotation.
  *     However in practice, it's almost always less code to simply use the 
{@link Bean @Bean} annotation.
  * </p>
  *
@@ -82,7 +82,7 @@ import org.apache.juneau.transform.*;
 public @interface Pojo {
 
        /**
-        * The transform class.
+        * Associate a {@link PojoSwap} or {@link SurrogateSwap} with this 
class type.
         */
        Class<? extends Transform> transform() default Transform.NULL.class;
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
index ea60789..821193a 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
@@ -262,7 +262,7 @@ public class CommonEntry extends Common {
         *
         * @return The update timestamp of this object.
         */
-       @BeanProperty(transform=CalendarTransform.ISO8601DT.class)
+       @BeanProperty(transform=CalendarSwap.ISO8601DT.class)
        public Calendar getUpdated() {
                return updated;
        }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/dto/atom/Entry.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/atom/Entry.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/atom/Entry.java
index 9fc4111..2475372 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/atom/Entry.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/atom/Entry.java
@@ -100,7 +100,7 @@ public class Entry extends CommonEntry {
         *
         * @return The publish timestamp of this entry.
         */
-       @BeanProperty(transform=CalendarTransform.ISO8601DT.class)
+       @BeanProperty(transform=CalendarSwap.ISO8601DT.class)
        public Calendar getPublished() {
                return published;
        }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/dto/cognos/Column.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/cognos/Column.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/cognos/Column.java
index 020a71b..8356f70 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/cognos/Column.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/cognos/Column.java
@@ -33,7 +33,7 @@ public class Column {
 
        private String name, type;
        private Integer length;
-       PojoTransform transform;
+       PojoSwap transform;
 
        /** Bean constructor. */
        public Column() {}
@@ -62,7 +62,7 @@ public class Column {
        }
 
        /**
-        * Associates a POJO transform with this column.
+        * Associates a POJO swap with this column.
         * <p>
         *      Typically used to define columns that don't exist on the 
underlying beans being serialized.
         * <p>
@@ -72,9 +72,9 @@ public class Column {
         * <p class='bcode'>
         *      Column c = <jk>new</jk> Column(<js>"numAddresses"</js>, 
<js>"xs:int"</js>)
         *              .addTransform(
-        *                      <jk>new</jk> PojoTransform<Person,Integer>() {
+        *                      <jk>new</jk> PojoSwap<Person,Integer>() {
         *                              <ja>@Override</ja>
-        *                              <jk>public</jk> Integer 
transform(Person p) {
+        *                              <jk>public</jk> Integer swap(Person p) {
         *                                      <jk>return</jk> 
p.<jf>addresses</jf>.size();
         *                              }
         *                      }
@@ -84,7 +84,7 @@ public class Column {
         * @param transform The transform to associate with the column.
         * @return This object (for method chaining).
         */
-       public Column addTransform(PojoTransform transform) {
+       public Column addTransform(PojoSwap transform) {
                this.transform = transform;
                return this;
        }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/dto/cognos/DataSet.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
index d4a70f2..77c770f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
@@ -58,9 +58,9 @@ import org.apache.juneau.xml.annotation.*;
  *             <jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>),
  *             <jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>)
  *                     .addTransform(
- *                             <jk>new</jk> 
PojoTransform&ltPerson,Integer&gt;() {
+ *                             <jk>new</jk> PojoSwap&ltPerson,Integer&gt;() {
  *                                     <ja>@Override</ja>
- *                                     <jk>public</jk> Integer 
transform(Person p) {
+ *                                     <jk>public</jk> Integer swap(Person p) {
  *                                             <jk>return</jk> 
p.<jf>addresses</jf>.size();
  *                                     }
  *                             }
@@ -112,7 +112,7 @@ public class DataSet {
                                        for (Column col : columns) {
                                                Object v;
                                                if (col.transform != null)
-                                                       v = 
col.transform.transform(o2);
+                                                       v = 
col.transform.swap(o2);
                                                else
                                                        v = 
m.get(col.getName());
                                                r.add(v == null ? null : 
v.toString());

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/dto/cognos/package.html
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/dto/cognos/package.html 
b/juneau-core/src/main/java/org/apache/juneau/dto/cognos/package.html
index 354fe8d..ed03606 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/cognos/package.html
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/cognos/package.html
@@ -108,9 +108,9 @@
                <jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>),
                <jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>)
                        .addTransform(
-                               <jk>new</jk> 
PojoTransform&lt;Person,Integer&gt;() {
+                               <jk>new</jk> PojoSwap&lt;Person,Integer&gt;() {
                                        <ja>@Override</ja>
-                                       <jk>public</jk> Integer 
transform(Person p) {
+                                       <jk>public</jk> Integer swap(Person p) {
                                                <jk>return</jk> 
p.<jf>addresses</jf>.size();
                                        }
                                }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
index d63a245..2fbba1d 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
@@ -218,7 +218,7 @@ public class Schema {
         * @return The value of the <property>type</property> property on this 
bean, or <jk>null</jk> if it is not set.
         *      Can be either a {@link JsonType} or {@link JsonTypeArray} 
depending on what value was used to set it.
         */
-       @BeanProperty(transform=JsonTypeOrJsonTypeArrayTransform.class)
+       @BeanProperty(transform=JsonTypeOrJsonTypeArraySwap.class)
        public Object getType() {
                if (typeJsonType != null)
                        return typeJsonType;
@@ -292,15 +292,15 @@ public class Schema {
         * </ul>
         * Serialization method is a no-op.
         */
-       public static class JsonTypeOrJsonTypeArrayTransform extends 
PojoTransform<Object,Object> {
+       public static class JsonTypeOrJsonTypeArraySwap extends 
PojoSwap<Object,Object> {
 
-               @Override /* PojoTransform */
-               public Object transform(Object o) throws SerializeException {
+               @Override /* PojoSwap */
+               public Object swap(Object o) throws SerializeException {
                        return o;
                }
 
-               @Override /* PojoTransform */
-               public Object normalize(Object o, ClassMeta<?> hint) throws 
ParseException {
+               @Override /* PojoSwap */
+               public Object unswap(Object o, ClassMeta<?> hint) throws 
ParseException {
                        BeanContext bc = getBeanContext();
                        ClassMeta<?> cm = (o instanceof Collection ? 
bc.getClassMeta(JsonTypeArray.class) : bc.getClassMeta(JsonType.class));
                        return bc.convertToType(o, cm);
@@ -514,7 +514,7 @@ public class Schema {
         * @return The value of the <property>items</property> property on this 
bean, or <jk>null</jk> if it is not set.
         *      Can be either a {@link Schema} or {@link SchemaArray} depending 
on what value was used to set it.
         */
-       @BeanProperty(transform=SchemaOrSchemaArrayTransform.class)
+       @BeanProperty(transform=SchemaOrSchemaArraySwap.class)
        public Object getItems() {
                if (itemsSchema != null)
                        return itemsSchema;
@@ -553,15 +553,15 @@ public class Schema {
         * </ul>
         * Serialization method is a no-op.
         */
-       public static class SchemaOrSchemaArrayTransform extends 
PojoTransform<Object,Object> {
+       public static class SchemaOrSchemaArraySwap extends 
PojoSwap<Object,Object> {
 
-               @Override /* PojoTransform */
-               public Object transform(Object o) throws SerializeException {
+               @Override /* PojoSwap */
+               public Object swap(Object o) throws SerializeException {
                        return o;
                }
 
-               @Override /* PojoTransform */
-               public Object normalize(Object o, ClassMeta<?> hint) throws 
ParseException {
+               @Override /* PojoSwap */
+               public Object unswap(Object o, ClassMeta<?> hint) throws 
ParseException {
                        BeanContext bc = getBeanContext();
                        ClassMeta<?> cm = (o instanceof Collection ? 
bc.getClassMeta(SchemaArray.class) : bc.getClassMeta(Schema.class));
                        return bc.convertToType(o, cm);
@@ -772,7 +772,7 @@ public class Schema {
         * @return The value of the <property>additionalItems</property> 
property on this bean, or <jk>null</jk> if it is not set.
         *      Can be either a {@link Boolean} or {@link SchemaArray} 
depending on what value was used to set it.
         */
-       @BeanProperty(transform=BooleanOrSchemaArrayTransform.class)
+       @BeanProperty(transform=BooleanOrSchemaArraySwap.class)
        public Object getAdditionalItems() {
                if (additionalItemsBoolean != null)
                        return additionalItemsBoolean;
@@ -848,15 +848,15 @@ public class Schema {
         * </ul>
         * Serialization method is a no-op.
         */
-       public static class BooleanOrSchemaArrayTransform extends 
PojoTransform<Object,Object> {
+       public static class BooleanOrSchemaArraySwap extends 
PojoSwap<Object,Object> {
 
-               @Override /* PojoTransform */
-               public Object transform(Object o) throws SerializeException {
+               @Override /* PojoSwap */
+               public Object swap(Object o) throws SerializeException {
                        return o;
                }
 
-               @Override /* PojoTransform */
-               public Object normalize(Object o, ClassMeta<?> hint) throws 
ParseException {
+               @Override /* PojoSwap */
+               public Object unswap(Object o, ClassMeta<?> hint) throws 
ParseException {
                        BeanContext bc = getBeanContext();
                        ClassMeta<?> cm = (o instanceof Collection ? 
bc.getClassMeta(SchemaArray.class) : bc.getClassMeta(Boolean.class));
                        return bc.convertToType(o, cm);
@@ -1031,7 +1031,7 @@ public class Schema {
         * @return The value of the <property>additionalProperties</property> 
property on this bean, or <jk>null</jk> if it is not set.
         *      Can be either a {@link Boolean} or {@link SchemaArray} 
depending on what value was used to set it.
         */
-       @BeanProperty(transform=BooleanOrSchemaTransform.class)
+       @BeanProperty(transform=BooleanOrSchemaSwap.class)
        public Object getAdditionalProperties() {
                if (additionalPropertiesBoolean != null)
                        return additionalItemsBoolean;
@@ -1093,15 +1093,15 @@ public class Schema {
         * </ul>
         * Serialization method is a no-op.
         */
-       public static class BooleanOrSchemaTransform extends 
PojoTransform<Object,Object> {
+       public static class BooleanOrSchemaSwap extends PojoSwap<Object,Object> 
{
 
-               @Override /* PojoTransform */
-               public Object transform(Object o) throws SerializeException {
+               @Override /* PojoSwap */
+               public Object swap(Object o) throws SerializeException {
                        return o;
                }
 
-               @Override /* PojoTransform */
-               public Object normalize(Object o, ClassMeta<?> hint) throws 
ParseException {
+               @Override /* PojoSwap */
+               public Object unswap(Object o, ClassMeta<?> hint) throws 
ParseException {
                        BeanContext bc = getBeanContext();
                        ClassMeta<?> cm = (o instanceof Boolean ? 
bc.getClassMeta(Boolean.class) : bc.getClassMeta(Schema.class));
                        return bc.convertToType(o, cm);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java 
b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java
index c8423ce..6cdc4cd 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java
@@ -72,7 +72,7 @@ public final class HtmlParser extends ReaderParser {
                BeanContext bc = session.getBeanContext();
                if (nt == null)
                        nt = (ClassMeta<T>)object();
-               PojoTransform<T,Object> transform = 
(PojoTransform<T,Object>)nt.getPojoTransform();
+               PojoSwap<T,Object> transform = 
(PojoSwap<T,Object>)nt.getPojoSwap();
                ClassMeta<?> ft = nt.getTransformedClassMeta();
                session.setCurrentClass(ft);
 
@@ -195,7 +195,7 @@ public final class HtmlParser extends ReaderParser {
 
 
                if (transform != null && o != null)
-                       o = transform.normalize(o, nt);
+                       o = transform.unswap(o, nt);
 
                if (outer != null)
                        setParent(nt, o, outer);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
index f30b0bb..0ba6005 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
@@ -116,7 +116,7 @@ public final class HtmlSchemaDocSerializer extends 
HtmlDocSerializer {
 
                out.put("type", type);
                out.put("class", eType.toString());
-               PojoTransform t = eType.getPojoTransform();
+               PojoSwap t = eType.getPojoSwap();
                if (t != null)
                        out.put("transform", t);
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index 47e40cc..664f266 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -222,9 +222,9 @@ public class HtmlSerializer extends XmlSerializer {
                                classAttr = aType.toString();
 
                        // Transform if necessary
-                       PojoTransform transform = aType.getPojoTransform();
+                       PojoSwap transform = aType.getPojoSwap();
                        if (transform != null) {
-                               o = transform.transform(o);
+                               o = transform.swap(o);
 
                                // If the transforms getTransformedClass() 
method returns Object, we need to figure out
                                // the actual type now.
@@ -409,9 +409,9 @@ public class HtmlSerializer extends XmlSerializer {
                        for (Object o : c) {
                                ClassMeta<?> cm = bc.getClassMetaForObject(o);
 
-                               if (cm != null && cm.getPojoTransform() != 
null) {
-                                       PojoTransform f = cm.getPojoTransform();
-                                       o = f.transform(o);
+                               if (cm != null && cm.getPojoSwap() != null) {
+                                       PojoSwap f = cm.getPojoSwap();
+                                       o = f.swap(o);
                                        cm = cm.getTransformedClassMeta();
                                }
 
@@ -487,9 +487,9 @@ public class HtmlSerializer extends XmlSerializer {
                if (o1 == null)
                        return null;
                ClassMeta<?> cm = bc.getClassMetaForObject(o1);
-               if (cm.getPojoTransform() != null) {
-                       PojoTransform f = cm.getPojoTransform();
-                       o1 = f.transform(o1);
+               if (cm.getPojoSwap() != null) {
+                       PojoSwap f = cm.getPojoSwap();
+                       o1 = f.swap(o1);
                        cm = cm.getTransformedClassMeta();
                }
                if (cm == null || ! (cm.isMap() || cm.isBean()))
@@ -523,9 +523,9 @@ public class HtmlSerializer extends XmlSerializer {
                        if (o == null)
                                continue;
                        cm = bc.getClassMetaForObject(o);
-                       if (cm != null && cm.getPojoTransform() != null) {
-                               PojoTransform f = cm.getPojoTransform();
-                               o = f.transform(o);
+                       if (cm != null && cm.getPojoSwap() != null) {
+                               PojoSwap f = cm.getPojoSwap();
+                               o = f.swap(o);
                                cm = cm.getTransformedClassMeta();
                        }
                        if (prevC.contains(cm))

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/internal/HashCode.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/internal/HashCode.java 
b/juneau-core/src/main/java/org/apache/juneau/internal/HashCode.java
index fc1e72b..f25fa09 100644
--- a/juneau-core/src/main/java/org/apache/juneau/internal/HashCode.java
+++ b/juneau-core/src/main/java/org/apache/juneau/internal/HashCode.java
@@ -42,7 +42,7 @@ public class HashCode {
         * @return This object (for method chaining).
         */
        public HashCode add(Object o) {
-               o = normalize(o);
+               o = unswap(o);
                add(o == null ? 1 : o.hashCode());
                return this;
        }
@@ -79,7 +79,7 @@ public class HashCode {
         * @param o The object to normalize before getting it's hashcode.
         * @return The normalized object.
         */
-       protected Object normalize(Object o) {
+       protected Object unswap(Object o) {
                return o;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java 
b/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java
index 4bd90ef..d1c5ccf 100644
--- a/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java
+++ b/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java
@@ -32,10 +32,10 @@ public class JuneauLogger extends java.util.logging.Logger {
 
        private static final WriterSerializer serializer = 
JsonSerializer.DEFAULT_LAX.clone()
                .addTransforms(
-                       CalendarTransform.ISO8601DTZ.class,
-                       DateTransform.ISO8601DTZ.class,
-                       EnumerationTransform.class,
-                       IteratorTransform.class
+                       CalendarSwap.ISO8601DTZ.class,
+                       DateSwap.ISO8601DTZ.class,
+                       EnumerationSwap.class,
+                       IteratorSwap.class
                );
 
        private static final ConcurrentHashMap<Class<?>,String> rbMap = new 
ConcurrentHashMap<Class<?>,String>();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java 
b/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java
index 6695b0b..3b7ae14 100644
--- a/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -243,7 +243,7 @@ public class RdfParser extends ReaderParser {
 
                if (nt == null)
                        nt = (ClassMeta<T>)object();
-               PojoTransform<T,Object> transform = 
(PojoTransform<T,Object>)nt.getPojoTransform();
+               PojoSwap<T,Object> transform = 
(PojoSwap<T,Object>)nt.getPojoSwap();
                ClassMeta<?> ft = nt.getTransformedClassMeta();
                session.setCurrentClass(ft);
 
@@ -353,7 +353,7 @@ public class RdfParser extends ReaderParser {
                }
 
                if (transform != null && o != null)
-                       o = transform.normalize(o, nt);
+                       o = transform.unswap(o, nt);
 
                if (outer != null)
                        setParent(nt, o, outer);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index dc6aa74..5f464e1 100644
--- a/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -180,9 +180,9 @@ public class RdfSerializer extends WriterSerializer {
                        gType = aType.getTransformedClassMeta();
 
                        // Transform if necessary
-                       PojoTransform transform = aType.getPojoTransform();
+                       PojoSwap transform = aType.getPojoSwap();
                        if (transform != null) {
-                               o = transform.transform(o);
+                               o = transform.swap(o);
 
                                // If the transforms getTransformedClass() 
method returns Object, we need to figure out
                                // the actual type now.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/jena/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/jena/package.html 
b/juneau-core/src/main/java/org/apache/juneau/jena/package.html
index 5cf96e4..0a25043 100644
--- a/juneau-core/src/main/java/org/apache/juneau/jena/package.html
+++ b/juneau-core/src/main/java/org/apache/juneau/jena/package.html
@@ -119,10 +119,10 @@
                        <code>fromString()</code>, <code>valueOf()</code>, 
<code>constructor(String)</code>).
        </ul>
        <p>
-               In addition to the types shown above, Juneau includes the 
ability to define transforms to transform non-standard object and 
+               In addition to the types shown above, Juneau includes the 
ability to define 'swaps' to transform non-standard object and 
                        property types to serializable forms (e.g. to transform 
<code>Calendars</code> to and from <code>ISO8601</code> strings, 
                        or <code>byte[]</code> arrays to and from base-64 
encoded strings).<br>
-               These transforms can be associated with serializers/parsers, or 
can be associated with classes or bean properties through type and method 
annotations.
+               These  can be associated with serializers/parsers, or can be 
associated with classes or bean properties through type and method annotations.
        </p>
        <p>
                Refer to <a href='../package-summary.html#PojoCategories' 
class='doclink'>POJO Categories</a> for a complete definition of supported 
POJOs.
@@ -469,16 +469,16 @@
                        <li>Associating transforms at both the class and 
property level (to convert non-serializable POJOs to serializable forms).
                </ul>
                <p>
-                       For example, we now add a <code>birthDate</code> 
property, and associate a transform with it to transform
+                       For example, we now add a <code>birthDate</code> 
property, and associate a swap with it to transform
                                it to an ISO8601 date-time string in GMT 
time.<br>
                        By default, <code>Calendars</code> are treated as beans 
by the framework, which is usually not how you want them serialized.<br>
-                       Using transforms, we can convert them to standardized 
string forms.
+                       Using swaps, we can convert them to standardized string 
forms.
                </p>
                <p class='bcode'>       
        <jk>public class</jk> Person {
                
                <jc>// Bean properties</jc>
-               
<ja>@BeanProperty</ja>(transform=CalendarTransform.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar birthDate;
+               
<ja>@BeanProperty</ja>(transform=CalendarSwap.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar birthDate;
                ...
                
                <jc>// Normal constructor</jc>
@@ -898,9 +898,9 @@
        <jc>// Get a value convertable from a String.</jc>
        URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
 
-       <jc>// Get a value using a transform.</jc>
-       CalendarTransform transform = <jk>new</jk> 
CalendarTransform.ISO8601DTZ();
-       Calendar birthDate = m.get(transform, <js>"birthDate"</js>);
+       <jc>// Get a value using a swap.</jc>
+       CalendarSwap swap = <jk>new</jk> CalendarSwap.ISO8601DTZ();
+       Calendar birthDate = m.get(swap, <js>"birthDate"</js>);
 
        <jc>// Get the addresses.</jc>
        ObjectList addresses = m.getObjectList(<js>"addresses"</js>);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java 
b/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
index 07d58ef..1930874 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
@@ -104,7 +104,7 @@ public final class JsonParser extends ReaderParser {
                BeanContext bc = session.getBeanContext();
                if (nt == null)
                        nt = (ClassMeta<T>)object();
-               PojoTransform<T,Object> transform = 
(PojoTransform<T,Object>)nt.getPojoTransform();
+               PojoSwap<T,Object> transform = 
(PojoSwap<T,Object>)nt.getPojoSwap();
                ClassMeta<?> ft = nt.getTransformedClassMeta();
                session.setCurrentClass(ft);
                String wrapperAttr = 
ft.getExtendedMeta(JsonClassMeta.class).getWrapperAttr();
@@ -202,7 +202,7 @@ public final class JsonParser extends ReaderParser {
                        skipWrapperAttrEnd(session, r);
 
                if (transform != null && o != null)
-                       o = transform.normalize(o, nt);
+                       o = transform.unswap(o, nt);
 
                if (outer != null)
                        setParent(nt, o, outer);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
index a384059..b264762 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
@@ -112,7 +112,7 @@ public final class JsonSchemaSerializer extends 
JsonSerializer {
 
                out.put("type", type);
                out.put("description", eType.toString());
-               PojoTransform f = eType.getPojoTransform();
+               PojoSwap f = eType.getPojoSwap();
                if (f != null)
                        out.put("transform", f);
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
index 2be051e..119c9e4 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -188,9 +188,9 @@ public class JsonSerializer extends WriterSerializer {
                addClassAttr = (session.isAddClassAttrs() && ! 
eType.equals(aType));
 
                // Transform if necessary
-               PojoTransform transform = aType.getPojoTransform();             
                // The transform
+               PojoSwap transform = aType.getPojoSwap();                       
        // The transform
                if (transform != null) {
-                       o = transform.transform(o);
+                       o = transform.swap(o);
 
                        // If the transform's getTransformedClass() method 
returns Object, we need to figure out
                        // the actual type now.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0ce0e663/juneau-core/src/main/java/org/apache/juneau/json/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/package.html 
b/juneau-core/src/main/java/org/apache/juneau/json/package.html
index 1c947cb..2012db3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/package.html
+++ b/juneau-core/src/main/java/org/apache/juneau/json/package.html
@@ -107,7 +107,7 @@
                <li>Multi-dimensional arrays of any type on this list.
                <li>Java Beans with properties of any type on this list.
                <li>Classes with standard transformations to and from 
<code>Strings</code> (e.g. classes containing <code>toString()</code>, 
<code>fromString()</code>, <code>valueOf()</code>, 
<code>constructor(String)</code>).
-               <li>Non-serializable classes and properties with associated 
<code>PojoTransforms</code> that convert them to serializable forms.
+               <li>Non-serializable classes and properties with associated 
<code>PojoSwaps</code> that convert them to serializable forms.
        </ul>
        <p>
                Refer to <a href='../package-summary.html#PojoCategories' 
class='doclink'>POJO Categories</a> for a complete definition of supported 
POJOs.
@@ -202,9 +202,9 @@
                        </tr>
                </table>
                <p>
-                       In addition, transforms can be used to convert 
non-serializable POJOs into serializable forms, such as converting 
+                       In addition, swaps can be used to convert 
non-serializable POJOs into serializable forms, such as converting 
                                <code>Calendar</code> object to ISO8601 
strings, or <code><jk>byte</jk>[]</code> arrays to Base-64 encoded strings.<br>
-                       These transforms can be associated at various levels:
+                       These swaps can be associated at various levels:
                </p>
                <ul class='spaced-list'>
                        <li>On serializer and parser instances to handle all 
objects of the class type globally.
@@ -307,14 +307,14 @@
                        <li>Hiding bean properties.
                        <li>Specifying the ordering of bean properties.
                        <li>Overriding the names of bean properties.
-                       <li>Associating transforms at both the class and 
property level (to convert non-serializable POJOs to serializable forms).
+                       <li>Associating swaps at both the class and property 
level (to convert non-serializable POJOs to serializable forms).
                </ul>
                <p>
-                       For example, we now add a <code>birthDate</code> 
property, and associate a transform with it to transform
+                       For example, we now add a <code>birthDate</code> 
property, and associate a swap with it to transform
                                it to an ISO8601 date-time string in GMT 
time.<br>
                        We'll also add a couple of <code>URI</code> 
properties.<br>
                        By default, <code>Calendars</code> are treated as beans 
by the framework, which is usually not how you want them serialized.<br>
-                       Using transforms, we can convert them to standardized 
string forms.
+                       Using swaps, we can convert them to standardized string 
forms.
                </p>
                <p class='bcode'>       
        <jk>public class</jk> Person {
@@ -324,7 +324,7 @@
                <jk>public</jk> URI <jf>uri</jf>;
                <jk>public</jk> URI <jf>addressBookUri</jf>;
 
-               
<ja>@BeanProperty</ja>(transform=CalendarTransform.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar <jf>birthDate</jf>;
+               
<ja>@BeanProperty</ja>(transform=CalendarSwap.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar <jf>birthDate</jf>;
 
 
                <jc>// Bean constructor (needed by parser)</jc>
@@ -487,7 +487,7 @@
                <jk>public</jk> String <jf>name</jf>;
                <jk>public</jk> URI <jf>uri</jf>;
                <jk>public</jk> URI <jf>addressBookUri</jf>;
-               
<ja>@BeanProperty</ja>(transform=CalendarTransform.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar <jf>birthDate</jf>;
+               
<ja>@BeanProperty</ja>(transform=CalendarSwap.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar <jf>birthDate</jf>;
                <jk>public</jk> LinkedList&lt;Address&gt; <jf>addresses</jf> = 
<jk>new</jk> LinkedList&lt;Address&gt;();
 
                <jc>// Bean constructor (needed by parser)</jc>
@@ -910,9 +910,9 @@
        <jc>// Get a value convertable from a String.</jc>
        URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
 
-       <jc>// Get a value using a transform.</jc>
-       CalendarTransform transform = <jk>new</jk> 
CalendarTransform.ISO8601DTZ();
-       Calendar birthDate = m.get(transform, <js>"birthDate"</js>);
+       <jc>// Get a value using a swap.</jc>
+       CalendarSwap swap = <jk>new</jk> CalendarSwap.ISO8601DTZ();
+       Calendar birthDate = m.get(swap, <js>"birthDate"</js>);
 
        <jc>// Get the addresses.</jc>
        ObjectList addresses = m.getObjectList(<js>"addresses"</js>);


Reply via email to