Ignore:
Timestamp:
06/22/13 21:51:33 (11 years ago)
Author:
psniegowski
Message:

HIGHLIGHTS:

  • simplification of entities management model
  • cleanup around params (improve hierarchy)
  • migrate from JUnit to TestNG
  • introduce FEST to automatically test GUI
  • improve slider control
  • loosen synchronization between gui tree and backend representation
  • and many other bug fixes

NOTICE:

  • a great many of lines is changed only because of substituting spaces with tabs

CHANGELOG (oldest changes at the bottom):

Some cleaning after fix found.

Fix bug with tree.

More changes with TreeNodes?.

Finally fix issue with tree.

Improve gui tree management.

Decouple update of values from fetch request in gui.

Minor changes.

Minor changes.

Minor change.

Change Path construction wording.

More fixes to SliderControl?.

Fix SliderControl?.

Fix SliderControl?.

Minor improvement.

Several changes.

Make NumberParam? a generic class.

Add robot to the gui test.

Setup common testing logging configuration.

Remove Parameters class.

Remove entityOwner from Parameters.

Move name out from Parameters class.

Move configuration to after the construction.

Simplify observers and endpoints.

Remove superfluous configureEntity overrides.

Add dependency on fest-swing-testng.

Use FEST for final print test.

Use FEST for more concise and readable assertions.

Divide test of F0Parser into multiple methods.

Migrate to TestNG

Minor change.

Change convention from LOGGER to log.

Fix reporting of errors during controls filling.

Bound maximal height of SliderControl?.

Minor improvements.

Improve tooltips for controls.

Also use Delimeted in more places.

Move static control utilities to Gui.

Rename package gui.components to controls.

Some cleaning in controls.

Improve Param classes placing.

Move ValueParam?, PrimitiveParam? and CompositeParam? one package up.

Improve ParamBuilder?.

Move getDef to ValueParam? and PrimitiveParam?.

Move getMax and getDef to ValueParam?.

Move getMin to ValueParam?.

Upgrade to laters apache commons versions.

Use filterInstanceof extensively.

Add instanceof filters.

Make ValueParam? in many places of Param.

Place assertions about ValueParam?.

Add ValueParam?

Rename ValueParam? to PrimitiveParam?

Minor changes.

Several improvements to params types.

Add NumberParam?.

Add TextControl? component.

Add .swp files to .gitignore

Greatly improved slider component.

Some improvements.

Make Param.reassign return also a state.

Add IterableIterator?.

Several changes.

  • Move util classes to better packages.
  • Remove warnings from eclim.

Several improvements.

Fix bug with BooleanParam?.

Some experiments with visualization.

Another fix to panel management.

Improve panel management.

Some refactorization around panels.

Add root class for panel.

