/** * For collections of Primitives or Values it's simply an added (or removed) item.<br/> * For collections of Entities or ValueObjects * it's a {@link GlobalId} reference to an added (or removed) item. */ public Object getValue() { return value.unwrap(); }
@Override public JsonElement toJson(Atomic sourceValue, JsonSerializationContext jsonSerializationContext) { if (sourceValue.isNull()) { return JsonNull.INSTANCE; } JsonElement rawValue = jsonSerializationContext.serialize(sourceValue.unwrap()); if (sourceValue.isJsonBasicType()|| !typeSafety){ return rawValue; } return wrapTypeSafely(sourceValue, jsonSerializationContext); }
/** * @return true if value is not null and is primitive, box or String */ public boolean isJsonBasicType() { if(isNull()) { return false; } return Primitives.isJsonBasicType(value); }
/** * Added item. See {@link #getValue()} javadoc */ public Object getAddedValue() { return value.unwrap(); }
/** * Removed item. See {@link #getValue()} javadoc */ public Object getRemovedValue() { return value.unwrap(); }
public Object getKey() { return key.unwrap(); }
ValueAddOrRemove(Integer index, Object value) { super(index); this.value = new Atomic(value); }
public Object getLeftValue() { return leftValue.unwrap(); }
EntryAddOrRemove(Object key, Object value) { super(key); this.value = new Atomic(value); }
public Object getLeftValue() { return leftValue.unwrap(); }
ValueAddOrRemove(Object value) { this.value = new Atomic(value); }
public Object getRightValue() { return rightValue.unwrap(); }
EntryChange(Object key) { argumentIsNotNull(key); this.key = new Atomic(key); }
public Object getRightValue() { return rightValue.unwrap(); }
public Object getValue() { return value.unwrap(); }
public Object getLeft() { return left.unwrap(); }
public Object getRight() { return right.unwrap(); }