class BiboxCommands extends ArrayList<BiboxCommand<?>> {

  public static final BiboxCommands ASSETS_CMD =
      BiboxCommands.of(new BiboxCommand<>("transfer/assets", new BiboxAllAssetsBody()));

  private static final ObjectMapper MAPPER =
      new ObjectMapper().configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
  private static final long serialVersionUID = 1L;

  private BiboxCommands() {
    super();
  }

  public static BiboxCommands depositAddressCommand(String coinSymbol) {
    return BiboxCommands.of(
        new BiboxCommand<BiboxDepositAddressCommandBody>(
            "transfer/transferIn", new BiboxDepositAddressCommandBody(coinSymbol)));
  }

  public static BiboxCommands withdrawalsCommand(BiboxFundsCommandBody body) {
    return BiboxCommands.of(
        new BiboxCommand<BiboxFundsCommandBody>("transfer/transferOutList", body));
  }

  public static BiboxCommands depositsCommand(BiboxFundsCommandBody body) {
    return BiboxCommands.of(
        new BiboxCommand<BiboxFundsCommandBody>("transfer/transferInList", body));
  }

  public static BiboxCommands transferCommand(BiboxTransferCommandBody body) {
    return BiboxCommands.of(
        new BiboxCommand<BiboxTransferCommandBody>("transfer/transferOut", body));
  }

  public static BiboxCommands of(List<BiboxCommand<?>> commands) {
    BiboxCommands cmds = new BiboxCommands();
    cmds.addAll(commands);
    return cmds;
  }

  public static BiboxCommands of(BiboxCommand<?>... commands) {
    BiboxCommands cmds = new BiboxCommands();
    cmds.addAll(Arrays.asList(commands));
    return cmds;
  }

  public String json() {<FILL_FUNCTION_BODY>}
}

    try {
      return MAPPER.writeValueAsString(this);
    } catch (JsonProcessingException e) {
      throw new RuntimeException(e);
    }
  
<methods>public void <init>() ,public void <init>(int) ,public void <init>(Collection<? extends BiboxCommand<?>>) ,public boolean add(BiboxCommand<?>) ,public void add(int, BiboxCommand<?>) ,public boolean addAll(Collection<? extends BiboxCommand<?>>) ,public boolean addAll(int, Collection<? extends BiboxCommand<?>>) ,public void clear() ,public java.lang.Object clone() ,public boolean contains(java.lang.Object) ,public void ensureCapacity(int) ,public boolean equals(java.lang.Object) ,public void forEach(Consumer<? super BiboxCommand<?>>) ,public BiboxCommand<?> get(int) ,public int hashCode() ,public int indexOf(java.lang.Object) ,public boolean isEmpty() ,public Iterator<BiboxCommand<?>> iterator() ,public int lastIndexOf(java.lang.Object) ,public ListIterator<BiboxCommand<?>> listIterator() ,public ListIterator<BiboxCommand<?>> listIterator(int) ,public BiboxCommand<?> remove(int) ,public boolean remove(java.lang.Object) ,public boolean removeAll(Collection<?>) ,public boolean removeIf(Predicate<? super BiboxCommand<?>>) ,public void replaceAll(UnaryOperator<BiboxCommand<?>>) ,public boolean retainAll(Collection<?>) ,public BiboxCommand<?> set(int, BiboxCommand<?>) ,public int size() ,public void sort(Comparator<? super BiboxCommand<?>>) ,public Spliterator<BiboxCommand<?>> spliterator() ,public List<BiboxCommand<?>> subList(int, int) ,public java.lang.Object[] toArray() ,public T[] toArray(T[]) ,public void trimToSize() <variables>private static final java.lang.Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA,private static final int DEFAULT_CAPACITY,private static final java.lang.Object[] EMPTY_ELEMENTDATA,transient java.lang.Object[] elementData,private static final long serialVersionUID,private int size