Skip to content

Commit

Permalink
added overloaded form of addComponent on AbstractComposite, adjusted …
Browse files Browse the repository at this point in the history
…add method to use such
  • Loading branch information
zznate committed Sep 16, 2011
1 parent a5113d2 commit 498568e
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 20 deletions.
Expand Up @@ -404,6 +404,28 @@ public int size() {
return components.size();
}

@SuppressWarnings("unchecked")
public <T> AbstractComposite addComponent(int index, T element, ComponentEquality equality) {
serialized = null;

if (element instanceof Component) {
components.add(index, (Component<?>) element);
return this;
}

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,
equality));
return this;
}

public <T> AbstractComposite addComponent(T value, Serializer<T> s) {

addComponent(value, s, comparatorForSerializer(s));
Expand Down Expand Up @@ -506,28 +528,11 @@ public boolean addAll(int i, Collection<? extends Object> c) {
return super.addAll(i, flatten(c));
}

@SuppressWarnings("unchecked")
@Override
public void add(int index, Object element) {
serialized = null;

if (element instanceof Component) {
components.add(index, (Component<?>) element);
return;
}

public void add(int index, Object element) {
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));
}
addComponent(index, element, ComponentEquality.EQUAL);
}

@Override
public Object remove(int index) {
Expand Down
Expand Up @@ -48,6 +48,7 @@ public void allTypesSerialize() {
composite.addComponent(13, timeUUID, TimeUUIDSerializer.get(), "TimeUUIDType(reversed=true)", ComponentEquality.EQUAL);
composite.addComponent(14, "UTF8Text", StringSerializer.get(), "UTF8Type(reversed=true)", ComponentEquality.EQUAL);
composite.addComponent(15, lexUUID, UUIDSerializer.get(), "UUIDType(reversed=true)", ComponentEquality.EQUAL);
composite.addComponent(16, "My element", ComponentEquality.EQUAL);

//serialize to the native bytes value

Expand Down Expand Up @@ -75,6 +76,7 @@ public void allTypesSerialize() {
assertEquals(timeUUID, parsed.get(13, TimeUUIDSerializer.get()));
assertEquals("UTF8Text", parsed.get(14, StringSerializer.get()));
assertEquals(lexUUID, parsed.get(15, UUIDSerializer.get()));
assertEquals("My element", parsed.get(16, StringSerializer.get()));


}
Expand Down

0 comments on commit 498568e

Please sign in to comment.