← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 15781: renamed Transformer => PropertyConverter, now have methods for converting both ways (will be impo...

 

------------------------------------------------------------
revno: 15781
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2014-06-20 12:55:18 +0200
message:
  renamed Transformer => PropertyConverter, now have methods for converting both ways (will be important when Nodes are also used for deserialization).
removed:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodeTransformer.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/Transformer.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/IsEmptyNodeTransformer.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/IsNotEmptyNodeTransformer.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/SizeNodeTransformer.java
added:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/AbstractNodePropertyConverter.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodePropertyConverter.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/PropertyConverter.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/IsEmptyNodePropertyConverter.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/IsNotEmptyNodePropertyConverter.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/SizeNodePropertyConverter.java
modified:
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/DefaultFieldFilterService.java
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/FieldMap.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/AbstractNodePropertyConverter.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/AbstractNodePropertyConverter.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/AbstractNodePropertyConverter.java	2014-06-20 10:55:18 +0000
@@ -0,0 +1,61 @@
+package org.hisp.dhis.node;
+
+/*
+ * Copyright (c) 2004-2014, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+import org.hisp.dhis.schema.Property;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+public abstract class AbstractNodePropertyConverter implements NodePropertyConverter
+{
+    @Override
+    public boolean canConvertTo( Property property, Object value )
+    {
+        return false;
+    }
+
+    @Override
+    public boolean canConvertFrom( Property property, Node value )
+    {
+        return false;
+    }
+
+    @Override
+    public Node convertTo( Property property, Object value )
+    {
+        throw new IllegalAccessError( "Not implemented." );
+    }
+
+    @Override
+    public Object convertFrom( Property property, Node value )
+    {
+        throw new IllegalAccessError( "Not implemented." );
+    }
+}

=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodePropertyConverter.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodePropertyConverter.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodePropertyConverter.java	2014-06-20 10:55:18 +0000
@@ -0,0 +1,36 @@
+package org.hisp.dhis.node;
+
+/*
+ * Copyright (c) 2004-2014, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+public interface NodePropertyConverter extends PropertyConverter<Object, Node>
+{
+}

=== removed file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodeTransformer.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodeTransformer.java	2014-06-19 12:20:10 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodeTransformer.java	1970-01-01 00:00:00 +0000
@@ -1,36 +0,0 @@
-package org.hisp.dhis.node;
-
-/*
- * Copyright (c) 2004-2014, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
- */
-public interface NodeTransformer extends Transformer<Node>
-{
-}

=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/PropertyConverter.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/PropertyConverter.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/PropertyConverter.java	2014-06-20 10:55:18 +0000
@@ -0,0 +1,70 @@
+package org.hisp.dhis.node;
+
+/*
+ * Copyright (c) 2004-2014, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+import org.hisp.dhis.schema.Property;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+public interface PropertyConverter<S, D>
+{
+    /**
+     * @return Public/external name of this transformer.
+     */
+    String name();
+
+    /**
+     * @param property Property instance belonging to value
+     * @param value    Actual value to transform
+     * @return true of false depending on support
+     */
+    boolean canConvertTo( Property property, S value );
+
+    /**
+     * @param property Property instance belonging to value
+     * @param value    Actual value to transform
+     * @return true of false depending on support
+     */
+    boolean canConvertFrom( Property property, D value );
+
+    /**
+     * @param property Property instance belonging to value
+     * @param value    Actual value to transform
+     * @return Value transformed to a Node
+     */
+    D convertTo( Property property, S value );
+
+    /**
+     * @param property Property instance belonging to value
+     * @param value    Actual value to transform
+     * @return Value transformed to a Node
+     */
+    S convertFrom( Property property, D value );
+}

=== removed file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/Transformer.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/Transformer.java	2014-06-19 12:20:10 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/Transformer.java	1970-01-01 00:00:00 +0000
@@ -1,60 +0,0 @@
-package org.hisp.dhis.node;
-
-/*
- * Copyright (c) 2004-2014, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-import org.hisp.dhis.schema.Property;
-
-/**
- * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
- */
-public interface Transformer<T>
-{
-    /**
-     * @return Public/external name of this transformer.
-     */
-    String name();
-
-    /**
-     * Transform value. Value can be null.
-     *
-     * @param property Property instance belonging to value
-     * @param value    Actual value to transform
-     * @return Value transformed to a Node
-     */
-    T transform( Property property, Object value );
-
-    /**
-     * Is this property/value supported by this transformer. Value can be null.
-     *
-     * @param property Property instance belonging to value
-     * @param value    Actual value to transform
-     * @return true of false depending on support
-     */
-    boolean canTransform( Property property, Object value );
-}

