class AccountAddress implements Identity, Adaptor {

  @SuppressWarnings("unchecked")
  @Override
  public <T> T adapt(final Class<T> adaptor) {
    if (adaptor.isAssignableFrom(AccountAddress.class)) {
      return (T) this;
    } else if (adaptor.isAssignableFrom(ContractAddress.class)) {
      return (T) ContractAddress.of(getBytesValue());
    }
    return null;
  }

  public  AccountAddress(final String encoded);
  public  AccountAddress(final BytesValue bytesValue);
  protected  AccountAddress();

}