Location:
java/main
Files:
1 added
2 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • java/main

    • Property svn:ignore set to
      target
  • java/main/src/main/java/com/framsticks/params/types/ArrayListParam.java

    r77 r84  
    44import com.framsticks.params.ArrayListAccess;
    55import com.framsticks.params.CastFailure;
    6 import com.framsticks.util.Casting;
    7 import com.framsticks.util.Containers;
    8 import com.framsticks.util.Numbers;
     6import com.framsticks.params.ReassignResult;
     7import com.framsticks.util.lang.Casting;
     8import com.framsticks.util.lang.Containers;
     9import com.framsticks.util.lang.Numbers;
    910
    1011import java.util.ArrayList;
     
    1617public class ArrayListParam extends ListParam {
    1718
    18     public ArrayListParam(String containedTypeName) {
    19         super(containedTypeName);
    20     }
     19        public ArrayListParam(String containedTypeName) {
     20                super(containedTypeName);
     21        }
    2122
    2223
    23     @Override
    24     public Class getStorageType() {
    25         return List.class;
    26     }
     24        @Override
     25        public Class<?> getStorageType() {
     26                return List.class;
     27        }
    2728
    28     @Override
    29     public AccessInterface prepareAccessInterface(AccessInterface access) {
    30         return new ArrayListAccess(access);
    31     }
     29        @Override
     30        public AccessInterface prepareAccessInterface(AccessInterface access) {
     31                return new ArrayListAccess(access);
     32        }
    3233
    33     @Override
    34     public String computeAccessId() {
    35         return "l " + containedTypeName;
    36     }
     34        @Override
     35        public String computeAccessId() {
     36                return "l " + containedTypeName;
     37        }
    3738
    38     @Override
    39     public Object reassign(Object newValue, Object oldValue) throws CastFailure {
    40         if (newValue == null) {
    41             throw new CastFailure();
    42         }
    43         Integer size = Numbers.cast(newValue, Integer.class);
    44         if (size != null) {
    45             //return oldValue;
    46             List list;
    47             if (oldValue == null) {
    48                 list = new ArrayList();
    49             } else {
    50                 list = Casting.tryCast(List.class, oldValue);
    51                 if (list == null) {
    52                     throw new CastFailure();
    53                 }
    54             }
    55             Containers.resizeList(list, size);
    56             return list;
    57         }
    58         if (oldValue != null) {
    59             return oldValue;
    60         }
    61         return newValue;
    62     }
     39        @Override
     40        public ReassignResult<List<?>> reassign(Object newValue, Object oldValue) throws CastFailure {
     41                if (newValue == null) {
     42                        throw new CastFailure();
     43                }
     44                Integer size = Numbers.cast(newValue, Integer.class);
     45                if (size != null) {
     46                        //return oldValue;
     47                        List<?> list;
     48                        if (oldValue == null) {
     49                                list = new ArrayList<Object>();
     50                        } else {
     51                                list = Casting.tryCast(List.class, oldValue);
     52                                if (list == null) {
     53                                        throw new CastFailure();
     54                                }
     55                        }
     56                        Containers.resizeList(list, size);
     57                        return new ReassignResult<List<?>>(list);
     58                }
     59                if (oldValue != null) {
     60                        return new ReassignResult<List<?>>(Casting.throwCast(List.class, oldValue));
     61                }
     62                return new ReassignResult<List<?>>(Casting.throwCast(List.class, newValue));
     63        }
    6364
    64     @Override
    65     public String getType() {
    66         return "l " + getContainedTypeName();
    67     }
     65        @Override
     66        public String getFramsTypeName() {
     67                return "l " + getContainedTypeName();
     68        }
    6869}
  • java/main/src/main/java/com/framsticks/params/types/BinaryParam.java

    r77 r84  
    22
    33import com.framsticks.params.CastFailure;
    4 import com.framsticks.util.Numbers;
     4import com.framsticks.params.PrimitiveParam;
     5import com.framsticks.params.ReassignResult;
     6import com.framsticks.util.lang.Numbers;
    57
    68/**
    79 * @author Piotr Sniegowski
    810 */
    9 public class BinaryParam extends ValueParam {
     11public class BinaryParam extends PrimitiveParam {
     12
    1013        @Override
    11         public Class getStorageType() {
     14        public Class<?> getStorageType() {
    1215                return Integer.class;
    1316        }
    1417
    15     @Override
    16     public String getType() {
    17         return "db";
    18     }
     18        @Override
     19        public String getFramsTypeName() {
     20                return "db";
     21        }
    1922
    20     @Override
    21     public Object reassign(Object newValue, Object oldValue) throws CastFailure {
    22         if (newValue instanceof String) {
    23             Integer v = Numbers.parse((String) newValue, Integer.class);
    24             if (v != null) {
    25                 return v;
    26             }
    27             throw new CastFailure();
    28         }
    29         return super.reassign(newValue, oldValue);
    30     }
     23        @Override
     24        public ReassignResult<?> reassign(Object newValue, Object oldValue) throws CastFailure {
     25                if (newValue instanceof String) {
     26                        Integer v = Numbers.parse((String) newValue, Integer.class);
     27                        if (v != null) {
     28                                return ReassignResult.create(v);
     29                        }
     30                        throw new CastFailure();
     31                }
     32                if (newValue instanceof Integer) {
     33                        return ReassignResult.create((Integer) newValue);
     34                }
     35                throw new CastFailure();
     36        }
    3137
    3238}
  • java/main/src/main/java/com/framsticks/params/types/BooleanParam.java

    r77 r84  
    22
    33import com.framsticks.params.CastFailure;
     4import com.framsticks.params.PrimitiveParam;
     5import com.framsticks.params.ReassignResult;
    46import com.framsticks.params.SinkInterface;
     7import com.framsticks.util.lang.Numbers;
    58
    69/**
    710 * @author Piotr Sniegowski
    811 */
    9 public class BooleanParam extends DecimalParam {
    10     @Override
    11     public Class getStorageType() {
    12         return Boolean.class;
    13     }
     12public class BooleanParam extends PrimitiveParam {
    1413
    15     @Override
    16     public Object reassign(Object newValue, Object oldValue) throws CastFailure {
     14        public BooleanParam() {
     15                def = false;
     16        }
     17
     18        @Override
     19        public Class<?> getStorageType() {
     20                return Boolean.class;
     21        }
     22
     23        @Override
     24        public ReassignResult<Boolean> reassign(Object newValue, Object oldValue) throws CastFailure {
    1725                if (newValue instanceof Boolean) {
    18                         return newValue;
     26                        return ReassignResult.create((Boolean) newValue);
    1927                }
    20         Object casted = super.reassign(newValue, oldValue);
    21         if (casted instanceof Integer) {
    22             Integer i = (Integer)casted;
    23             if (i == 0) return false;
    24             if (i == 1) return true;
    25             throw new CastFailure();
    26         }
    27         /*
    28         if (newValue instanceof String) {
    29             if (newValue.equals("true")) return true;
    30             if (newValue.equals("false")) return false;
    31             throw new CastFailure();
    32         }
    33         */
    34         throw new CastFailure();
    35     }
     28                if (newValue instanceof Integer) {
     29                        return ReassignResult.create(((Integer) newValue) != 0);
     30                }
     31                if (newValue instanceof String) {
     32                        if ("true".equals(newValue)) {
     33                                return ReassignResult.create(true);
     34                        }
     35                        if ("false".equals(newValue)) {
     36                                return ReassignResult.create(false);
     37                        }
     38                        Integer i = Numbers.cast(newValue, Integer.class);
     39                        if (i != null) {
     40                                return ReassignResult.create(i != 0);
     41                        }
     42                        throw new CastFailure();
     43                }
     44                throw new CastFailure();
     45        }
    3646
    37     @Override
    38     public String getType() {
    39         return "d 0 1";
    40     }
     47        @Override
     48        public String getFramsTypeName() {
     49                return "d 0 1";
     50        }
    4151
    42     @Override
    43     public void save(SinkInterface sink, Object value) {
    44         assert value instanceof Boolean;
    45         sink.print(((Boolean)value) ? "1" : "0");
    46     }
     52        @Override
     53        public void save(SinkInterface sink, Object value) {
     54                assert value instanceof Boolean;
     55                sink.print(((Boolean)value) ? "1" : "0");
     56        }
    4757}
  • java/main/src/main/java/com/framsticks/params/types/ColorParam.java

    r77 r84  
    11package com.framsticks.params.types;
     2
     3import com.framsticks.params.CastFailure;
     4import com.framsticks.params.PrimitiveParam;
     5import com.framsticks.params.ReassignResult;
    26
    37/**
    48 * @author Piotr Sniegowski
    59 */
    6 public class ColorParam extends ValueParam {
     10public class ColorParam extends PrimitiveParam {
    711
    812        @Override
    9         public Class getStorageType() {
    10                 return Void.class;
     13        public Class<?> getStorageType() {
     14                return Object.class;
    1115        }
    1216
    13     @Override
    14     public String getType() {
    15         return "dc";
    16     }
     17        @Override
     18        public String getFramsTypeName() {
     19                return "dc";
     20        }
    1721
     22        public ReassignResult<Object> reassign(Object newValue, Object oldValue) throws CastFailure {
     23                return ReassignResult.create(newValue);
     24        }
    1825
    1926
  • java/main/src/main/java/com/framsticks/params/types/DecimalParam.java

    r77 r84  
    22
    33import com.framsticks.params.CastFailure;
    4 import com.framsticks.util.Numbers;
     4import com.framsticks.params.ReassignResult;
    55
    66/**
    77 * @author Piotr Sniegowski
    88 */
    9 public class DecimalParam extends ValueParam {
     9public class DecimalParam extends NumberParam<Integer> {
    1010
    11         @Override
    12         public boolean isNumeric() {
    13                 return true;
     11        public DecimalParam() {
     12                def = 0;
    1413        }
    1514
    1615        @Override
    17         public Class getStorageType() {
     16        public Class<?> getStorageType() {
    1817                return Integer.class;
    1918        }
    2019
     20        @Override
     21        public ReassignResult<Integer> reassign(Object newValue, Object oldValue) throws CastFailure {
     22                return reassignNumber(newValue, oldValue, Integer.class);
     23        }
    2124
    22 
    23     @Override
    24     public Object reassign(Object newValue, Object oldValue) throws CastFailure {
    25         if (newValue instanceof String) {
    26             Integer v = Numbers.parse((String)newValue, Integer.class);
    27             if (v != null) {
    28                 return v;
    29             }
    30             throw new CastFailure();
    31         }
    32         return super.reassign(newValue, oldValue);
    33     }
    34 
    35     @Override
    36     public String getType() {
    37         return "d";
    38     }
     25        @Override
     26        public String getFramsTypeName() {
     27                return "d";
     28        }
    3929
    4030
  • java/main/src/main/java/com/framsticks/params/types/EnumParam.java

    r77 r84  
    11package com.framsticks.params.types;
    22
    3 import java.util.ArrayList;
    43import java.util.List;
    54
     
    98public class EnumParam extends DecimalParam {
    109
    11         ArrayList<String> enums;
     10        List<String> enums;
    1211
    1312        /**
     
    1615         * @param enums
    1716         */
    18         public EnumParam(ArrayList<String> enums) {
     17        public EnumParam(List<String> enums) {
    1918                assert(enums != null);
    2019                this.enums = enums;
  • java/main/src/main/java/com/framsticks/params/types/EventParam.java

    r77 r84  
    77 */
    88public class EventParam extends Param {
     9
    910        @Override
    10         public Class getStorageType() {
     11        public Class<?> getStorageType() {
    1112                return Void.class;
    1213        }
    1314
    14     @Override
    15     public String getType() {
    16         return "e";
    17     }
    18 
    19 
    20 
     15        @Override
     16        public String getFramsTypeName() {
     17                return "e";
     18        }
    2119}
  • java/main/src/main/java/com/framsticks/params/types/FloatParam.java

    r77 r84  
    22
    33import com.framsticks.params.CastFailure;
    4 import com.framsticks.util.Numbers;
     4import com.framsticks.params.ReassignResult;
    55
    66/**
    77 * @author Piotr Sniegowski
    88 */
    9 public class FloatParam extends ValueParam {
     9public class FloatParam extends NumberParam<Double> {
     10
     11        public FloatParam() {
     12                def = 0.0;
     13        }
     14
    1015        @Override
    11         public boolean isNumeric() {
    12                 return true;
    13         }
    14         @Override
    15         public Class getStorageType() {
     16        public Class<?> getStorageType() {
    1617                return Double.class;
    1718        }
    1819
    1920        @Override
    20     public Object reassign(Object newValue, Object oldValue) throws CastFailure {
    21         if (newValue instanceof String) {
    22                     Double v = Numbers.parse((String)newValue, Double.class);
    23             if (v != null) {
    24                 return v;
    25             }
    26             throw new CastFailure();
    27         }
    28         return super.reassign(newValue, oldValue);
     21        public ReassignResult<Double> reassign(Object newValue, Object oldValue) throws CastFailure {
     22                return reassignNumber(newValue, oldValue, Double.class);
    2923        }
    3024
    31     @Override
    32     public String getType() {
    33         return "f";
    34     }
     25        @Override
     26        public String getFramsTypeName() {
     27                return "f";
     28        }
    3529
    3630
  • java/main/src/main/java/com/framsticks/params/types/ListParam.java

    r77 r84  
    11package com.framsticks.params.types;
    22
    3 import com.framsticks.params.CastFailure;
    4 import com.framsticks.util.Casting;
    5 import com.framsticks.util.Containers;
    6 import com.framsticks.util.Numbers;
    7 
    8 import java.util.List;
     3import com.framsticks.params.CompositeParam;
    94
    105/**
     
    1712        }
    1813
    19 
    20 
    21 
    22 
    23 
    2414}
  • java/main/src/main/java/com/framsticks/params/types/ObjectParam.java

    r77 r84  
    33import com.framsticks.params.AccessInterface;
    44import com.framsticks.params.CastFailure;
     5import com.framsticks.params.CompositeParam;
     6import com.framsticks.params.ReassignResult;
    57
    68/**
     
    1315        }
    1416
    15     @Override
    16     public String computeAccessId() {
    17         return containedTypeName;
    18     }
     17        @Override
     18        public String computeAccessId() {
     19                return containedTypeName;
     20        }
    1921
    20     @Override
    21         public Class getStorageType() {
     22        @Override
     23        public Class<?> getStorageType() {
    2224                return Object.class;
    2325        }
    2426
    2527        @Override
    26         public boolean isEmptyAvailable() {
    27                 return true;
     28        public ReassignResult<Object> reassign(Object newValue, Object oldValue) throws CastFailure {
     29                return ReassignResult.create(newValue);
    2830        }
    2931
    3032        @Override
    31         public Object reassign(Object newValue, Object oldValue) throws CastFailure {
    32                 return newValue;
     33        public AccessInterface prepareAccessInterface(AccessInterface access) {
     34                return access;
    3335        }
    3436
    35     @Override
    36     public AccessInterface prepareAccessInterface(AccessInterface access) {
    37         return access;
    38     }
    39 
    40     @Override
    41     public String getType() {
    42         return "o " + containedTypeName;
    43     }
    44 
    45 
    46 
     37        @Override
     38        public String getFramsTypeName() {
     39                return "o " + containedTypeName;
     40        }
    4741
    4842}
  • java/main/src/main/java/com/framsticks/params/types/ProcedureParam.java

    r77 r84  
    11package com.framsticks.params.types;
    22
    3 import com.framsticks.params.CastFailure;
    4 import com.framsticks.params.FramsClass;
    53import com.framsticks.params.Param;
    64import com.framsticks.params.ParamBuilder;
    7 import com.framsticks.util.Strings;
     5import com.framsticks.util.lang.Strings;
    86
    97import java.util.ArrayList;
     
    5856
    5957        @Override
    60         public Class getStorageType() {
     58        public Class<?> getStorageType() {
    6159                return Void.class;
    6260        }
     
    7068        }
    7169
    72     @Override
    73     public Object reassign(Object newValue, Object oldValue) throws CastFailure {
    74         throw new CastFailure();
    75     }
    76 
    77     @Override
    78     public String getType() {
    79         return "p";
    80     }
     70        @Override
     71        public String getFramsTypeName() {
     72                return "p";
     73        }
    8174
    8275}
  • java/main/src/main/java/com/framsticks/params/types/StringParam.java

    r77 r84  
    22
    33import com.framsticks.params.CastFailure;
     4import com.framsticks.params.PrimitiveParam;
     5import com.framsticks.params.ReassignResult;
    46import com.framsticks.params.SinkInterface;
    57
     
    79 * @author Piotr Sniegowski
    810 */
    9 public class StringParam extends ValueParam {
     11public class StringParam extends PrimitiveParam {
    1012        @Override
    11         public Class getStorageType() {
     13        public Class<?> getStorageType() {
    1214                return String.class;
    1315        }
    1416
    1517        @Override
    16         public boolean isEmptyAvailable() {
    17                 return true;
     18        public ReassignResult<String> reassign(Object newValue, Object oldValue) throws CastFailure {
     19                if (newValue == null) {
     20                        return new ReassignResult<String>(null);
     21                }
     22                if (newValue instanceof String) {
     23                        return ReassignResult.create((String) newValue);
     24                }
     25                return ReassignResult.create(newValue.toString());
     26                // return super.reassign(newValue, oldValue);
    1827        }
    1928
    20     @Override
    21     public Object reassign(Object newValue, Object oldValue) throws CastFailure {
    22         if (newValue instanceof String) {
    23             return (String)newValue;
    24         }
    25         return super.reassign(newValue, oldValue);
    26     }
     29        @Override
     30        public String getFramsTypeName() {
     31                return "s";
     32        }
    2733
    28     @Override
    29     public String getType() {
    30         return "s";
    31     }
     34        private static final String SEPARATOR = System.getProperty("line.separator");
    3235
    33     private static final String SEPARATOR = System.getProperty("line.separator");
    34 
    35     @Override
    36     public void save(SinkInterface sink, Object value) {
    37         assert value instanceof String;
    38         String s = (String)value;
    39         sink.print((s.contains(SEPARATOR) ? (s = "~" + SEPARATOR + s + "~") : s));
    40     }
     36        @Override
     37        public void save(SinkInterface sink, Object value) {
     38                assert value instanceof String;
     39                String s = (String)value;
     40                sink.print((s.contains(SEPARATOR) ? (s = "~" + SEPARATOR + s + "~") : s));
     41        }
    4142}
  • java/main/src/main/java/com/framsticks/params/types/UniqueListParam.java

    r77 r84  
    33import com.framsticks.params.AccessInterface;
    44import com.framsticks.params.CastFailure;
     5import com.framsticks.params.ReassignResult;
    56import com.framsticks.params.UniqueListAccess;
    6 import com.framsticks.util.Numbers;
     7import com.framsticks.util.lang.Numbers;
    78
    89import java.util.HashMap;
    9 import java.util.List;
    1010import java.util.Map;
    1111
     
    1515public class UniqueListParam extends ListParam {
    1616
    17     final String uidName;
     17        final String uidName;
    1818
    19     public UniqueListParam(String containedTypeName, String uidName) {
    20         super(containedTypeName);
    21         this.uidName = uidName;
    22     }
     19        public UniqueListParam(String containedTypeName, String uidName) {
     20                super(containedTypeName);
     21                this.uidName = uidName;
     22        }
    2323
    24     @Override
    25     public String computeAccessId() {
    26         return "l " + containedTypeName + " " + uidName;
    27     }
     24        @Override
     25        public String computeAccessId() {
     26                return "l " + containedTypeName + " " + uidName;
     27        }
    2828
    2929
    30     @Override
    31     public Class getStorageType() {
    32         return Map.class;
    33     }
     30        @Override
     31        public Class<?> getStorageType() {
     32                return Map.class;
     33        }
    3434
    35     @Override
    36     public AccessInterface prepareAccessInterface(AccessInterface access) {
    37         return new UniqueListAccess(access, uidName);
    38     }
     35        @Override
     36        public AccessInterface prepareAccessInterface(AccessInterface access) {
     37                return new UniqueListAccess(access, uidName);
     38        }
    3939
     40        @Override
     41        public ReassignResult<? extends Map<?,?>> reassign(Object newValue, Object oldValue) throws CastFailure {
     42                if (newValue instanceof Map) {
     43                        return new ReassignResult<Map<?,?>>((Map<?,?>) newValue);
     44                }
     45                Integer size = Numbers.cast(newValue, Integer.class);
     46                if (size != null) {
     47                        //return oldValue;
     48                        /*
     49                        the integer value should be ignored, because this may cause, that object is created before
     50                        information about it's elements is available, which would break resolution flow
     51                        */
     52                        if (oldValue != null) {
     53                                return new ReassignResult<Map<?,?>>((Map<?,?>) oldValue);
     54                        }
     55                        return ReassignResult.create(new HashMap<Object, Object>());
     56                }
    4057
    41     @Override
    42     public Object reassign(Object newValue, Object oldValue) throws CastFailure {
    43         if (newValue instanceof Map) {
    44             return newValue;
    45         }
    46         Integer size = Numbers.cast(newValue, Integer.class);
    47         if (size != null) {
    48             //return oldValue;
    49             /*
    50             the integer value should be ignored, because this may cause, that object is created before
    51             information about it's elements is available, which would break resolution flow
    52             */
    53             if (oldValue != null) {
    54                 return oldValue;
    55             }
    56             return new HashMap();
    57         }
     58                throw new CastFailure();
     59        }
    5860
    59         throw new CastFailure();
    60     }
    61 
    62     @Override
    63     public String getType() {
    64         return "l " + containedTypeName + " " + uidName;
    65     }
     61        @Override
     62        public String getFramsTypeName() {
     63                return "l " + containedTypeName + " " + uidName;
     64        }
    6665
    6766
  • java/main/src/main/java/com/framsticks/params/types/UniversalParam.java

    r77 r84  
    22
    33import com.framsticks.params.CastFailure;
    4 import com.framsticks.util.Numbers;
     4import com.framsticks.params.PrimitiveParam;
     5import com.framsticks.params.ReassignResult;
    56
    67/**
    78 * @author Piotr Sniegowski
    89 */
    9 public class UniversalParam extends ValueParam {
     10public class UniversalParam extends PrimitiveParam {
    1011        @Override
    11         public Class getStorageType() {
     12        public Class<?> getStorageType() {
    1213                return Object.class;
    1314        }
    1415
    1516        @Override
    16         public boolean isEmptyAvailable() {
    17                 return true;
     17        public String getFramsTypeName() {
     18                return "x";
    1819        }
    1920
    20     @Override
    21     public String getType() {
    22         return "x";
    23     }
    24 
     21        @Override
     22        public ReassignResult<Object> reassign(Object newValue, Object oldValue) throws CastFailure {
     23                return ReassignResult.create(newValue);
     24        }
    2525
    2626}
Note: See TracChangeset for help on using the changeset viewer.