Bibliotecas Brasileiras de Utilidades

Ainda não é desperdício escrever código para formatar um CNPJ, por exemplo, imagine só.

A síndrome de NIH prevalece no brazilutils e no Stella, que sequer têm subclasses de Format.

import java.text.FieldPosition;
import java.text.Format;
import java.text.ParsePosition;

@SuppressWarnings("serial")
public final class CNPJFormat extends Format {
  private static final CNPJFormat instance = new CNPJFormat();

  public static CNPJFormat getInstance() {
    return instance;
  }

  private CNPJFormat() {
  }

  public StringBuffer format(final Object obj, final StringBuffer toAppendTo, final FieldPosition pos) {

    if (null == obj)
      throw new IllegalArgumentException("O objeto não pode ser nulo");

    if (!(obj instanceof String))
      throw new IllegalArgumentException("O objeto não é uma string: " + obj.getClass().getName());

    final String str = (String) obj;

    toAppendTo.append(str.substring(0, 2) + "." + str.substring(2, 5) + "." + str.substring(5, 8) + "/" + str.substring(8, 12) + "-" + str.substring(12, 14));

    return toAppendTo;
  }

  public Object parseObject(final String source, final ParsePosition pos) {
    pos.setIndex(14);

    return new String(source);
  }

}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s