=== added directory 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters'
=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/IsEmptyNodePropertyConverter.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/IsEmptyNodePropertyConverter.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/IsEmptyNodePropertyConverter.java	2014-06-20 10:55:18 +0000
@@ -0,0 +1,72 @@
+package org.hisp.dhis.node.converters;
+
+/*
+ * Copyright (c) 2004-2014, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+import org.hisp.dhis.node.AbstractNodePropertyConverter;
+import org.hisp.dhis.node.Node;
+import org.hisp.dhis.node.types.SimpleNode;
+import org.hisp.dhis.schema.Property;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+
+import java.util.Collection;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@Component
+public class IsEmptyNodePropertyConverter extends AbstractNodePropertyConverter
+{
+    @Override
+    public String name()
+    {
+        return "isEmpty";
+    }
+
+    @Override
+    public boolean canConvertTo( Property property, Object value )
+    {
+        return property.isCollection() || String.class.isInstance( value );
+    }
+
+    @Override
+    public Node convertTo( Property property, Object value )
+    {
+        if ( property.isCollection() )
+        {
+            return new SimpleNode( property.getCollectionName(), ((Collection<?>) value).isEmpty(), property.isAttribute() );
+        }
+        else if ( String.class.isInstance( value ) )
+        {
+            return new SimpleNode( property.getName(), StringUtils.isEmpty( value ), property.isAttribute() );
+        }
+
+        throw new IllegalStateException( "Should never get here, this property/value is not supported by this transformer." );
+    }
+}

=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/IsNotEmptyNodePropertyConverter.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/IsNotEmptyNodePropertyConverter.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/IsNotEmptyNodePropertyConverter.java	2014-06-20 10:55:18 +0000
@@ -0,0 +1,72 @@
+package org.hisp.dhis.node.converters;
+
+/*
+ * Copyright (c) 2004-2014, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+import org.hisp.dhis.node.AbstractNodePropertyConverter;
+import org.hisp.dhis.node.Node;
+import org.hisp.dhis.node.types.SimpleNode;
+import org.hisp.dhis.schema.Property;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+
+import java.util.Collection;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@Component
+public class IsNotEmptyNodePropertyConverter extends AbstractNodePropertyConverter
+{
+    @Override
+    public String name()
+    {
+        return "isNotEmpty";
+    }
+
+    @Override
+    public boolean canConvertTo( Property property, Object value )
+    {
+        return property.isCollection() || String.class.isInstance( value );
+    }
+
+    @Override
+    public Node convertTo( Property property, Object value )
+    {
+        if ( property.isCollection() )
+        {
+            return new SimpleNode( property.getCollectionName(), !((Collection<?>) value).isEmpty(), property.isAttribute() );
+        }
+        else if ( String.class.isInstance( value ) )
+        {
+            return new SimpleNode( property.getName(), !StringUtils.isEmpty( value ), property.isAttribute() );
+        }
+
+        throw new IllegalStateException( "Should never get here, this property/value is not supported by this transformer." );
+    }
+}

=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/SizeNodePropertyConverter.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/SizeNodePropertyConverter.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/converters/SizeNodePropertyConverter.java	2014-06-20 10:55:18 +0000
@@ -0,0 +1,71 @@
+package org.hisp.dhis.node.converters;
+
+/*
+ * Copyright (c) 2004-2014, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+import org.hisp.dhis.node.AbstractNodePropertyConverter;
+import org.hisp.dhis.node.Node;
+import org.hisp.dhis.node.types.SimpleNode;
+import org.hisp.dhis.schema.Property;
+import org.springframework.stereotype.Component;
+
+import java.util.Collection;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@Component
+public class SizeNodePropertyConverter extends AbstractNodePropertyConverter
+{
+    @Override
+    public String name()
+    {
+        return "size";
+    }
+
+    @Override
+    public boolean canConvertTo( Property property, Object value )
+    {
+        return property.isCollection() || String.class.isInstance( value );
+    }
+
+    @Override
+    public Node convertTo( Property property, Object value )
+    {
+        if ( property.isCollection() )
+        {
+            return new SimpleNode( property.getCollectionName(), ((Collection<?>) value).size(), property.isAttribute() );
+        }
+        else if ( String.class.isInstance( value ) )
+        {
+            return new SimpleNode( property.getName(), ((String) value).length(), property.isAttribute() );
+        }
+
+        throw new IllegalStateException( "Should never get here, this property/value is not supported by this transformer." );
+    }
+}

=== removed directory 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers'
=== removed file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/IsEmptyNodeTransformer.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/IsEmptyNodeTransformer.java	2014-06-19 14:44:28 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/IsEmptyNodeTransformer.java	1970-01-01 00:00:00 +0000
@@ -1,72 +0,0 @@
-package org.hisp.dhis.node.transformers;
-
-/*
- * Copyright (c) 2004-2014, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-import org.hisp.dhis.node.Node;
-import org.hisp.dhis.node.NodeTransformer;
-import org.hisp.dhis.node.types.SimpleNode;
-import org.hisp.dhis.schema.Property;
-import org.springframework.stereotype.Component;
-import org.springframework.util.StringUtils;
-
-import java.util.Collection;
-
-/**
- * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
- */
-@Component
-public class IsEmptyNodeTransformer implements NodeTransformer
-{
-    @Override
-    public String name()
-    {
-        return "isEmpty";
-    }
-
-    @Override
-    public Node transform( Property property, Object value )
-    {
-        if ( property.isCollection() )
-        {
-            return new SimpleNode( property.getCollectionName(), ((Collection<?>) value).isEmpty(), property.isAttribute() );
-        }
-        else if ( String.class.isInstance( value ) )
-        {
-            return new SimpleNode( property.getName(), StringUtils.isEmpty( value ), property.isAttribute() );
-        }
-
-        throw new IllegalStateException( "Should never get here, this property/value is not supported by this transformer." );
-    }
-
-    @Override
-    public boolean canTransform( Property property, Object value )
-    {
-        return property.isCollection() || String.class.isInstance( value );
-    }
-}

=== removed file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/IsNotEmptyNodeTransformer.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/IsNotEmptyNodeTransformer.java	2014-06-19 14:44:28 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/IsNotEmptyNodeTransformer.java	1970-01-01 00:00:00 +0000
@@ -1,72 +0,0 @@
-package org.hisp.dhis.node.transformers;
-
-/*
- * Copyright (c) 2004-2014, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-import org.hisp.dhis.node.Node;
-import org.hisp.dhis.node.NodeTransformer;
-import org.hisp.dhis.node.types.SimpleNode;
-import org.hisp.dhis.schema.Property;
-import org.springframework.stereotype.Component;
-import org.springframework.util.StringUtils;
-
-import java.util.Collection;
-
-/**
- * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
- */
-@Component
-public class IsNotEmptyNodeTransformer implements NodeTransformer
-{
-    @Override
-    public String name()
-    {
-        return "isNotEmpty";
-    }
-
-    @Override
-    public Node transform( Property property, Object value )
-    {
-        if ( property.isCollection() )
-        {
-            return new SimpleNode( property.getCollectionName(), !((Collection<?>) value).isEmpty(), property.isAttribute() );
-        }
-        else if ( String.class.isInstance( value ) )
-        {
-            return new SimpleNode( property.getName(), !StringUtils.isEmpty( value ), property.isAttribute() );
-        }
-
-        throw new IllegalStateException( "Should never get here, this property/value is not supported by this transformer." );
-    }
-
-    @Override
-    public boolean canTransform( Property property, Object value )
-    {
-        return property.isCollection() || String.class.isInstance( value );
-    }
-}

=== removed file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/SizeNodeTransformer.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/SizeNodeTransformer.java	2014-06-19 12:20:10 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/transformers/SizeNodeTransformer.java	1970-01-01 00:00:00 +0000
@@ -1,71 +0,0 @@
-package org.hisp.dhis.node.transformers;
-
-/*
- * Copyright (c) 2004-2014, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-import org.hisp.dhis.node.Node;
-import org.hisp.dhis.node.NodeTransformer;
-import org.hisp.dhis.node.types.SimpleNode;
-import org.hisp.dhis.schema.Property;
-import org.springframework.stereotype.Component;
-
-import java.util.Collection;
-
-/**
- * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
- */
-@Component
-public class SizeNodeTransformer implements NodeTransformer
-{
-    @Override
-    public String name()
-    {
-        return "size";
-    }
-
-    @Override
-    public Node transform( Property property, Object value )
-    {
-        if ( property.isCollection() )
-        {
-            return new SimpleNode( property.getCollectionName(), ((Collection<?>) value).size(), property.isAttribute() );
-        }
-        else if ( String.class.isInstance( value ) )
-        {
-            return new SimpleNode( property.getName(), ((String) value).length(), property.isAttribute() );
-        }
-
-        throw new IllegalStateException( "Should never get here, this property/value is not supported by this transformer." );
-    }
-
-    @Override
-    public boolean canTransform( Property property, Object value )
-    {
-        return property.isCollection() || String.class.isInstance( value );
-    }
-}

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/DefaultFieldFilterService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/DefaultFieldFilterService.java	2014-06-20 09:10:42 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/DefaultFieldFilterService.java	2014-06-20 10:55:18 +0000
@@ -34,7 +34,7 @@
 import com.google.common.collect.Sets;
 import org.hisp.dhis.common.IdentifiableObject;
 import org.hisp.dhis.common.PresetProvider;
