Package systextil

Class CNPJ

java.lang.Object
systextil.CNPJ
All Implemented Interfaces:
Comparable<CNPJ>

public class CNPJ extends Object implements Comparable<CNPJ>
Representa um CNPJ alfanumérico.

Apresenta métodos para o uso inicial. Novos métodos e melhorias ainda serão providenciados.

Também pode representar um CPF. Apesar do CPF não ser alfanumérico, esta classe deve atender também ao CPF.

Author:
sergio
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final byte
    Dígitos verificadores do CNPJ.
    static final CNPJ
    O CNPJ padrão preenchido com noves.
    final String
    Ordem do CNPJ.
    final String
    Raiz do CNPJ.
    static final CNPJ
    O CNPJ padrão preenchido com zeros.
  • Constructor Summary

    Constructors
    Constructor
    Description
    CNPJ(String r, String o, byte d)
    Constroi um CNPJ ou CPF a partir dos dados oficiais do banco de dados.
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    Obtém o nome de campo alternativo de CNPJ alfanumérico para eventual nome de campo de CNPJ numérico.
    int
    compareTo(CNPJ other)
    Compara este CNPJ com outro, para fins de ordenação.
    byte
    dv()
    Calcula os dígitos verificadores deste CNPJ ou CPF.
    boolean
     
    static CNPJ
    get(String r, String o, int d)
    Obtém um CNPJ alfanumérico a partir dos dados digitados.
    int
     
    boolean
    Informa se este CNPJ é preenchido com zeros.
    static String
    nomeColuna(String padrao, char sufixo)
    Implementa a função PL/SQL CNPJ_FN_NOME_COLUNA.
    static CNPJ
    parse(int cnpj9, int cnpj4, int cnpj2)
    Obtém um CNPJ alfanumérico a partir de um CNPJ numérico.
    static CNPJ
    parse(String string)
    Obtém um CNPJ a partir de um CPF ou CNPJ.
    static CNPJ
    Obtém um CNPJ a partir de um texto formatado como CNPJ (por exemplo 12.345.678/0001-35) - com algumas tolerâncias.
    static CNPJ
    Deprecated.
    static CNPJ
    Obtém um CNPJ a partir de um texto formatado como CPF (por exemplo 123.456.789-35) - com algumas tolerâncias.
    Se contiver valores numéricos, remove os zeros à esquerda.
    int[]
    Converte os componentes deste CNPJ para o padrão numérico antigo, se for possível.
    Imprime este objeto num formato adequado conforme ele corresponder a um CNPJ ou a um CPF.
    void
    Valida os dígitos verificadores deste CNPJ ou CPF.
    static CNPJ
    validate(String string)
    Obtém um CNPJ a partir de um CPF ou CNPJ.
    static CNPJ
    Obtém um CNPJ a partir de um texto formatado como CNPJ (por exemplo 12.345.678/0001-35) - com algumas tolerâncias.
    static CNPJ
    Obtém um CNPJ a partir de um texto formatado como CPF (por exemplo 123.456.789-35) - com algumas tolerâncias.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • ZEROS

      public static final CNPJ ZEROS
      O CNPJ padrão preenchido com zeros. Corresponde a "000000000.0000.00".
    • NOVES

      public static final CNPJ NOVES
      O CNPJ padrão preenchido com noves. Corresponde a "999999999.9999.99".
    • r

      public final String r
      Raiz do CNPJ.
    • o

      public final String o
      Ordem do CNPJ.
    • d

      public final byte d
      Dígitos verificadores do CNPJ.
  • Constructor Details

    • CNPJ

      public CNPJ(String r, String o, byte d)
      Constroi um CNPJ ou CPF a partir dos dados oficiais do banco de dados. Os parâmetros não recebem validação nem formatação. Por isso eles já devem estar validados e formatados.

      Em outras situações, prefira usar get(String, String, int).

      Parameters:
      r - a raiz do CNPJ
      o - a ordem do CNPJ
      d - os dígitos verificadores do CNPJ
  • Method Details

    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • dv

      public byte dv()
      Calcula os dígitos verificadores deste CNPJ ou CPF. Se for tudo zero, o resultado será zero.
      Returns:
      os dígitos verificadores
    • parse

      public static CNPJ parse(int cnpj9, int cnpj4, int cnpj2)
      Obtém um CNPJ alfanumérico a partir de um CNPJ numérico.
      Parameters:
      cnpj9 - a raiz numérica
      cnpj4 - a ordem numérica
      cnpj2 - os dígitos verificadores.
      Returns:
      o CNPJ alfanumérico
    • get

      public static CNPJ get(String r, String o, int d)
      Obtém um CNPJ alfanumérico a partir dos dados digitados. Isto é útil para preencher zeros à esquerda, por exemplo.
      Parameters:
      r - a raiz
      o - a ordem
      d - os dígitos verificadores
      Returns:
      o CNPJ alfanumérico
    • isZeros

      public boolean isZeros()
      Informa se este CNPJ é preenchido com zeros.
      Returns:
      se este CNPJ é preenchido com zeros
    • compareTo

      public int compareTo(CNPJ other)
      Compara este CNPJ com outro, para fins de ordenação.
      Specified by:
      compareTo in interface Comparable<CNPJ>
      Parameters:
      other - o outro CNPJ
      Returns:
      o resultado da comparação. Maior que zero se for maior. Menor que zero se for menor. Igual a zero se for igual.
    • toOld

      public int[] toOld() throws RuntimeMsg
      Converte os componentes deste CNPJ para o padrão numérico antigo, se for possível.

      Só deve ser usado diretamente onde (e enquanto) for obrigatório que o CNPJ atual seja compatível com o padrão numérico antigo.

      Returns:
      um array com três posições contendo os valores numéricos dos componentes deste CNPJ, se possível. Nunca é nulo.
      Throws:
      RuntimeMsg - se não for possível converter para o padrão antigo
    • toString

      public String toString()
      Imprime este objeto num formato adequado conforme ele corresponder a um CNPJ ou a um CPF.
      Overrides:
      toString in class Object
      Returns:
      este objeto formatado como um CNPJ ou um CPF
    • tirarZeros

      public CNPJ tirarZeros()
      Se contiver valores numéricos, remove os zeros à esquerda. Isso é útil para as situações em que o CNPJ numérico está sendo usado na forma de texto e historicamente foi gravado sem zeros à esquerda.

      Como o objeto retornado não é um CNPJ válido, ele deve ser usado pontualmente em determinado trecho do programa e descartado em seguida. Não reuse esse objeto, para não dar confusão.

      Returns:
      um objeto inválido contendo os componentes deste objeto sem os zeros à esquerda se forem valores numéricos. Se forem alfanuméricos, os zeros à esquerda são mantidos.
    • nomeColuna

      public static String nomeColuna(String padrao, char sufixo)
      Implementa a função PL/SQL CNPJ_FN_NOME_COLUNA. Basicamente aplica o sufixo após um caractere de sublinhado ao fim do padrão, removendo de dentro do padrão a posição original.

      Por exemplo, "cli_?_ped" com sufixo "r" resultaria em "cli_ped_r".

      Parameters:
      padrao - o padrão do nome atual da coluna, com um ponto de interrogação na posição onde normalmente estaria o dígito 9 ou 4 a ser substituído.
      sufixo - o sufixo a aplicar, normalmente "r" ou "o" (também podendo ser "R" ou "O").
      Returns:
      o nome da coluna adaptado ao novo padrão contendo o sufixo indicado
    • campoAlternativo

      public static String campoAlternativo(String fieldName)
      Obtém o nome de campo alternativo de CNPJ alfanumérico para eventual nome de campo de CNPJ numérico.
      Parameters:
      fieldName - o nome de campo que possivelmente pertença a um CNPJ numérico
      Returns:
      o nome de campo para CNPJ alfanumérico se for o caso, ou nulo se não for.
    • parseCodigoDeBarras15

      @Deprecated public static CNPJ parseCodigoDeBarras15(String codigo_barras)
      Deprecated.
      Interpreta um código de barras com 15 caracteres.
    • validateCNPJ

      public static CNPJ validateCNPJ(String cnpj) throws Msg
      Obtém um CNPJ a partir de um texto formatado como CNPJ (por exemplo 12.345.678/0001-35) - com algumas tolerâncias. Os pontos não são necessários, nem zeros à esquerda. Se não tiver delimitadores, deve conter 14 ou 15 dígitos. Espaços ao redor são desconsiderados.
      Parameters:
      cnpj - o CNPJ a interpretar
      Returns:
      o CNPJ correspondente ao CNPJ, ou nulo se estiver nulo ou vazio
      Throws:
      Msg - se não estiver em um formato válido
    • parseCNPJ

      public static CNPJ parseCNPJ(String cnpj)
      Obtém um CNPJ a partir de um texto formatado como CNPJ (por exemplo 12.345.678/0001-35) - com algumas tolerâncias.
      Parameters:
      cnpj - o CNPJ a interpretar
      Returns:
      o CNPJ correspondente ao CNPJ, ou nulo se estiver nulo, vazio ou inválido
      See Also:
    • validateCPF

      public static CNPJ validateCPF(String cpf) throws Msg
      Obtém um CNPJ a partir de um texto formatado como CPF (por exemplo 123.456.789-35) - com algumas tolerâncias. Os pontos não são necessários, nem zeros à esquerda, e o delimitador pode ser hífen ou barra. Se não tiver delimitadores, deve conter 11 dígitos. Espaços ao redor são desconsiderados.
      Parameters:
      cpf - o CPF a interpretar
      Returns:
      o CNPJ correspondente ao CPF, ou nulo se estiver nulo ou vazio
      Throws:
      Msg - se não estiver em um formato válido
    • parseCPF

      public static CNPJ parseCPF(String cpf)
      Obtém um CNPJ a partir de um texto formatado como CPF (por exemplo 123.456.789-35) - com algumas tolerâncias.
      Parameters:
      cpf - o CPF a interpretar
      Returns:
      o CNPJ correspondente ao CPF, ou nulo se estiver nulo, vazio ou inválido
      See Also:
    • validate

      public static CNPJ validate(String string) throws Msg
      Obtém um CNPJ a partir de um CPF ou CNPJ. Primeiro tenta validateCNPJ(String), e, se não funcionar, tenta validateCPF(String).
      Parameters:
      string - o CPF ou CNPJ a interpretar
      Returns:
      o CNPJ correspondente, ou nulo se estiver nulo ou vazio
      Throws:
      Msg - se não estiver em um formato válido
    • parse

      public static CNPJ parse(String string)
      Obtém um CNPJ a partir de um CPF ou CNPJ.
      Parameters:
      string - o CPF ou CNPJ a interpretar
      Returns:
      o CNPJ correspondente, ou nulo se estiver nulo, vazio ou inválido
      See Also:
    • validarDV

      public void validarDV() throws Msg
      Valida os dígitos verificadores deste CNPJ ou CPF.
      Throws:
      Msg - "ATENÇÃO! Digito do CPF/CGC não confere"