All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xapi.source.impl.Varargs Maven / Gradle / Ivy

Go to download

Everything needed to run a comprehensive dev environment. Just type X_ and pick a service from autocomplete; new dev modules will be added as they are built. The only dev service not included in the uber jar is xapi-dev-maven, as it includes all runtime dependencies of maven, adding ~4 seconds to build time, and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).

The newest version!
package xapi.source.impl;

import xapi.source.api.IsType;

public class Varargs {

  private IsType[] types;

  public Varargs(IsType ... types) {
    this.types = types;
  }

  public void addType(IsType ... newtypes) {
    IsType[] grow = new IsType[types.length+newtypes.length];
    System.arraycopy(types, 0, grow, 0, types.length);
    System.arraycopy(newtypes, 0, grow, types.length, newtypes.length);
    types = grow;
    grow = null;
  }

  public IsType[] getTypes() {
    return types;
  }

  @Override
  public String toString() {
    if (types.length==0)return "";
    StringBuilder b = new StringBuilder();
    b.append(format(types[0]));
    for (int i = 1;i < types.length; i++) {
      b.append(separator());
      b.append(format(types[i]));
    }
    return b.toString();
  }

  protected String format(IsType isType) {
    return String.valueOf(isType);
  }

  private String separator() {
    return ", ";
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy