Revision 1961 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/dynobject/impl/DefaultDynObjectManager.java
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