Revision 1961 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/dynobject/impl/DefaultDynObjectManager.java

View differences:

DefaultDynObjectManager.java
36 36
import java.util.Iterator;
37 37
import java.util.List;
38 38
import java.util.Map;
39
import java.util.Objects;
39 40
import java.util.Set;
41
import org.apache.commons.lang3.StringUtils;
40 42

  
41 43
import org.gvsig.tools.ToolsLocator;
42 44
import org.gvsig.tools.dataTypes.DataTypes;
......
777 779
        }
778 780
    }
779 781
    
782
    public boolean equals(DynObject obj1, DynObject obj2) {
783
        if( !StringUtils.equalsIgnoreCase(
784
                obj1.getDynClass().getFullName(),
785
                obj2.getDynClass().getFullName()) ) {
786
            return false;
787
        }
788
        for (DynField field : obj1.getDynClass().getDynFields() ) {
789
            String name = field.getName();
790
            if( !Objects.equals(obj1.getDynValue(name), obj2.getDynValue(name)) ) {
791
                return false;
792
            }
793
        }
794
        return true;
795
    }
796

  
797
    public int hashCode(DynObject obj) {
798
        DynField[] fields = obj.getDynClass().getDynFields();
799
        Object[] values = new Object[fields.length];
800
        int n = 0;
801
        for (DynField field : fields ) {
802
            String name = field.getName();
803
            values[n++] = obj.getDynValue(name);
804
        }
805
        return Arrays.hashCode(values);
806
    }
807
    
808
    @Override
780 809
    public void clear(DynObject obj) {
781 810
        for (DynField field : obj.getDynClass().getDynFields() ) {
782 811
            String name = field.getName();

Also available in: Unified diff