@Override public Array<T> clone() { Array<T> array = (Array<T>) super.clone(); array.values = new ArrayList<>(values.size()); for (T fval : values) { array.values.add((T) fval.clone()); } return array; }
@Override public int compareTo(FieldValue fieldValue) { int comp = super.compareTo(fieldValue); if (comp != 0) { return comp; } return map.compareTo(((WeightedSet<K>)fieldValue).map); }
@Override @SuppressWarnings("deprecation, unchecked") public boolean equals(Object o) { return this == o || o instanceof ListWrapper && myvalues.equals(((ListWrapper) o).myvalues); }
@Override public ArrayDataType getDataType() { return (ArrayDataType) super.getDataType(); }
@Override public FieldValue applyTo(FieldValue val) { if (val instanceof WeightedSet) { WeightedSet wset = (WeightedSet) val; wset.put(value, weight); } else if (val instanceof CollectionFieldValue) { CollectionFieldValue fval = (CollectionFieldValue) val; fval.add(value); } else { throw new IllegalStateException("Cannot add "+value+" to field of type " + val.getClass().getName()); } return val; }
@Override public boolean removeValue(FieldValue o) { return super.removeValue(o, values); }
private void setCorrectAnnotationReference(CollectionFieldValue collection, IdentityHashMap<Annotation, Integer> originalAnnotations, List<Annotation> newAnnotations) { Iterator it = collection.fieldValueIterator(); while (it.hasNext()) { setCorrectAnnotationReference((FieldValue) it.next(), originalAnnotations, newAnnotations); } }
public static <T extends FieldValue> void serializeCollectionField(FieldWriter fieldWriter, JsonGenerator generator, FieldBase field, CollectionFieldValue<T> value) { fieldNameIfNotNull(generator, field); wrapIOException(() -> { generator.writeStartArray(); Iterator<T> i = value.iterator(); while (i.hasNext()) { i.next().serialize(null, fieldWriter); } generator.writeEndArray(); }); }
public boolean isEmpty() { return myvalues.isEmpty(); }
@Override public int hashCode() { return myvalues.hashCode(); } }
@Override public WeightedSetDataType getDataType() { return (WeightedSetDataType) super.getDataType(); }
@SuppressWarnings({ "unchecked" }) @Override public ModificationStatus doModify(FieldValue fv) { for (Object newValue : newValues.getValues()) { ((CollectionFieldValue)fv).add((FieldValue) newValue); } return ModificationStatus.MODIFIED; }
@Override public FieldValue applyTo(FieldValue fval) { if (fval instanceof CollectionFieldValue) { CollectionFieldValue val = (CollectionFieldValue) fval; val.removeValue(value); } return fval; }
private boolean removeObsoleteReferencesFromCollectionType(CollectionFieldValue collection, Map<Annotation, Annotation> selectedAnnotations, boolean removeIfPresent) { Iterator it = collection.fieldValueIterator(); while (it.hasNext()) { FieldValue fValue = (FieldValue) it.next(); if (removeObsoleteReferencesFromFieldValue(fValue, selectedAnnotations, removeIfPresent)) { it.remove(); } } return false; }
@Override public <T extends FieldValue> void write(FieldBase field, CollectionFieldValue<T> value) { buffer.beginTag(field.getName()); for (@SuppressWarnings("unchecked") Iterator<FieldValue> i = (Iterator<FieldValue>) value.iterator(); i.hasNext();) { buffer.beginTag("item"); i.next().printXml(buffer); buffer.endTag(); } buffer.endTag(); }
@Override public boolean isValueCompatible(FieldValue value) { if (!(value instanceof CollectionFieldValue)) { return false; } CollectionFieldValue cfv = (CollectionFieldValue) value; if (equals(cfv.getDataType())) { //the field value if of this type: return true; } return false; }
@SuppressWarnings({ "unchecked", "rawtypes" }) public static void fillArray(TokenBuffer buffer, CollectionFieldValue parent, DataType valueType) { int initNesting = buffer.nesting(); expectArrayStart(buffer.currentToken()); buffer.next(); while (buffer.nesting() >= initNesting) { Preconditions.checkArgument(buffer.currentToken() != JsonToken.VALUE_NULL, "Illegal null value for array entry"); parent.add(readSingleValue(buffer, valueType)); buffer.next(); } } }
@Override public boolean removeValue(FieldValue o) { return super.removeValue(o, map.keySet()); }
@Override public WeightedSet clone() { WeightedSet<K> newSet = (WeightedSet<K>) super.clone(); newSet.map = (MapFieldValue<K, IntegerFieldValue>) map.clone(); return newSet; }
/** * Checks if another object is equal to this set. * * @param o the object to check for equality with * @return true if o is an instance of WeightedSet and the two encapsulated Maps are equal, false otherwise */ public boolean equals(Object o) { if (!(o instanceof WeightedSet)) return false; return (super.equals(o) && map.equals(((WeightedSet<K>)o).map)); }