Repository: johnzon
Updated Branches:
  refs/heads/master 4ed03a977 -> 0e418b490


JOHNZON-102 cleaning CompositeDecoratedType usage to avoid coding errors


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

Branch: refs/heads/master
Commit: 0e418b490f4252a82c4dd58d376c5af8dbd68126
Parents: 4ed03a9
Author: rmannibucau <[email protected]>
Authored: Fri Jan 27 18:58:53 2017 +0100
Committer: rmannibucau <[email protected]>
Committed: Fri Jan 27 18:58:53 2017 +0100

----------------------------------------------------------------------
 .../mapper/access/FieldAndMethodAccessMode.java | 36 ++++++++------------
 1 file changed, 15 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/johnzon/blob/0e418b49/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessMode.java
----------------------------------------------------------------------
diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessMode.java
 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessMode.java
index 607bf2d..c61ead7 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessMode.java
+++ 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessMode.java
@@ -184,14 +184,14 @@ public class FieldAndMethodAccessMode extends 
BaseAccessMode {
     private Class<?> toType(final Type type) {
         return Class.class.isInstance(type) ? Class.class.cast(type) :
                 (ParameterizedType.class.isInstance(type) ? 
toType(ParameterizedType.class.cast(type).getRawType()) :
-                Object.class /*fallback*/);
+                        Object.class /*fallback*/);
     }
 
-    public static abstract class CompositeDecoratedType implements 
DecoratedType {
-        protected final DecoratedType type1;
-        private final DecoratedType type2;
+    public static abstract class CompositeDecoratedType<T extends 
DecoratedType> implements DecoratedType {
+        protected final T type1;
+        protected final T type2;
 
-        private CompositeDecoratedType(final DecoratedType type1, final 
DecoratedType type2) {
+        private CompositeDecoratedType(final T type1, final T type2) {
             this.type1 = type1;
             this.type2 = type2;
         }
@@ -233,43 +233,37 @@ public class FieldAndMethodAccessMode extends 
BaseAccessMode {
         }
     }
 
-    public static final class CompositeReader extends CompositeDecoratedType 
implements Reader {
-        private final Reader reader;
-
-        private CompositeReader(final Reader type1, final DecoratedType type2) 
{
+    public static final class CompositeReader extends 
CompositeDecoratedType<Reader> implements Reader {
+        private CompositeReader(final Reader type1, final Reader type2) {
             super(type1, type2);
-            reader = type1;
         }
 
         @Override
         public Object read(final Object instance) {
-            return reader.read(instance);
+            return type1.read(instance);
         }
 
         @Override
         public ObjectConverter.Writer<?> findObjectConverterWriter() {
-            final ObjectConverter.Writer<?> objectConverter = 
Reader.class.cast(type1).findObjectConverterWriter();
-            return objectConverter == null ? 
reader.findObjectConverterWriter() : objectConverter;
+            final ObjectConverter.Writer<?> objectConverter = 
type2.findObjectConverterWriter();
+            return objectConverter == null ? type1.findObjectConverterWriter() 
: objectConverter;
         }
     }
 
-    public static final class CompositeWriter extends CompositeDecoratedType 
implements Writer {
-        private final Writer writer;
-
-        private CompositeWriter(final Writer type1, final DecoratedType type2) 
{
+    public static final class CompositeWriter extends 
CompositeDecoratedType<Writer> implements Writer {
+        private CompositeWriter(final Writer type1, final Writer type2) {
             super(type1, type2);
-            writer = type1;
         }
 
         @Override
         public void write(final Object instance, final Object value) {
-            writer.write(instance, value);
+            type1.write(instance, value);
         }
 
         @Override
         public ObjectConverter.Reader<?> findObjectConverterReader() {
-            final ObjectConverter.Reader<?> objectConverter = 
Writer.class.cast(type1).findObjectConverterReader();
-            return objectConverter == null ? 
writer.findObjectConverterReader() : objectConverter;
+            final ObjectConverter.Reader<?> objectConverter = 
type2.findObjectConverterReader();
+            return objectConverter == null ? type1.findObjectConverterReader() 
: objectConverter;
         }
     }
 }

Reply via email to