return false;
}
//
// Cast to ESimpleFeatureInternal
//
ESimpleFeatureInternal eFeature = (ESimpleFeatureInternal)obj;
//
// Get this feature ID
//
String eID = getID();
//
// This check shouldn't really be necessary since
// by contract, all features should have an ID.
//
if (getID() == null) {
if (eFeature.getIdentifier() != null) {
return false;
}
}
//
// Is not same feature ID?
//
if (!eID.equals(eFeature.getIdentifier())) {
return false;
}
//
// Is not same feature type.
//
if (!eFeature.getFeatureType().equals(getFeatureType())) {
return false;
}
//
// Get attribute values
//
List<Object> values = getAttributes();
//
// Check all values for inequality
//
for (int i = 0, count = values.size(); i < count; i++) {
//
// Get attribute values
//
Object v1 = values.get(i);
Object v2 = eFeature.getAttribute(i);
//
// Do a guarded check
//
if (v1 == null) {
if (v2 != null) {