-import org.hisp.dhis.node.NodeTransformer;
+import org.hisp.dhis.node.NodePropertyConverter;
 import org.hisp.dhis.node.types.CollectionNode;
 import org.hisp.dhis.node.types.ComplexNode;
 import org.hisp.dhis.node.types.SimpleNode;
@@ -64,11 +64,11 @@
     private Set<PresetProvider> presetProviders = Sets.newHashSet();
 
     @Autowired(required = false)
-    private Set<NodeTransformer> nodeTransformers = Sets.newHashSet();
+    private Set<NodePropertyConverter> nodePropertyConverters = Sets.newHashSet();
 
     private ImmutableMap<String, PresetProvider> presets = ImmutableMap.of();
 
-    private ImmutableMap<String, NodeTransformer> transformers = ImmutableMap.of();
+    private ImmutableMap<String, NodePropertyConverter> converters = ImmutableMap.of();
 
     @PostConstruct
     public void init()
@@ -82,14 +82,14 @@
 
         presets = presetBuilder.build();
 
-        ImmutableMap.Builder<String, NodeTransformer> transformerBuilder = ImmutableMap.builder();
+        ImmutableMap.Builder<String, NodePropertyConverter> converterBuilder = ImmutableMap.builder();
 
-        for ( NodeTransformer transformer : nodeTransformers )
+        for ( NodePropertyConverter converter : nodePropertyConverters )
         {
-            transformerBuilder.put( transformer.name(), transformer );
+            converterBuilder.put( converter.name(), converter );
         }
 
-        transformers = transformerBuilder.build();
+        converters = converterBuilder.build();
     }
 
     @Override
@@ -168,13 +168,13 @@
                 updateFields( fieldValue, property.getKlass() );
             }
 
-            if ( fieldValue.haveNodeTransformer() )
+            if ( fieldValue.haveNodePropertyConverter() )
             {
-                NodeTransformer transformer = fieldValue.getNodeTransformer();
+                NodePropertyConverter converter = fieldValue.getNodePropertyConverter();
 
-                if ( transformer.canTransform( property, returnValue ) )
+                if ( converter.canConvertTo( property, returnValue ) )
                 {
-                    complexNode.addChild( transformer.transform( property, returnValue ) );
+                    complexNode.addChild( converter.convertTo( property, returnValue ) );
                 }
 
             }
@@ -330,9 +330,9 @@
                 {
                     FieldMap value = new FieldMap();
 
-                    if ( transformers.containsKey( split[1] ) )
+                    if ( converters.containsKey( split[1] ) )
                     {
-                        value.setNodeTransformer( transformers.get( split[1] ) );
+                        value.setNodePropertyConverter( converters.get( split[1] ) );
                         fieldMap.put( split[0], value );
                     }
                 }

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/FieldMap.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/FieldMap.java	2014-06-19 12:20:10 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/FieldMap.java	2014-06-20 10:55:18 +0000
@@ -31,7 +31,7 @@
 import com.google.common.base.Objects;
 import com.google.common.collect.ForwardingMap;
 import com.google.common.collect.Maps;
-import org.hisp.dhis.node.NodeTransformer;
+import org.hisp.dhis.node.NodePropertyConverter;
 
 import java.util.Map;
 
@@ -42,7 +42,7 @@
 {
     private final Map<String, FieldMap> delegate = Maps.newHashMap();
 
-    private NodeTransformer nodeTransformer;
+    private NodePropertyConverter nodePropertyConverter;
 
     @Override
     protected Map<String, FieldMap> delegate()
@@ -50,19 +50,19 @@
         return delegate;
     }
 
-    public NodeTransformer getNodeTransformer()
-    {
-        return nodeTransformer;
-    }
-
-    public void setNodeTransformer( NodeTransformer nodeTransformer )
-    {
-        this.nodeTransformer = nodeTransformer;
-    }
-
-    public boolean haveNodeTransformer()
-    {
-        return nodeTransformer != null;
+    public NodePropertyConverter getNodePropertyConverter()
+    {
+        return nodePropertyConverter;
+    }
+
+    public void setNodePropertyConverter( NodePropertyConverter nodePropertyConverter )
+    {
+        this.nodePropertyConverter = nodePropertyConverter;
+    }
+
+    public boolean haveNodePropertyConverter()
+    {
+        return nodePropertyConverter != null;
     }
 
     @Override
@@ -70,7 +70,7 @@
     {
         return Objects.toStringHelper( this )
             .add( "map", standardToString() )
-            .add( "nodeTransformer", nodeTransformer )
+            .add( "nodePropertyConverter", nodePropertyConverter )
             .toString();
     }
 }