Requisitos da API de renderização de rótulos a partir de URN.
Referências de implementação em:
lexml-parser-projeto-lei
: https://github.com/lexml/lexml-parser-projeto-lei/blob/master/src/main/scala/br/gov/lexml/parser/pl/rotulo/rotuloParser.scalalexml-parser-projeto-lei
: https://github.com/lexml/lexml-parser-projeto-lei/blob/master/src/main/scala/br/gov/lexml/parser/pl/output/LexmlRenderer.scala#L20lexml-parser-projeto-lei-ws
: https://github.com/lexml/lexml-parser-projeto-lei-ws/blob/master/src/main/scala/br/gov/lexml/parser/pl/ws/tasks/FragmentFormatter.scala
A URN dos dispositivos contém informação suficiente para gerar os rótulos de normas.
Scala precisa ser compilado com Java 8.
First run /usr/libexec/java_home -V
which will output something like the following:
% /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
11.0.4, x86_64: "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
1.8.0_232, x86_64: "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
Then, use
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
Now when you run java -version
you will see the version 1.8.
Se N = "1u"
, deve-se gerar "Art. único." (acho que esse caso não ocorre com o nosso atual acervo)Se N < 10
, deve-se gerar "Art. 2º" (com o símbolo de ordinal, sem ponto)Se N > 9
, deve-se gerar "Art. 12." (sem o símbolo de ordinal, com ponto)`
Regra geral (válida também para qualquer dispositivo ou agrupador de artigo): se qualquer número vier seguido de hífen e de um número adicional, deve-se concatenar ao número existente no rótulo um hífen e a letra maiúscula considerando que a letra A corresponde ao número 1.
Pode acontecer artN-M-Z. E também o número pode ser maior do que 26. Nesse caso, deve-se recomeçar adicionando letras adicionais, pois a base do número é 26.
- Por exemplo,
art1-27
= "Art. 1º-AA" - Por exemplo,
art2-28
= "Art. 1º-AB"
O caput não possui rótulo (quem possui rótulo é o artigo).
Se for necessário gerar um rótulo expandido/contextual, deve-se concatenar o do artigo com o nome caput
.
- `Se N = "1u"', deve-se gerar "Parágrafo único.". (acho que esse caso não ocorre com o nosso atual acervo)
- `Se N < 10', deve-se gerar "§ 2º" (com o símbolo de ordinal, sem ponto)
- `Se N > 9', deve-se gerar "§ 12." (sem o símbolo de ordinal, com ponto)
Os incisos são apresentados em algarismos romanos maiúsculos seguidos de branco e de um travessão curto (não é hífen) e de um branco.
Exemplos:
art3_par2_inc3
= "III –";
As alíneas são apresentadas em letras minúsculas seguidas de fecha-parêntesis.
Exemplos:
art3_par2_inc3_ali4
= "d)";art3_par2_inc3_ali5-2
= "e-B)".
Os itens são apresentados em números arábicos seguidos de ponto.
Ex: art3_par2_inc3_ali4_ite8
= "8."
Esses agrupadores são escritos em letras maiúsculas seguidos do número em algarismos romanos.
- Ex:
tit2_cap3
= "CAPÍTULO III"
Esses agrupadores são escritos com a primeira maiúscula seguida de número romano em maiúsculas.
- Ex:
cap2_sec3_sub1
= "Subseção I".
Se a urn for de um bloco de alteração, vale as regras acima de acordo com o último componente.
- Ex:
art3_cpt_alt1_art4_par2
= "§ 2º" - Ex:
art3_cpt_alt1_tit3
= "TÍTULO III"
Importar chave
gpg --import lexml.public.key
gpg --allow-secret-key-import --import lexml.secret.key
Para publicar uma versão no Maven central, você precisa de acesso ao repositório e configurar o acesso
no maven. Insira o snippet abaixo - com o correto user_name e api_key - no ~/.m2/settings.xml
.
....
<servers>
...
<server>
<id>ossrh</id>
<username>XXX</username>
<password>XXX</password>
</server>
</servers>
...
<profiles>
...
<profile>
<id>gpg</id>
<properties>
<gpg.executable>gpg2</gpg.executable>
<gpg.keyname>XXXX</gpg.keyname>
<gpg.passphrase>XXXX</gpg.passphrase>
</properties>
</profile>
</profiles>
....
<activeProfiles>
...
<activeProfile>gpg</activeProfile>
</activeProfiles>
Depois execute o comando abaixo para fazer o release do projeto:
./mvnw -Prelease release:prepare
./mvnw -Prelease release:perform
O repositório será:
https://repo1.maven.org/maven2/br/gov/lexml/lexml-urn-formatter/