public <T> AbstractComposite addComponent(T value, Serializer<T> s, ComponentEquality equality) { addComponent(value, s, comparatorForSerializer(s), equality); return this; }
public <T> AbstractComposite addComponent(T value, Serializer<T> s) { addComponent(value, s, comparatorForSerializer(s)); return this; }
public <T> AbstractComposite setComponent(int index, T value, Serializer<T> s) { setComponent(index, value, s, comparatorForSerializer(s)); return this; }
@SuppressWarnings("unchecked") @Override public void add(int index, Object element) { serialized = null; if (element instanceof Component) { components.add(index, (Component<?>) element); return; } element = mapIfNumber(element); Serializer s = serializerForPosition(index); if (s == null) { s = SerializerTypeInferer.getSerializer(element); } String c = comparatorForPosition(index); if (c == null) { c = comparatorForSerializer(s); } components.add(index, new Component(element, null, s, c, ComponentEquality.EQUAL)); }
@SuppressWarnings("unchecked") @Override public Object set(int index, Object element) { serialized = null; if (element instanceof Component) { Component prev = components.set(index, (Component<?>) element); if (prev != null) { return prev.getValue(); } return null; } element = mapIfNumber(element); Serializer s = serializerForPosition(index); if (s == null) { s = SerializerTypeInferer.getSerializer(element); } String c = comparatorForPosition(index); if (c == null) { c = comparatorForSerializer(s); } Component prev = components.set(index, new Component(element, null, s, c, ComponentEquality.EQUAL)); if (prev != null) { return prev.getValue(); } return null; }