private static Set<Delta<?>> diff(InstanceInfo oldInstanceInfo, InstanceInfo newInstanceInfo) { if (oldInstanceInfo == null || newInstanceInfo == null) { return null; } if (!oldInstanceInfo.getId().equals(newInstanceInfo.getId())) { return null; } Set<Delta<?>> deltas = new HashSet<Delta<?>>(); for (InstanceInfoField.Name fieldName : InstanceInfoField.Name.values()) { InstanceInfoField<Object> field = InstanceInfoField.forName(fieldName); Object oldValue = field.getValue(oldInstanceInfo); Object newValue = field.getValue(newInstanceInfo); if (!equalsNullable(oldValue, newValue)) { // there is a difference Delta<?> delta = new Delta.Builder() .withId(newInstanceInfo.getId()) .withDelta(field, newValue) .build(); deltas.add(delta); } } return deltas; }
public <T> com.netflix.eureka2.registry.instance.Delta<T> build() { return (Delta<T>) builder().build(); }
@Override public Builder builder() { return newBuilder().withDelta(InstanceInfoField.STATUS, Status.DOWN); } };
@Override public Builder builder() { return newBuilder().withDelta(InstanceInfoField.STATUS, Status.UP); } },
@SuppressWarnings("unchecked") public Delta<T> toDelta() { return (Delta<T>) new Delta.Builder() .withId(id) .withDelta(InstanceInfoField.forName(Name.forName(fieldName)), getValue()) .build(); }