public <T> AbstractComposite addComponent(
      T value, Serializer<T> s, String comparator, ComponentEquality equality) {

    addComponent(-1, value, s, comparator, equality);

    return this;
  }
 /**
  * add(int,Object) is the primary method that adds elements to the list. All other add methods end
  * up here.
  */
 @Override
 public void add(int index, Object element) {
   element = mapIfNumber(element);
   addComponent(index, element, ComponentEquality.EQUAL);
 }
  public <T> AbstractComposite addComponent(T value, Serializer<T> s, String comparator) {

    addComponent(value, s, comparator, ComponentEquality.EQUAL);

    return this;
  }
  public <T> AbstractComposite addComponent(T value, Serializer<T> s) {

    addComponent(value, s, comparatorForSerializer(s));

    return this;
  }