commit inicial
parent
2f0cc26fa0
commit
72153fd56a
|
@ -0,0 +1,8 @@
|
||||||
|
/bin
|
||||||
|
/target
|
||||||
|
.classpath
|
||||||
|
.DS_Store
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
Texgit Changelog
|
||||||
|
=============================
|
||||||
|
|
||||||
|
0.2.3 (2014/02/01) suport bopepo-0.2.3
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
**Improvement**
|
||||||
|
|
||||||
|
* #1: Implementação de testes para funcionalidade LineOfFields
|
||||||
|
|
||||||
|
|
||||||
|
0.2.0-SNAPSHOT (2010/12/07) incubation
|
||||||
|
---------------------------------------
|
|
@ -0,0 +1,191 @@
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction, and
|
||||||
|
distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by the copyright
|
||||||
|
owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all other entities
|
||||||
|
that control, are controlled by, or are under common control with that entity.
|
||||||
|
For the purposes of this definition, "control" means (i) the power, direct or
|
||||||
|
indirect, to cause the direction or management of such entity, whether by
|
||||||
|
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity exercising
|
||||||
|
permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications, including
|
||||||
|
but not limited to software source code, documentation source, and configuration
|
||||||
|
files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical transformation or
|
||||||
|
translation of a Source form, including but not limited to compiled object code,
|
||||||
|
generated documentation, and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or Object form, made
|
||||||
|
available under the License, as indicated by a copyright notice that is included
|
||||||
|
in or attached to the work (an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object form, that
|
||||||
|
is based on (or derived from) the Work and for which the editorial revisions,
|
||||||
|
annotations, elaborations, or other modifications represent, as a whole, an
|
||||||
|
original work of authorship. For the purposes of this License, Derivative Works
|
||||||
|
shall not include works that remain separable from, or merely link (or bind by
|
||||||
|
name) to the interfaces of, the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including the original version
|
||||||
|
of the Work and any modifications or additions to that Work or Derivative Works
|
||||||
|
thereof, that is intentionally submitted to Licensor for inclusion in the Work
|
||||||
|
by the copyright owner or by an individual or Legal Entity authorized to submit
|
||||||
|
on behalf of the copyright owner. For the purposes of this definition,
|
||||||
|
"submitted" means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems, and
|
||||||
|
issue tracking systems that are managed by, or on behalf of, the Licensor for
|
||||||
|
the purpose of discussing and improving the Work, but excluding communication
|
||||||
|
that is conspicuously marked or otherwise designated in writing by the copyright
|
||||||
|
owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
|
||||||
|
of whom a Contribution has been received by Licensor and subsequently
|
||||||
|
incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License.
|
||||||
|
|
||||||
|
Subject to the terms and conditions of this License, each Contributor hereby
|
||||||
|
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
|
||||||
|
irrevocable copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the Work and such
|
||||||
|
Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License.
|
||||||
|
|
||||||
|
Subject to the terms and conditions of this License, each Contributor hereby
|
||||||
|
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
|
||||||
|
irrevocable (except as stated in this section) patent license to make, have
|
||||||
|
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
|
||||||
|
such license applies only to those patent claims licensable by such Contributor
|
||||||
|
that are necessarily infringed by their Contribution(s) alone or by combination
|
||||||
|
of their Contribution(s) with the Work to which such Contribution(s) was
|
||||||
|
submitted. If You institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
|
||||||
|
Contribution incorporated within the Work constitutes direct or contributory
|
||||||
|
patent infringement, then any patent licenses granted to You under this License
|
||||||
|
for that Work shall terminate as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution.
|
||||||
|
|
||||||
|
You may reproduce and distribute copies of the Work or Derivative Works thereof
|
||||||
|
in any medium, with or without modifications, and in Source or Object form,
|
||||||
|
provided that You meet the following conditions:
|
||||||
|
|
||||||
|
You must give any other recipients of the Work or Derivative Works a copy of
|
||||||
|
this License; and
|
||||||
|
You must cause any modified files to carry prominent notices stating that You
|
||||||
|
changed the files; and
|
||||||
|
You must retain, in the Source form of any Derivative Works that You distribute,
|
||||||
|
all copyright, patent, trademark, and attribution notices from the Source form
|
||||||
|
of the Work, excluding those notices that do not pertain to any part of the
|
||||||
|
Derivative Works; and
|
||||||
|
If the Work includes a "NOTICE" text file as part of its distribution, then any
|
||||||
|
Derivative Works that You distribute must include a readable copy of the
|
||||||
|
attribution notices contained within such NOTICE file, excluding those notices
|
||||||
|
that do not pertain to any part of the Derivative Works, in at least one of the
|
||||||
|
following places: within a NOTICE text file distributed as part of the
|
||||||
|
Derivative Works; within the Source form or documentation, if provided along
|
||||||
|
with the Derivative Works; or, within a display generated by the Derivative
|
||||||
|
Works, if and wherever such third-party notices normally appear. The contents of
|
||||||
|
the NOTICE file are for informational purposes only and do not modify the
|
||||||
|
License. You may add Your own attribution notices within Derivative Works that
|
||||||
|
You distribute, alongside or as an addendum to the NOTICE text from the Work,
|
||||||
|
provided that such additional attribution notices cannot be construed as
|
||||||
|
modifying the License.
|
||||||
|
You may add Your own copyright statement to Your modifications and may provide
|
||||||
|
additional or different license terms and conditions for use, reproduction, or
|
||||||
|
distribution of Your modifications, or for any such Derivative Works as a whole,
|
||||||
|
provided Your use, reproduction, and distribution of the Work otherwise complies
|
||||||
|
with the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions.
|
||||||
|
|
||||||
|
Unless You explicitly state otherwise, any Contribution intentionally submitted
|
||||||
|
for inclusion in the Work by You to the Licensor shall be under the terms and
|
||||||
|
conditions of this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify the terms of
|
||||||
|
any separate license agreement you may have executed with Licensor regarding
|
||||||
|
such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks.
|
||||||
|
|
||||||
|
This License does not grant permission to use the trade names, trademarks,
|
||||||
|
service marks, or product names of the Licensor, except as required for
|
||||||
|
reasonable and customary use in describing the origin of the Work and
|
||||||
|
reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, Licensor provides the
|
||||||
|
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
|
||||||
|
including, without limitation, any warranties or conditions of TITLE,
|
||||||
|
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
|
||||||
|
solely responsible for determining the appropriateness of using or
|
||||||
|
redistributing the Work and assume any risks associated with Your exercise of
|
||||||
|
permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability.
|
||||||
|
|
||||||
|
In no event and under no legal theory, whether in tort (including negligence),
|
||||||
|
contract, or otherwise, unless required by applicable law (such as deliberate
|
||||||
|
and grossly negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special, incidental,
|
||||||
|
or consequential damages of any character arising as a result of this License or
|
||||||
|
out of the use or inability to use the Work (including but not limited to
|
||||||
|
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
|
||||||
|
any and all other commercial damages or losses), even if such Contributor has
|
||||||
|
been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability.
|
||||||
|
|
||||||
|
While redistributing the Work or Derivative Works thereof, You may choose to
|
||||||
|
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
|
||||||
|
other liability obligations and/or rights consistent with this License. However,
|
||||||
|
in accepting such obligations, You may act only on Your own behalf and on Your
|
||||||
|
sole responsibility, not on behalf of any other Contributor, and only if You
|
||||||
|
agree to indemnify, defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason of your
|
||||||
|
accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following boilerplate
|
||||||
|
notice, with the fields enclosed by brackets "[]" replaced with your own
|
||||||
|
identifying information. (Don't include the brackets!) The text should be
|
||||||
|
enclosed in the appropriate comment syntax for the file format. We also
|
||||||
|
recommend that a file or class name and description of purpose be included on
|
||||||
|
the same "printed page" as the copyright notice for easier identification within
|
||||||
|
third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
|
@ -0,0 +1,9 @@
|
||||||
|
Texgit
|
||||||
|
======
|
||||||
|
|
||||||
|
[](https://ci-jrimum.rhcloud.com)
|
||||||
|
|
||||||
|
O projeto Texgit é um componente e framework em Java que facilita a manipulação de arquivos Flat Files (arquivo-texto) através de objetos.
|
||||||
|
|
||||||
|
Diversas empresas já usam o Texgit em produção e estão colaborando no Design do componente e da API.
|
||||||
|
|
|
@ -0,0 +1,205 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>br.com.rjconsultores</groupId>
|
||||||
|
<artifactId>jrimum-texgit</artifactId>
|
||||||
|
<name>Projeto Texgit</name>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<description>Projeto open source de componentes de software para o domínio de negócios do Brasil.</description>
|
||||||
|
<url>http://www.jrimum.org/texgit</url>
|
||||||
|
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>The Apache Software License, Version 2.0</name>
|
||||||
|
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||||
|
<distribution>repo</distribution>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
|
||||||
|
<organization>
|
||||||
|
<name>Projeto JRimum</name>
|
||||||
|
<url>http://www.jrimum.org</url>
|
||||||
|
</organization>
|
||||||
|
|
||||||
|
<issueManagement>
|
||||||
|
<system>GitHub</system>
|
||||||
|
<url>http://github.com/jrimum/texgit/issues</url>
|
||||||
|
</issueManagement>
|
||||||
|
|
||||||
|
<scm>
|
||||||
|
<url>http://github.com/jrimum/texgit</url>
|
||||||
|
</scm>
|
||||||
|
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<name>Gilmar P. S. L.</name>
|
||||||
|
<email>gilmatryx@gmail.com</email>
|
||||||
|
</developer>
|
||||||
|
<developer>
|
||||||
|
<name>Misael Barreto</name>
|
||||||
|
<email>misaelbarreto@gmail.com</email>
|
||||||
|
</developer>
|
||||||
|
<developer>
|
||||||
|
<name>Rômulo Augusto</name>
|
||||||
|
<email>romulomail@gmail.com</email>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>disable-java8-doclint</id>
|
||||||
|
<activation>
|
||||||
|
<jdk>[1.8,)</jdk>
|
||||||
|
</activation>
|
||||||
|
<properties>
|
||||||
|
<additionalparam>-Xdoclint:none</additionalparam>
|
||||||
|
</properties>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.1</version>
|
||||||
|
<configuration>
|
||||||
|
<source>1.5</source>
|
||||||
|
<target>1.5</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>animal-sniffer-maven-plugin</artifactId>
|
||||||
|
<version>1.6</version>
|
||||||
|
<configuration>
|
||||||
|
<signature>
|
||||||
|
<groupId>org.codehaus.mojo.signature</groupId>
|
||||||
|
<artifactId>java15</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
</signature>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>animal-sniffer</id>
|
||||||
|
<phase>compile</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>check</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<version>2.4</version>
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>src/main/assembly/jrimum-texgit-with-dependencies.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>make-assembly</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>2.16</version>
|
||||||
|
<configuration>
|
||||||
|
<skipTests>false</skipTests>
|
||||||
|
<includes>
|
||||||
|
<include>org/jrimum/texgit/**/*</include>
|
||||||
|
</includes>
|
||||||
|
<excludes>
|
||||||
|
<exclude>org/jrimum/texgit/excludes/**/*</exclude>
|
||||||
|
<exclude>org/jrimum/texgit/**/*$*</exclude> <!-- Exclui classes internas anônimas para evitar erros -->
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
|
<version>2.2.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>attach-sources</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>jar</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
|
<version>2.9.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>attach-javadoc</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>jar</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<charset>UTF-8</charset>
|
||||||
|
<docencoding>UTF-8</docencoding>
|
||||||
|
<docfilessubdirs>true</docfilessubdirs>
|
||||||
|
<show>private</show>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-deploy-plugin</artifactId>
|
||||||
|
<version>2.8.1</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>br.com.rjconsultores</groupId>
|
||||||
|
<artifactId>jrimum-utilix</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>sun-jaxb-rj</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
<version>2.2</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>sun-jaxb-rj</groupId>
|
||||||
|
<artifactId>jaxb-impl</artifactId>
|
||||||
|
<version>2.2</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- Test -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.11</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<distributionManagement>
|
||||||
|
<repository>
|
||||||
|
<id>rj-releases</id>
|
||||||
|
<url>http://52.5.53.15:8081/nexus/content/repositories/releases/</url>
|
||||||
|
</repository>
|
||||||
|
</distributionManagement>
|
||||||
|
</project>
|
|
@ -0,0 +1,27 @@
|
||||||
|
<assembly
|
||||||
|
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
|
||||||
|
<id>examples</id>
|
||||||
|
<formats>
|
||||||
|
<format>zip</format>
|
||||||
|
</formats>
|
||||||
|
<fileSets>
|
||||||
|
<fileSet>
|
||||||
|
<directory>src/examples/java</directory>
|
||||||
|
<useDefaultExcludes>true</useDefaultExcludes>
|
||||||
|
<outputDirectory>/</outputDirectory>
|
||||||
|
<includes>
|
||||||
|
<include>**/*.java</include>
|
||||||
|
</includes>
|
||||||
|
</fileSet>
|
||||||
|
<fileSet>
|
||||||
|
<directory>src/examples/resources</directory>
|
||||||
|
<useDefaultExcludes>true</useDefaultExcludes>
|
||||||
|
<outputDirectory>/resources</outputDirectory>
|
||||||
|
<includes>
|
||||||
|
<include>**/**</include>
|
||||||
|
</includes>
|
||||||
|
</fileSet>
|
||||||
|
</fileSets>
|
||||||
|
</assembly>
|
|
@ -0,0 +1,24 @@
|
||||||
|
<assembly
|
||||||
|
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
|
||||||
|
<id>dep</id>
|
||||||
|
<formats>
|
||||||
|
<format>jar</format>
|
||||||
|
</formats>
|
||||||
|
<includeBaseDirectory>false</includeBaseDirectory>
|
||||||
|
<dependencySets>
|
||||||
|
<dependencySet>
|
||||||
|
<outputDirectory>/</outputDirectory>
|
||||||
|
<useProjectArtifact>true</useProjectArtifact>
|
||||||
|
<unpack>true</unpack>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
<excludes>
|
||||||
|
<exclude>commons-lang:commons-lang</exclude>
|
||||||
|
<exclude>log4j:log4j</exclude>
|
||||||
|
<exclude>sun-jaxb:jaxb-api</exclude>
|
||||||
|
<exclude>sun-jaxb:jaxb-impl</exclude>
|
||||||
|
</excludes>
|
||||||
|
</dependencySet>
|
||||||
|
</dependencySets>
|
||||||
|
</assembly>
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* @param <G>
|
||||||
|
*/
|
||||||
|
public interface FlatFile<G extends Record> extends TextListStream {
|
||||||
|
|
||||||
|
// Registros individuais
|
||||||
|
|
||||||
|
public G createRecord(String idType);
|
||||||
|
|
||||||
|
public FlatFile<G> addRecord(G record);
|
||||||
|
|
||||||
|
public G getRecord(String idName);
|
||||||
|
|
||||||
|
public G removeRecord(String idName);
|
||||||
|
|
||||||
|
// Grupos de Registros (Registros que se repetem)
|
||||||
|
|
||||||
|
public FlatFile<G> addRecords(String idName, Collection<G> records);
|
||||||
|
|
||||||
|
public FlatFile<G> setRecords(String idName, Collection<G> records);
|
||||||
|
|
||||||
|
public Collection<G> getRecords(String idName);
|
||||||
|
|
||||||
|
// Todos os Registros
|
||||||
|
|
||||||
|
public FlatFile<G> addAllRecords(Collection<G> records);
|
||||||
|
|
||||||
|
public FlatFile<G> setAllRecords(Collection<G> records);
|
||||||
|
|
||||||
|
public Collection<G> getAllRecords();
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 30/03/2008 - 18:17:10
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 30/03/2008 - 18:17:10
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jrimum.texgit;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Interface genérica e representativa de coisas que necessitam de operações de
|
||||||
|
* fluxo de escrita e leitura.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author <a href=http://gilmatryx.googlepages.com/>Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*
|
||||||
|
* @version 0.2
|
||||||
|
*/
|
||||||
|
public interface ReadWriteStream<G> extends Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Escreve o tipo infomado.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @return Um valor no mesmo tipo do tipo parametrizado
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
G write();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Lê o tipo informado.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param g - Valor a ser lido
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
void read(G g);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface Record extends TextStream {
|
||||||
|
|
||||||
|
public <G> Record setValue(String fieldName, G value);
|
||||||
|
|
||||||
|
public <G> G getValue(String fieldName);
|
||||||
|
|
||||||
|
public Record addInnerRecord(Record record);
|
||||||
|
|
||||||
|
public List<Record> getInnerRecords();
|
||||||
|
}
|
|
@ -0,0 +1,126 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit;
|
||||||
|
|
||||||
|
import static org.apache.commons.lang.StringUtils.isNotBlank;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.engine.TexgitManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public final class Texgit {
|
||||||
|
|
||||||
|
public static final FlatFile<Record> createFlatFile(String xmlDefFilePath)
|
||||||
|
throws TexgitException {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if (isNotBlank(xmlDefFilePath))
|
||||||
|
return createFlatFile(new File(xmlDefFilePath));
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new TexgitException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final FlatFile<Record> createFlatFile(File xmlDefFile)
|
||||||
|
throws TexgitException {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if (isNotNull(xmlDefFile)) {
|
||||||
|
|
||||||
|
return createFlatFile(new FileInputStream(xmlDefFile));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new TexgitException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final FlatFile<Record> createFlatFile(URL xmlDefUrl)
|
||||||
|
throws TexgitException {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if (isNotNull(xmlDefUrl)) {
|
||||||
|
|
||||||
|
return TexgitManager.buildFlatFile(xmlDefUrl.openStream());
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new TexgitException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final FlatFile<Record> createFlatFile(byte[] xmlDefBytes)
|
||||||
|
throws TexgitException {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if (isNotNull(xmlDefBytes)) {
|
||||||
|
|
||||||
|
return TexgitManager.buildFlatFile(new ByteArrayInputStream(xmlDefBytes));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new TexgitException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final FlatFile<Record> createFlatFile(InputStream xmlDefStream)
|
||||||
|
throws TexgitException {
|
||||||
|
|
||||||
|
if (isNotNull(xmlDefStream)) {
|
||||||
|
|
||||||
|
return TexgitManager.buildFlatFile(xmlDefStream);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Invólucro para exceções ocorridas no componente.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class TexgitException extends RuntimeException {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public TexgitException() {
|
||||||
|
super();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param arg0
|
||||||
|
* @param arg1
|
||||||
|
*/
|
||||||
|
public TexgitException(String arg0, Throwable arg1) {
|
||||||
|
super(arg0, arg1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param arg0
|
||||||
|
*/
|
||||||
|
public TexgitException(String arg0) {
|
||||||
|
super(arg0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param arg0
|
||||||
|
*/
|
||||||
|
public TexgitException(Throwable arg0) {
|
||||||
|
super(arg0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface TextListStream extends ReadWriteStream<List<String>> {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 30/03/2008 - 18:17:20
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 30/03/2008 - 18:17:20
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jrimum.texgit;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Interface usada para objetos com serviços de leitura e escrita de textos.</p>
|
||||||
|
*
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L</a>
|
||||||
|
* @author <a href="mailto:misaelbarreto@gmail.com">Misael Barreto</a>
|
||||||
|
* @author <a href="mailto:romulomail@gmail.com">Rômulo Augusto</a>
|
||||||
|
* @author <a href="http://www.nordestefomento.com.br">Nordeste Fomento
|
||||||
|
* Mercantil</a>
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*
|
||||||
|
* @version 0.2
|
||||||
|
*/
|
||||||
|
public interface TextStream extends ReadWriteStream<String> {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,263 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.engine;
|
||||||
|
|
||||||
|
import static org.apache.commons.lang.StringUtils.EMPTY;
|
||||||
|
import static org.apache.commons.lang.StringUtils.countMatches;
|
||||||
|
import static org.apache.commons.lang.StringUtils.isNotBlank;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.text.Format;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.TexgitException;
|
||||||
|
import org.jrimum.texgit.language.EnumFormats;
|
||||||
|
import org.jrimum.texgit.language.EnumFormatsTypes;
|
||||||
|
import org.jrimum.texgit.language.MetaField;
|
||||||
|
import org.jrimum.texgit.type.Filler;
|
||||||
|
import org.jrimum.texgit.type.component.Fillers;
|
||||||
|
import org.jrimum.texgit.type.component.FixedField;
|
||||||
|
import org.jrimum.texgit.type.component.Side;
|
||||||
|
import org.jrimum.utilix.Dates;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class FixedFieldBuilder {
|
||||||
|
|
||||||
|
private final static String BASE_DECIMAL_FORMAT = "0.";
|
||||||
|
|
||||||
|
static FixedField<?> build(MetaField metaField) {
|
||||||
|
|
||||||
|
FixedField<?> fixedField = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
fixedField = getInstance(metaField);
|
||||||
|
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new TexgitException("Field: " + metaField.getName(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fixedField;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static FixedField<?> getInstance(MetaField metaField)
|
||||||
|
throws ParseException {
|
||||||
|
|
||||||
|
FixedField<?> fField = null;
|
||||||
|
|
||||||
|
Format formatter = getFormater(metaField);
|
||||||
|
|
||||||
|
switch (metaField.getType()) {
|
||||||
|
|
||||||
|
case CHARACTER:
|
||||||
|
FixedField<Character> fCHR = new FixedField<Character>();
|
||||||
|
if (isNotBlank(metaField.getValue()))
|
||||||
|
if(metaField.getValue().length() == 1)
|
||||||
|
fCHR.setValue(metaField.getValue().charAt(0));
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException("Tipo character deve ter apenas 1!");
|
||||||
|
else
|
||||||
|
fCHR.setValue(' ');
|
||||||
|
fField = fCHR;
|
||||||
|
break;
|
||||||
|
case STRING:
|
||||||
|
FixedField<String> fSTR = new FixedField<String>();
|
||||||
|
if (isNotBlank(metaField.getValue()))
|
||||||
|
fSTR.setValue(metaField.getValue());
|
||||||
|
else
|
||||||
|
fSTR.setValue(EMPTY);
|
||||||
|
fField = fSTR;
|
||||||
|
break;
|
||||||
|
case INTEGER:
|
||||||
|
FixedField<Integer> fINT = new FixedField<Integer>();
|
||||||
|
if (isNotBlank(metaField.getValue()))
|
||||||
|
fINT.setValue(Integer.parseInt(metaField.getValue()));
|
||||||
|
else
|
||||||
|
fINT.setValue(Integer.valueOf(0));
|
||||||
|
fField = fINT;
|
||||||
|
break;
|
||||||
|
case LONG:
|
||||||
|
FixedField<Long> fLNG = new FixedField<Long>();
|
||||||
|
if (isNotBlank(metaField.getValue()))
|
||||||
|
fLNG.setValue(Long.parseLong(metaField.getValue()));
|
||||||
|
else
|
||||||
|
fLNG.setValue(Long.valueOf(0));
|
||||||
|
fField = fLNG;
|
||||||
|
break;
|
||||||
|
case FLOAT:
|
||||||
|
FixedField<Float> fFLT = new FixedField<Float>();
|
||||||
|
if (isNotBlank(metaField.getValue()))
|
||||||
|
fFLT.setValue(Float.parseFloat(metaField.getValue()));
|
||||||
|
else
|
||||||
|
fFLT.setValue(Float.valueOf(0));
|
||||||
|
fField = fFLT;
|
||||||
|
break;
|
||||||
|
case DOUBLE:
|
||||||
|
FixedField<Double> fDBE = new FixedField<Double>();
|
||||||
|
if (isNotBlank(metaField.getValue()))
|
||||||
|
fDBE.setValue(Double.parseDouble(metaField.getValue()));
|
||||||
|
else
|
||||||
|
fDBE.setValue(Double.valueOf(0));
|
||||||
|
fField = fDBE;
|
||||||
|
break;
|
||||||
|
case BIGDECIMAL:
|
||||||
|
FixedField<BigDecimal> fBDL = new FixedField<BigDecimal>();
|
||||||
|
if (isNotBlank(metaField.getValue()))
|
||||||
|
fBDL.setValue(new BigDecimal(DecimalFormat.class
|
||||||
|
.cast(formatter).parse(metaField.getValue())
|
||||||
|
.doubleValue()));
|
||||||
|
else
|
||||||
|
fBDL.setValue(BigDecimal.ZERO);
|
||||||
|
fField = fBDL;
|
||||||
|
break;
|
||||||
|
case DATE:
|
||||||
|
FixedField<Date> fDTE = new FixedField<Date>();
|
||||||
|
if (isNotBlank(metaField.getValue())){
|
||||||
|
|
||||||
|
fDTE.setValue(DateFormat.class.cast(formatter).parse(
|
||||||
|
metaField.getValue()));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
|
||||||
|
fDTE.setValue(Dates.invalidDate());
|
||||||
|
}
|
||||||
|
fField = fDTE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
fField.setName(metaField.getName());
|
||||||
|
fField.setFixedLength(metaField.getLength());
|
||||||
|
fField.setFiller(getFiller(metaField));
|
||||||
|
fField.setBlankAccepted(metaField.isBlankAccepted());
|
||||||
|
fField.setTruncate(metaField.isTruncate());
|
||||||
|
|
||||||
|
if(isNotNull(formatter))
|
||||||
|
fField.setFormatter(formatter);
|
||||||
|
|
||||||
|
return fField;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Filler getFiller(MetaField metaField) {
|
||||||
|
|
||||||
|
Filler filler = null;
|
||||||
|
|
||||||
|
if (isNotNull(metaField.getFiller())) {
|
||||||
|
|
||||||
|
org.jrimum.texgit.type.component.Filler<String> filr = new org.jrimum.texgit.type.component.Filler<String>();
|
||||||
|
filr.setPadding(metaField.getFiller().getPadding());
|
||||||
|
filr.setSideToFill(Side.valueOf(metaField.getFiller()
|
||||||
|
.getSideToFill().name()));
|
||||||
|
filler = filr;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
filler = Fillers.valueOf(metaField.getPadding().name());
|
||||||
|
}
|
||||||
|
|
||||||
|
return filler;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Format getFormater(MetaField metaField) {
|
||||||
|
|
||||||
|
Format formatter = null;
|
||||||
|
|
||||||
|
if (isNotNull(metaField.getFormatter())) {
|
||||||
|
|
||||||
|
formatter = buildFormat(metaField.getFormatter().getFormat(),
|
||||||
|
metaField.getFormatter().getType());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if(isNotNull(metaField.getFormat())){
|
||||||
|
|
||||||
|
EnumFormats format = metaField.getFormat();
|
||||||
|
|
||||||
|
EnumFormatsTypes type = EnumFormatsTypes.valueOf(format.name()
|
||||||
|
.split("_")[0]);
|
||||||
|
|
||||||
|
formatter = buildFormat(buildFormat(format, type), type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return formatter;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Format buildFormat(String strFormat, EnumFormatsTypes type) {
|
||||||
|
|
||||||
|
Format format = null;
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
|
||||||
|
case DATE:
|
||||||
|
format = new SimpleDateFormat(strFormat);
|
||||||
|
break;
|
||||||
|
case DECIMAL:
|
||||||
|
format = new DecimalFormat(strFormat);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return format;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String buildFormat(EnumFormats format, EnumFormatsTypes type) {
|
||||||
|
|
||||||
|
String strFormat = EMPTY;
|
||||||
|
/*
|
||||||
|
* DATE_DDMMYY, DATE_DDMMYYYY, DATE_YYMMDD, DATE_YYYYMMDD,
|
||||||
|
* DECIMAL_D,DECIMAL_DD, DECIMAL_DDD, DECIMAL_DDDD;
|
||||||
|
*/
|
||||||
|
String defFormat = format.name().split("_")[1];
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case DATE:
|
||||||
|
|
||||||
|
defFormat = defFormat.replaceAll("D", "d");
|
||||||
|
strFormat = defFormat.replaceAll("Y", "y");
|
||||||
|
|
||||||
|
break;
|
||||||
|
case DECIMAL:
|
||||||
|
|
||||||
|
int lengthToFill = BASE_DECIMAL_FORMAT.length()
|
||||||
|
+ countMatches(defFormat, "D");
|
||||||
|
|
||||||
|
strFormat = Fillers.ZERO_RIGHT.fill(
|
||||||
|
BASE_DECIMAL_FORMAT, lengthToFill);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return strFormat;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,82 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.engine;
|
||||||
|
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.language.MetaFlatFile;
|
||||||
|
import org.jrimum.texgit.language.MetaRecord;
|
||||||
|
import org.jrimum.texgit.type.component.FlatFile;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class FlatFileBuilder {
|
||||||
|
|
||||||
|
static FlatFile build(MetaFlatFile mFlatFile) {
|
||||||
|
|
||||||
|
FlatFile ff = null;
|
||||||
|
|
||||||
|
List<MetaRecord> metaRecords = mFlatFile.getGroupOfRecords().getRecords();
|
||||||
|
|
||||||
|
ff = new FlatFile(new RecordFactory(metaRecords));
|
||||||
|
|
||||||
|
Set<String> repitables = new HashSet<String>();
|
||||||
|
|
||||||
|
List<String> recordsOrder = new ArrayList<String>();
|
||||||
|
|
||||||
|
if (isNotNull(metaRecords)) {
|
||||||
|
|
||||||
|
if (!metaRecords.isEmpty()) {
|
||||||
|
|
||||||
|
for (MetaRecord mRec : metaRecords) {
|
||||||
|
|
||||||
|
recordsOrder.add(mRec.getName());
|
||||||
|
|
||||||
|
if (mRec.isRepeatable())
|
||||||
|
repitables.add(mRec.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ff.setRecordsOrder(recordsOrder);
|
||||||
|
ff.setRepitablesRecords(repitables);
|
||||||
|
|
||||||
|
return ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,137 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.engine;
|
||||||
|
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
import static org.jrimum.utilix.Objects.isNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.language.MetaField;
|
||||||
|
import org.jrimum.texgit.language.MetaOrderedField;
|
||||||
|
import org.jrimum.texgit.language.MetaRecord;
|
||||||
|
import org.jrimum.texgit.type.component.FixedField;
|
||||||
|
import org.jrimum.texgit.type.component.Record;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class RecordBuilder {
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
static Record build(MetaRecord metaRecord) {
|
||||||
|
|
||||||
|
int strLength = getStringLength(metaRecord.getGroupOfFields().getFields());
|
||||||
|
int fldSize = metaRecord.getGroupOfFields().getFields().size();
|
||||||
|
|
||||||
|
MetaOrderedField id = metaRecord.getGroupOfFields().getIdType();
|
||||||
|
MetaOrderedField sequencialNumber = metaRecord.getGroupOfFields().getSequencialNumber();
|
||||||
|
|
||||||
|
if(isNotNull(id)){
|
||||||
|
fldSize += 1;
|
||||||
|
strLength += id.getLength();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isNotNull(sequencialNumber)){
|
||||||
|
fldSize += 1;
|
||||||
|
strLength += sequencialNumber.getLength();
|
||||||
|
}
|
||||||
|
|
||||||
|
Record record = new Record(strLength,fldSize);
|
||||||
|
|
||||||
|
record.setName(metaRecord.getName());
|
||||||
|
record.setDescription(metaRecord.getDescription());
|
||||||
|
|
||||||
|
/*
|
||||||
|
* getPossition eh de 1 a X
|
||||||
|
* e nao de 0 a X.
|
||||||
|
*/
|
||||||
|
if(isNotNull(id)){
|
||||||
|
record.setIdType((FixedField<String>) FixedFieldBuilder.build(id));
|
||||||
|
record.set(id.getPosition()-1, record.getIdType());
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isNotNull(sequencialNumber)){
|
||||||
|
record.setSequencialNumber((FixedField<Long>) FixedFieldBuilder.build(sequencialNumber));
|
||||||
|
record.set(sequencialNumber.getPosition()-1,record.getSequencialNumber());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MetaField> fields = metaRecord.getGroupOfFields().getFields();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* As somas sao para caso id ou sequencia jah
|
||||||
|
* estejam na devida posicao.
|
||||||
|
*/
|
||||||
|
for(MetaField mField : fields){
|
||||||
|
|
||||||
|
if(isNull(record.get(fields.indexOf(mField))))
|
||||||
|
record.set(fields.indexOf(mField), FixedFieldBuilder.build(mField));
|
||||||
|
else
|
||||||
|
if(isNull(record.get(fields.indexOf(mField)+1)))
|
||||||
|
record.set(fields.indexOf(mField) + 1, FixedFieldBuilder.build(mField));
|
||||||
|
else
|
||||||
|
record.set(fields.indexOf(mField) + 2, FixedFieldBuilder.build(mField));
|
||||||
|
}
|
||||||
|
|
||||||
|
// innerRecords
|
||||||
|
if (isNotNull(metaRecord.getGroupOfInnerRecords())){
|
||||||
|
|
||||||
|
record.setHeadOfGroup(true);
|
||||||
|
record.setDeclaredInnerRecords(new ArrayList<String>(metaRecord.getGroupOfInnerRecords().getRecords().size()));
|
||||||
|
record.setRepitablesRecords(new HashSet<String>());
|
||||||
|
|
||||||
|
List<MetaRecord> metaInnerRecords = metaRecord.getGroupOfInnerRecords().getRecords();
|
||||||
|
|
||||||
|
for(MetaRecord mRecord : metaInnerRecords){
|
||||||
|
record.getDeclaredInnerRecords().add(mRecord.getName());
|
||||||
|
if(mRecord.isRepeatable())
|
||||||
|
record.getRepitablesRecords().add(mRecord.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
}else
|
||||||
|
record.setHeadOfGroup(false);
|
||||||
|
|
||||||
|
return record;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int getStringLength(List<MetaField> fields){
|
||||||
|
int length = 0;
|
||||||
|
|
||||||
|
for(MetaField mField : fields)
|
||||||
|
length += mField.getLength();
|
||||||
|
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.engine;
|
||||||
|
|
||||||
|
import static org.apache.commons.lang.StringUtils.isNotBlank;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.language.MetaRecord;
|
||||||
|
import org.jrimum.texgit.type.component.Record;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class RecordFactory implements org.jrimum.texgit.type.component.RecordFactory<Record> {
|
||||||
|
|
||||||
|
private Map<String, MetaRecord> name_record;
|
||||||
|
|
||||||
|
RecordFactory(List<MetaRecord> metaRecords) {
|
||||||
|
|
||||||
|
if (isNotNull(metaRecords)) {
|
||||||
|
if (!metaRecords.isEmpty()) {
|
||||||
|
|
||||||
|
name_record = new HashMap<String, MetaRecord>(metaRecords
|
||||||
|
.size());
|
||||||
|
|
||||||
|
for (MetaRecord mRecord : metaRecords) {
|
||||||
|
|
||||||
|
name_record.put(mRecord.getName(), mRecord);
|
||||||
|
|
||||||
|
if (isNotNull(mRecord.getGroupOfInnerRecords()))
|
||||||
|
loadInnerRecords(name_record, mRecord
|
||||||
|
.getGroupOfInnerRecords().getRecords());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadInnerRecords(Map<String, MetaRecord> name_record,
|
||||||
|
List<MetaRecord> innerMetaRecords) {
|
||||||
|
|
||||||
|
if (isNotNull(innerMetaRecords)) {
|
||||||
|
if (!innerMetaRecords.isEmpty()) {
|
||||||
|
|
||||||
|
for (MetaRecord iMetaRecord : innerMetaRecords) {
|
||||||
|
|
||||||
|
name_record.put(iMetaRecord.getName(), iMetaRecord);
|
||||||
|
|
||||||
|
if (isNotNull(iMetaRecord.getGroupOfInnerRecords()))
|
||||||
|
loadInnerRecords(name_record, iMetaRecord
|
||||||
|
.getGroupOfInnerRecords().getRecords());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Record create(String name) {
|
||||||
|
|
||||||
|
Record record = null;
|
||||||
|
|
||||||
|
if (isNotBlank(name))
|
||||||
|
if (name_record.containsKey(name))
|
||||||
|
record = RecordBuilder.build(name_record.get(name));
|
||||||
|
|
||||||
|
return record;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.engine;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.TexgitException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class TexgitLanguageException extends TexgitException {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public TexgitLanguageException() {
|
||||||
|
super();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param arg0
|
||||||
|
* @param arg1
|
||||||
|
*/
|
||||||
|
public TexgitLanguageException(String arg0, Throwable arg1) {
|
||||||
|
super(arg0, arg1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param arg0
|
||||||
|
*/
|
||||||
|
public TexgitLanguageException(String arg0) {
|
||||||
|
super(arg0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param arg0
|
||||||
|
*/
|
||||||
|
public TexgitLanguageException(Throwable arg0) {
|
||||||
|
super(arg0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.engine;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.FlatFile;
|
||||||
|
import org.jrimum.texgit.Record;
|
||||||
|
import org.jrimum.texgit.TexgitException;
|
||||||
|
import org.jrimum.texgit.language.MetaTexgit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class TexgitManager {
|
||||||
|
|
||||||
|
public static FlatFile<org.jrimum.texgit.Record> buildFlatFile(InputStream xmlDefStream) {
|
||||||
|
|
||||||
|
FlatFile<Record> iFlatFile = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
MetaTexgit tgMeta = TexgitXmlReader.parse(xmlDefStream);
|
||||||
|
|
||||||
|
iFlatFile = FlatFileBuilder.build(tgMeta.getFlatFile());
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new TexgitException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return iFlatFile;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.engine;
|
||||||
|
|
||||||
|
import javax.xml.bind.ValidationEvent;
|
||||||
|
import javax.xml.bind.ValidationEventHandler;
|
||||||
|
import javax.xml.bind.ValidationEventLocator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class TexgitSchemaValidator implements ValidationEventHandler {
|
||||||
|
|
||||||
|
public boolean handleEvent(ValidationEvent event) {
|
||||||
|
|
||||||
|
boolean handled = false;
|
||||||
|
|
||||||
|
if (event.getSeverity() == ValidationEvent.WARNING) {
|
||||||
|
|
||||||
|
System.err.println(getMensagem("ATENÇÃO LAYOUT INCONSISTENTE!\n",
|
||||||
|
event));
|
||||||
|
|
||||||
|
handled = true;
|
||||||
|
|
||||||
|
} else
|
||||||
|
// ERROR
|
||||||
|
System.err.println(getMensagem("ERRO NO LAYOUT!\n", event));
|
||||||
|
|
||||||
|
return handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getMensagem(String msg, ValidationEvent event) {
|
||||||
|
|
||||||
|
ValidationEventLocator local = event.getLocator();
|
||||||
|
|
||||||
|
return msg +
|
||||||
|
|
||||||
|
"Linha { " + local.getLineNumber() + " } " + "Conluna [ "
|
||||||
|
+ local.getColumnNumber() + " ] " + event.getMessage();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.engine;
|
||||||
|
|
||||||
|
import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
import javax.xml.bind.JAXBContext;
|
||||||
|
import javax.xml.bind.JAXBException;
|
||||||
|
import javax.xml.bind.Unmarshaller;
|
||||||
|
import javax.xml.validation.Schema;
|
||||||
|
import javax.xml.validation.SchemaFactory;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.Texgit;
|
||||||
|
import org.jrimum.texgit.TexgitException;
|
||||||
|
import org.jrimum.texgit.language.MetaTexgit;
|
||||||
|
import org.jrimum.utilix.ClassLoaders;
|
||||||
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class TexgitXmlReader {
|
||||||
|
|
||||||
|
public static MetaTexgit parse(InputStream xmlDefStream) throws TexgitException {
|
||||||
|
|
||||||
|
MetaTexgit txg = null;
|
||||||
|
|
||||||
|
if (isNotNull(xmlDefStream)) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
JAXBContext aJaxbContext = JAXBContext
|
||||||
|
.newInstance(MetaTexgit.class);
|
||||||
|
|
||||||
|
Unmarshaller aUnmarshaller = aJaxbContext.createUnmarshaller();
|
||||||
|
|
||||||
|
SchemaFactory aSchemaFactory = SchemaFactory
|
||||||
|
.newInstance(W3C_XML_SCHEMA_NS_URI);
|
||||||
|
|
||||||
|
Schema schema = aSchemaFactory.newSchema(ClassLoaders.getResource("TexgitSchema.xsd",Texgit.class));
|
||||||
|
|
||||||
|
aUnmarshaller.setSchema(schema);
|
||||||
|
|
||||||
|
aUnmarshaller.setEventHandler(new TexgitSchemaValidator());
|
||||||
|
|
||||||
|
txg = (MetaTexgit) aUnmarshaller.unmarshal(xmlDefStream);
|
||||||
|
|
||||||
|
} catch (SAXException e) {
|
||||||
|
|
||||||
|
throw new TexgitLanguageException(e);
|
||||||
|
|
||||||
|
} catch (JAXBException e) {
|
||||||
|
|
||||||
|
throw new TexgitLanguageException(e);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return txg;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,86 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Formatos pr<EFBFBD> definidos suportados pelo componente.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Java class for enumFormats.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The following schema fragment specifies the expected content contained within
|
||||||
|
* this class.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <simpleType name="enumFormats">
|
||||||
|
* <restriction base="{http://www.w3.org/2001/XMLSchema}string">
|
||||||
|
* <enumeration value="DATE_DDMMYY"/>
|
||||||
|
* <enumeration value="DATE_DDMMYYYY"/>
|
||||||
|
* <enumeration value="DATE_YYMMDD"/>
|
||||||
|
* <enumeration value="DATE_YYYYMMDD"/>
|
||||||
|
* <enumeration value="DECIMAL_D"/>
|
||||||
|
* <enumeration value="DECIMAL_DD"/>
|
||||||
|
* <enumeration value="DECIMAL_DDD"/>
|
||||||
|
* <enumeration value="DECIMAL_DDDD"/>
|
||||||
|
* </restriction>
|
||||||
|
* </simpleType>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlEnum
|
||||||
|
public enum EnumFormats {
|
||||||
|
|
||||||
|
DATE_DDMMYY, DATE_DDMMYYYY, DATE_YYMMDD, DATE_YYYYMMDD, DECIMAL_D, DECIMAL_DD, DECIMAL_DDD, DECIMAL_DDDD;
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EnumFormats fromValue(String v) {
|
||||||
|
return valueOf(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Tipo de formatadores suportados. Usados junto a defini<EFBFBD><EFBFBD>o de novos
|
||||||
|
* formatadores.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Java class for enumFormatsTypes.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The following schema fragment specifies the expected content contained within
|
||||||
|
* this class.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <simpleType name="enumFormatsTypes">
|
||||||
|
* <restriction base="{http://www.w3.org/2001/XMLSchema}string">
|
||||||
|
* <enumeration value="DATE"/>
|
||||||
|
* <enumeration value="DECIMAL"/>
|
||||||
|
* </restriction>
|
||||||
|
* </simpleType>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlEnum
|
||||||
|
public enum EnumFormatsTypes {
|
||||||
|
|
||||||
|
DATE, DECIMAL;
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EnumFormatsTypes fromValue(String v) {
|
||||||
|
return valueOf(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,82 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Preenchimentos suportados por padr<EFBFBD>o pelo componente.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Java class for enumPaddings.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The following schema fragment specifies the expected content contained within
|
||||||
|
* this class.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <simpleType name="enumPaddings">
|
||||||
|
* <restriction base="{http://www.w3.org/2001/XMLSchema}string">
|
||||||
|
* <enumeration value="ZERO_RIGHT"/>
|
||||||
|
* <enumeration value="ZERO_LEFT"/>
|
||||||
|
* <enumeration value="WHITE_SPACE_RIGHT"/>
|
||||||
|
* <enumeration value="WHITE_SPACE_LEFT"/>
|
||||||
|
* </restriction>
|
||||||
|
* </simpleType>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlEnum
|
||||||
|
public enum EnumPaddings {
|
||||||
|
|
||||||
|
ZERO_RIGHT, ZERO_LEFT, WHITE_SPACE_RIGHT, WHITE_SPACE_LEFT;
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EnumPaddings fromValue(String v) {
|
||||||
|
return valueOf(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Basicamente s<EFBFBD>o defini<EFBFBD><EFBFBD>es de dire<EFBFBD><EFBFBD>es de escrita e leitura.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Java class for enumSide.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The following schema fragment specifies the expected content contained within
|
||||||
|
* this class.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <simpleType name="enumSide">
|
||||||
|
* <restriction base="{http://www.w3.org/2001/XMLSchema}string">
|
||||||
|
* <enumeration value="LEFT"/>
|
||||||
|
* <enumeration value="RIGHT"/>
|
||||||
|
* </restriction>
|
||||||
|
* </simpleType>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlEnum
|
||||||
|
public enum EnumSide {
|
||||||
|
|
||||||
|
LEFT, RIGHT;
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EnumSide fromValue(String v) {
|
||||||
|
return valueOf(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,87 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Tipos usados para obten<EFBFBD><EFBFBD>o dos campos de texto para java. No caso representa
|
||||||
|
* os tipos java poss<EFBFBD>veis para um campo.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Java class for enumTypes.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The following schema fragment specifies the expected content contained within
|
||||||
|
* this class.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <simpleType name="enumTypes">
|
||||||
|
* <restriction base="{http://www.w3.org/2001/XMLSchema}string">
|
||||||
|
* <enumeration value="CHARACTER"/>
|
||||||
|
* <enumeration value="STRING"/>
|
||||||
|
* <enumeration value="INTEGER"/>
|
||||||
|
* <enumeration value="LONG"/>
|
||||||
|
* <enumeration value="FLOAT"/>
|
||||||
|
* <enumeration value="DOUBLE"/>
|
||||||
|
* <enumeration value="BIGDECIMAL"/>
|
||||||
|
* <enumeration value="DATE"/>
|
||||||
|
* </restriction>
|
||||||
|
* </simpleType>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlEnum
|
||||||
|
public enum EnumTypes {
|
||||||
|
|
||||||
|
CHARACTER, STRING, INTEGER, LONG, FLOAT, DOUBLE, BIGDECIMAL, DATE;
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EnumTypes fromValue(String v) {
|
||||||
|
return valueOf(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,309 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Field <EFBFBD> a unidade b<EFBFBD>sica de informa<EFBFBD><EFBFBD>o de um registro, um field est<EFBFBD> para um
|
||||||
|
* registro assim como uma coluna de banco de dados est<EFBFBD> para uma tabela.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaField", propOrder = {
|
||||||
|
|
||||||
|
})
|
||||||
|
public class MetaField {
|
||||||
|
|
||||||
|
@XmlElement(name = "Filler")
|
||||||
|
protected MetaFiller filler;
|
||||||
|
@XmlElement(name = "Formatter")
|
||||||
|
protected MetaFormatter formatter;
|
||||||
|
@XmlAttribute
|
||||||
|
protected Boolean blankAccepted;
|
||||||
|
@XmlAttribute
|
||||||
|
protected Boolean truncate;
|
||||||
|
@XmlAttribute
|
||||||
|
protected EnumFormats format;
|
||||||
|
@XmlAttribute(required = true)
|
||||||
|
protected int length;
|
||||||
|
@XmlAttribute(required = true)
|
||||||
|
protected String name;
|
||||||
|
@XmlAttribute
|
||||||
|
protected EnumPaddings padding;
|
||||||
|
@XmlAttribute
|
||||||
|
protected EnumTypes type;
|
||||||
|
@XmlAttribute
|
||||||
|
protected String value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the filler property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link MetaFiller }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaFiller getFiller() {
|
||||||
|
return filler;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the filler property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link MetaFiller }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setFiller(MetaFiller value) {
|
||||||
|
this.filler = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the formatter property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link MetaFormatter }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaFormatter getFormatter() {
|
||||||
|
return formatter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the formatter property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link MetaFormatter }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setFormatter(MetaFormatter value) {
|
||||||
|
this.formatter = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the blankAccepted property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link Boolean }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public boolean isBlankAccepted() {
|
||||||
|
if (blankAccepted == null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return blankAccepted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the blankAccepted property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link Boolean }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setBlankAccepted(Boolean value) {
|
||||||
|
this.blankAccepted = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the truncate property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link Boolean }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public boolean isTruncate() {
|
||||||
|
if (truncate == null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return truncate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the blankAccepted property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link Boolean }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setTruncate(Boolean value) {
|
||||||
|
this.truncate = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the format property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link EnumFormats }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public EnumFormats getFormat() {
|
||||||
|
return format;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the format property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link EnumFormats }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setFormat(EnumFormats value) {
|
||||||
|
this.format = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the length property.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public int getLength() {
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the length property.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setLength(int value) {
|
||||||
|
this.length = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the name property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the name property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setName(String value) {
|
||||||
|
this.name = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the padding property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link EnumPaddings }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public EnumPaddings getPadding() {
|
||||||
|
if (padding == null) {
|
||||||
|
return EnumPaddings.WHITE_SPACE_RIGHT;
|
||||||
|
} else {
|
||||||
|
return padding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the padding property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link EnumPaddings }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setPadding(EnumPaddings value) {
|
||||||
|
this.padding = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the type property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link EnumTypes }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public EnumTypes getType() {
|
||||||
|
if (type == null) {
|
||||||
|
return EnumTypes.STRING;
|
||||||
|
} else {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the type property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link EnumTypes }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setType(EnumTypes value) {
|
||||||
|
this.type = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the value property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getValue() {
|
||||||
|
if (value == null) {
|
||||||
|
return " ";
|
||||||
|
} else {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the value property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setValue(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,113 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.type.component.Side;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Instrumento utilizado para preencher um field com um formato e caracteres pr<EFBFBD>
|
||||||
|
* definidos.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaFiller")
|
||||||
|
public class MetaFiller {
|
||||||
|
|
||||||
|
@XmlAttribute(required = true)
|
||||||
|
protected String padding;
|
||||||
|
@XmlAttribute
|
||||||
|
protected EnumSide sideToFill;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the padding property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getPadding() {
|
||||||
|
return padding;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the padding property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setPadding(String value) {
|
||||||
|
this.padding = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the sideToFill property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link Side }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public EnumSide getSideToFill() {
|
||||||
|
if (sideToFill == null) {
|
||||||
|
return EnumSide.LEFT;
|
||||||
|
} else {
|
||||||
|
return sideToFill;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the sideToFill property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link Side }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setSideToFill(EnumSide value) {
|
||||||
|
this.sideToFill = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,106 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Flat File <EFBFBD> um tipo de arquivo texto com informa<EFBFBD><EFBFBD>es estruturadas com base em
|
||||||
|
* formata<EFBFBD><EFBFBD>es e estruturas pr<EFBFBD> definidas. veja mais em (link).
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaFlatFile", propOrder = { "layout", "groupOfRecords" })
|
||||||
|
public class MetaFlatFile {
|
||||||
|
|
||||||
|
protected MetaLayout layout;
|
||||||
|
@XmlElement(name = "GroupOfRecords", required = true)
|
||||||
|
protected MetaGroupRecords groupOfRecords;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the layout property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link MetaLayout }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaLayout getLayout() {
|
||||||
|
return layout;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the layout property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link MetaLayout }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setLayout(MetaLayout value) {
|
||||||
|
this.layout = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the groupOfRecords property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link MetaGroupRecords }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaGroupRecords getGroupOfRecords() {
|
||||||
|
return groupOfRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the groupOfRecords property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link MetaGroupRecords }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setGroupOfRecords(MetaGroupRecords value) {
|
||||||
|
this.groupOfRecords = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,106 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Formato utilizado por um Filler (Preenchedor).
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaFormatter")
|
||||||
|
public class MetaFormatter {
|
||||||
|
|
||||||
|
@XmlAttribute(required = true)
|
||||||
|
protected String format;
|
||||||
|
@XmlAttribute(required = true)
|
||||||
|
protected EnumFormatsTypes type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the format property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getFormat() {
|
||||||
|
return format;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the format property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setFormat(String value) {
|
||||||
|
this.format = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the type property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link EnumFormatsTypes }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public EnumFormatsTypes getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the type property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link EnumFormatsTypes }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setType(EnumFormatsTypes value) {
|
||||||
|
this.type = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,172 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.xml.bind.JAXBElement;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
import javax.xml.namespace.QName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Agregado de fields.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaGroupFields", propOrder = { "idType", "fields",
|
||||||
|
"sequencialNumber" })
|
||||||
|
public class MetaGroupFields {
|
||||||
|
|
||||||
|
@XmlElement(name = "IdType", required = true)
|
||||||
|
protected MetaOrderedField idType;
|
||||||
|
@XmlElement(name = "Field", required = true)
|
||||||
|
protected List<MetaField> fields;
|
||||||
|
@XmlElement(name = "SequencialNumber")
|
||||||
|
protected MetaOrderedField sequencialNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the idType property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link MetaOrderedField }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaOrderedField getIdType() {
|
||||||
|
return idType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the idType property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link MetaOrderedField }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setIdType(MetaOrderedField value) {
|
||||||
|
this.idType = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the fields property.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* This accessor method returns a reference to the live list, not a
|
||||||
|
* snapshot. Therefore any modification you make to the returned list will
|
||||||
|
* be present inside the JAXB object. This is why there is not a
|
||||||
|
* <CODE>set</CODE> method for the fields property.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* For example, to add a new item, do as follows:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* getFields().add(newItem);
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Objects of the following type(s) are allowed in the list
|
||||||
|
* {@link MetaField }
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public List<MetaField> getFields() {
|
||||||
|
if (fields == null) {
|
||||||
|
fields = new ArrayList<MetaField>();
|
||||||
|
}
|
||||||
|
return this.fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the sequencialNumber property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link MetaOrderedField }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaOrderedField getSequencialNumber() {
|
||||||
|
return sequencialNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the sequencialNumber property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link MetaOrderedField }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setSequencialNumber(MetaOrderedField value) {
|
||||||
|
this.sequencialNumber = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class IdType extends JAXBElement<MetaOrderedField> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@code serialVersionUID = -8934480908648452108L}
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -8934480908648452108L;
|
||||||
|
|
||||||
|
protected final static QName NAME = new QName("", "IdType");
|
||||||
|
|
||||||
|
public IdType(MetaOrderedField value) {
|
||||||
|
super(NAME, ((Class<MetaOrderedField>) MetaOrderedField.class),
|
||||||
|
MetaGroupFields.class, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class SequencialNumber extends JAXBElement<MetaOrderedField> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@code serialVersionUID = 3923837730914132777L}
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 3923837730914132777L;
|
||||||
|
|
||||||
|
protected final static QName NAME = new QName("", "SequencialNumber");
|
||||||
|
|
||||||
|
public SequencialNumber(MetaOrderedField value) {
|
||||||
|
super(NAME, ((Class<MetaOrderedField>) MetaOrderedField.class),
|
||||||
|
MetaGroupFields.class, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Conjunto de records de um flatfile ou relacionados a um outro record.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaGroupRecords", propOrder = { "records" })
|
||||||
|
public class MetaGroupRecords {
|
||||||
|
|
||||||
|
@XmlElement(name = "Record", required = true)
|
||||||
|
protected List<MetaRecord> records;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the records property.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* This accessor method returns a reference to the live list, not a
|
||||||
|
* snapshot. Therefore any modification you make to the returned list will
|
||||||
|
* be present inside the JAXB object. This is why there is not a
|
||||||
|
* <CODE>set</CODE> method for the records property.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* For example, to add a new item, do as follows:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* getRecords().add(newItem);
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Objects of the following type(s) are allowed in the list
|
||||||
|
* {@link MetaRecord }
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public List<MetaRecord> getRecords() {
|
||||||
|
if (records == null) {
|
||||||
|
records = new ArrayList<MetaRecord>();
|
||||||
|
}
|
||||||
|
return this.records;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,127 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Tags para informar o layout do flafile definido.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaLayout", propOrder = {
|
||||||
|
|
||||||
|
})
|
||||||
|
public class MetaLayout {
|
||||||
|
|
||||||
|
protected String name;
|
||||||
|
protected String version;
|
||||||
|
protected String description;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the name property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the name property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setName(String value) {
|
||||||
|
this.name = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the version property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getVersion() {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the version property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setVersion(String value) {
|
||||||
|
this.version = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the description property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the description property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setDescription(String value) {
|
||||||
|
this.description = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,78 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Para defini<EFBFBD><EFBFBD>o da posi<EFBFBD><EFBFBD>o.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaOrderedField")
|
||||||
|
public class MetaOrderedField extends MetaField {
|
||||||
|
|
||||||
|
@XmlAttribute(required = true)
|
||||||
|
protected int position;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the position property.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public int getPosition() {
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the position property.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setPosition(int value) {
|
||||||
|
this.position = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,183 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Uma esp<EFBFBD>cie de container de fields numa forma mais simples, usualmente <EFBFBD>
|
||||||
|
* conhecido como Registro ou Bloco.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaRecord", propOrder = { "groupOfFields",
|
||||||
|
"groupOfInnerRecords" })
|
||||||
|
public class MetaRecord {
|
||||||
|
|
||||||
|
@XmlElement(name = "GroupOfFields", required = true)
|
||||||
|
protected MetaGroupFields groupOfFields;
|
||||||
|
@XmlElement(name = "GroupOfInnerRecords")
|
||||||
|
protected MetaGroupRecords groupOfInnerRecords;
|
||||||
|
@XmlAttribute
|
||||||
|
protected String description;
|
||||||
|
@XmlAttribute
|
||||||
|
protected String name;
|
||||||
|
@XmlAttribute
|
||||||
|
protected Boolean repeatable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the groupOfFields property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link MetaGroupFields }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaGroupFields getGroupOfFields() {
|
||||||
|
return groupOfFields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the groupOfFields property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link MetaGroupFields }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setGroupOfFields(MetaGroupFields value) {
|
||||||
|
this.groupOfFields = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the groupOfInnerRecords property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link MetaGroupRecords }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaGroupRecords getGroupOfInnerRecords() {
|
||||||
|
return groupOfInnerRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the groupOfInnerRecords property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link MetaGroupRecords }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setGroupOfInnerRecords(MetaGroupRecords value) {
|
||||||
|
this.groupOfInnerRecords = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the description property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the description property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setDescription(String value) {
|
||||||
|
this.description = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the name property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the name property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setName(String value) {
|
||||||
|
this.name = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the repeatable property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link Boolean }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public boolean isRepeatable() {
|
||||||
|
if (repeatable == null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return repeatable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the repeatable property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link Boolean }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setRepeatable(Boolean value) {
|
||||||
|
this.repeatable = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,116 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Elemento root.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "Texgit")
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MetaTexgit", propOrder = {
|
||||||
|
|
||||||
|
})
|
||||||
|
public class MetaTexgit {
|
||||||
|
|
||||||
|
@XmlElement(name = "FlatFile", required = true)
|
||||||
|
protected MetaFlatFile flatFile;
|
||||||
|
@XmlAttribute
|
||||||
|
protected String version;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the flatFile property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link MetaFlatFile }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaFlatFile getFlatFile() {
|
||||||
|
return flatFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the flatFile property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link MetaFlatFile }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setFlatFile(MetaFlatFile value) {
|
||||||
|
this.flatFile = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the version property.
|
||||||
|
*
|
||||||
|
* @return possible object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getVersion() {
|
||||||
|
if (version == null) {
|
||||||
|
return "1.0-academic";
|
||||||
|
} else {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the version property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setVersion(String value) {
|
||||||
|
this.version = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,178 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
||||||
|
import javax.xml.bind.JAXBElement;
|
||||||
|
import javax.xml.bind.annotation.XmlElementDecl;
|
||||||
|
import javax.xml.bind.annotation.XmlRegistry;
|
||||||
|
import javax.xml.namespace.QName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This object contains factory methods for each Java content interface and Java
|
||||||
|
* element interface generated in the texgit.language package.
|
||||||
|
* <p>
|
||||||
|
* An ObjectFactory allows you to programatically construct new instances of the
|
||||||
|
* Java representation for XML content. The Java representation of XML content
|
||||||
|
* can consist of schema derived interfaces and classes representing the binding
|
||||||
|
* of schema type definitions, element declarations and model groups. Factory
|
||||||
|
* methods for each of these are provided in this class.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlRegistry
|
||||||
|
public class ObjectFactory {
|
||||||
|
|
||||||
|
private final static QName TEXGIT_QNAME = new QName(
|
||||||
|
"http://jrimum.org/texgit", "Texgit");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new ObjectFactory that can be used to create new instances of
|
||||||
|
* schema derived classes for package: texgit.language
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public ObjectFactory() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaField }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaField createMetaField() {
|
||||||
|
return new MetaField();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaFlatFile }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaFlatFile createMetaFlatFile() {
|
||||||
|
return new MetaFlatFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaOrderedField }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaOrderedField createMetaOrderedField() {
|
||||||
|
return new MetaOrderedField();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaRecord }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaRecord createMetaRecord() {
|
||||||
|
return new MetaRecord();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaLayout }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaLayout createMetaLayout() {
|
||||||
|
return new MetaLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaTexgit }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaTexgit createMetaTexgit() {
|
||||||
|
return new MetaTexgit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaFormatter }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaFormatter createMetaFormatter() {
|
||||||
|
return new MetaFormatter();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaGroupFields }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaGroupFields createMetaGroupFields() {
|
||||||
|
return new MetaGroupFields();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaGroupRecords }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaGroupRecords createMetaGroupRecords() {
|
||||||
|
return new MetaGroupRecords();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaFiller }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MetaFiller createMetaFiller() {
|
||||||
|
return new MetaFiller();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link JAXBElement }{@code <}{@link MetaTexgit }{@code >}}
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlElementDecl(namespace = "http://jrimum.org/texgit", name = "Texgit")
|
||||||
|
public JAXBElement<MetaTexgit> createTexgit(MetaTexgit value) {
|
||||||
|
return new JAXBElement<MetaTexgit>(TEXGIT_QNAME, MetaTexgit.class,
|
||||||
|
null, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaGroupFields.SequencialNumber }}
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlElementDecl(namespace = "", name = "SequencialNumber", scope = MetaGroupFields.class)
|
||||||
|
public MetaGroupFields.SequencialNumber createMetaGroupFieldsSequencialNumber(
|
||||||
|
MetaOrderedField value) {
|
||||||
|
return new MetaGroupFields.SequencialNumber(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link MetaGroupFields.IdType }}
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlElementDecl(namespace = "", name = "IdType", scope = MetaGroupFields.class)
|
||||||
|
public MetaGroupFields.IdType createMetaGroupFieldsIdType(
|
||||||
|
MetaOrderedField value) {
|
||||||
|
return new MetaGroupFields.IdType(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// This file was generated by the JavaTM Architecture for XML Binding(JAXB)
|
||||||
|
// Reference Implementation, vJAXB 2.0 in JDK 1.6
|
||||||
|
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||||
|
// Any modifications to this file will be lost upon recompilation of the source
|
||||||
|
// schema.
|
||||||
|
// Generated on: 2008.08.03 at 12:27:56 AM GMT-03:00
|
||||||
|
//
|
||||||
|
|
||||||
|
@javax.xml.bind.annotation.XmlSchema(namespace = "http://jrimum.org/texgit")
|
||||||
|
package org.jrimum.texgit.language;
|
||||||
|
|
|
@ -0,0 +1,332 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type;
|
||||||
|
|
||||||
|
import static java.lang.String.format;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ListIterator;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.jrimum.texgit.TextStream;
|
||||||
|
import org.jrimum.utilix.Collections;
|
||||||
|
import org.jrimum.utilix.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* @param <G>
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public abstract class AbstractStringOfFields<G extends Field<?>> implements TextStream, List<G>, Cloneable{
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private ArrayList<G> fields;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public AbstractStringOfFields() {
|
||||||
|
|
||||||
|
fields = new ArrayList<G>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public AbstractStringOfFields(Integer size) {
|
||||||
|
|
||||||
|
Objects.checkNotNull(size, "size");
|
||||||
|
|
||||||
|
if (size > 0) {
|
||||||
|
fields = new ArrayList<G>(size);
|
||||||
|
for (int i = 1; i <= size; i++){
|
||||||
|
fields.add(null);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException(format("A quantidade de campos [%s] deve ser um número natural > 0!", size));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
protected AbstractStringOfFields<G> clone() throws CloneNotSupportedException {
|
||||||
|
|
||||||
|
//Clona apenas com uma referência a fields.
|
||||||
|
AbstractStringOfFields<G> sof = (AbstractStringOfFields<G>) super.clone();
|
||||||
|
|
||||||
|
//Clonagem real
|
||||||
|
sof.fields = new ArrayList<G>();
|
||||||
|
|
||||||
|
for(G gf : fields)
|
||||||
|
sof.fields.add((G) gf.clone());
|
||||||
|
|
||||||
|
return sof;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* A leitrua de uma string, ou melhor, a divisão de uma string em fields,
|
||||||
|
* não ocorre sem uma lógica. Assim este método deve ser implementado por
|
||||||
|
* cada subclasse.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see org.jrimum.texgit.ReadWriteStream#read(Object)
|
||||||
|
*/
|
||||||
|
public abstract void read(String lineOfField);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Escreve os campos na ordem em que estão dispostos na lista em uma única linha (string).
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see org.jrimum.texgit.ReadWriteStream#write()
|
||||||
|
*/
|
||||||
|
public String write() {
|
||||||
|
|
||||||
|
StringBuilder lineOfFields = new StringBuilder(StringUtils.EMPTY);
|
||||||
|
|
||||||
|
Objects.checkNotNull(fields, "Fields == null");
|
||||||
|
Collections.checkNotEmpty(fields, "Coleção de fields vazia!");
|
||||||
|
|
||||||
|
for (G field : fields) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
lineOfFields.append(field.write());
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(
|
||||||
|
format(
|
||||||
|
"Erro ao tentar escrever o campo \"%s\" com valor [%s] na posição [%s] no layout do registro.",
|
||||||
|
field.getName(), field.getValue(), fields
|
||||||
|
.indexOf(field)+1),e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return lineOfFields.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the fields
|
||||||
|
*/
|
||||||
|
public List<G> getFields() {
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#add(java.lang.Object)
|
||||||
|
*/
|
||||||
|
public boolean add(G e) {
|
||||||
|
|
||||||
|
return fields.add(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#add(int, java.lang.Object)
|
||||||
|
*/
|
||||||
|
public void add(int index, G element) {
|
||||||
|
|
||||||
|
fields.add(index, element);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#addAll(java.util.Collection)
|
||||||
|
*/
|
||||||
|
public boolean addAll(Collection<? extends G> c) {
|
||||||
|
|
||||||
|
return fields.addAll(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#addAll(int, java.util.Collection)
|
||||||
|
*/
|
||||||
|
public boolean addAll(int index, Collection<? extends G> c) {
|
||||||
|
|
||||||
|
return fields.addAll(index, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#clear()
|
||||||
|
*/
|
||||||
|
public void clear() {
|
||||||
|
|
||||||
|
fields.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#contains(java.lang.Object)
|
||||||
|
*/
|
||||||
|
public boolean contains(Object o) {
|
||||||
|
|
||||||
|
return fields.contains(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#containsAll(java.util.Collection)
|
||||||
|
*/
|
||||||
|
public boolean containsAll(Collection<?> c) {
|
||||||
|
|
||||||
|
return fields.containsAll(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#get(int)
|
||||||
|
*/
|
||||||
|
public G get(int index) {
|
||||||
|
|
||||||
|
return fields.get(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#indexOf(java.lang.Object)
|
||||||
|
*/
|
||||||
|
public int indexOf(Object o) {
|
||||||
|
|
||||||
|
return fields.indexOf(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#isEmpty()
|
||||||
|
*/
|
||||||
|
public boolean isEmpty() {
|
||||||
|
|
||||||
|
return fields.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#iterator()
|
||||||
|
*/
|
||||||
|
public Iterator<G> iterator() {
|
||||||
|
|
||||||
|
return fields.iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#lastIndexOf(java.lang.Object)
|
||||||
|
*/
|
||||||
|
public int lastIndexOf(Object o) {
|
||||||
|
|
||||||
|
return fields.indexOf(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#listIterator()
|
||||||
|
*/
|
||||||
|
public ListIterator<G> listIterator() {
|
||||||
|
|
||||||
|
return fields.listIterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#listIterator(int)
|
||||||
|
*/
|
||||||
|
public ListIterator<G> listIterator(int index) {
|
||||||
|
|
||||||
|
return fields.listIterator(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#remove(int)
|
||||||
|
*/
|
||||||
|
public G remove(int index) {
|
||||||
|
|
||||||
|
return fields.remove(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#remove(java.lang.Object)
|
||||||
|
*/
|
||||||
|
public boolean remove(Object o) {
|
||||||
|
|
||||||
|
return fields.remove(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#removeAll(java.util.Collection)
|
||||||
|
*/
|
||||||
|
public boolean removeAll(Collection<?> c) {
|
||||||
|
|
||||||
|
return fields.removeAll(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#retainAll(java.util.Collection)
|
||||||
|
*/
|
||||||
|
public boolean retainAll(Collection<?> c) {
|
||||||
|
|
||||||
|
return fields.retainAll(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#set(int, java.lang.Object)
|
||||||
|
*/
|
||||||
|
public G set(int index, G element) {
|
||||||
|
|
||||||
|
return fields.set(index, element);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#size()
|
||||||
|
*/
|
||||||
|
public int size() {
|
||||||
|
|
||||||
|
return fields.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#subList(int, int)
|
||||||
|
*/
|
||||||
|
public List<G> subList(int fromIndex, int toIndex) {
|
||||||
|
|
||||||
|
return fields.subList(fromIndex, toIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#toArray()
|
||||||
|
*/
|
||||||
|
public Object[] toArray() {
|
||||||
|
|
||||||
|
return fields.toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.util.List#toArray(Object[])
|
||||||
|
*/
|
||||||
|
public <T> T[] toArray(T[] a) {
|
||||||
|
|
||||||
|
return fields.toArray(a);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type;
|
||||||
|
|
||||||
|
import java.text.Format;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.TextStream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* @param <G>
|
||||||
|
*/
|
||||||
|
public interface Field<G> extends TextStream, Cloneable{
|
||||||
|
|
||||||
|
public abstract String getName();
|
||||||
|
|
||||||
|
public abstract void setName(String name);
|
||||||
|
|
||||||
|
public abstract G getValue();
|
||||||
|
|
||||||
|
public abstract void setValue(G value);
|
||||||
|
|
||||||
|
public abstract Format getFormatter();
|
||||||
|
|
||||||
|
public abstract void setFormatter(Format formatter);
|
||||||
|
|
||||||
|
public abstract boolean isBlankAccepted();
|
||||||
|
|
||||||
|
public abstract void setBlankAccepted(boolean blankAccepted);
|
||||||
|
|
||||||
|
public abstract Field<G> clone() throws CloneNotSupportedException;
|
||||||
|
}
|
|
@ -0,0 +1,162 @@
|
||||||
|
package org.jrimum.texgit.type;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.TextStream;
|
||||||
|
|
||||||
|
public interface Filler extends Serializable{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Preenche o campo com o caracter especificado e no lado especificado.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Exemplo:
|
||||||
|
* <br/>
|
||||||
|
* Se <code>sideToFill == SideToFill.LEFT</code>, o caracter especificado será adicionado à String
|
||||||
|
* no lado esquerdo até que o campo fique com o tamanho que foi definido.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param toFill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
String fill(String toFill, int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executa o método <code>fill(String, int)</code> passando o parâmetro
|
||||||
|
* <code>toFill</code> como <code>String.valueOf(toFill)</code>.
|
||||||
|
*
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @see Filler#fill(String, int)
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
String fill(long tofill, int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executa o método <code>fill(String, int)</code> passando o parâmetro
|
||||||
|
* <code>toFill</code> como <code>String.valueOf(toFill)</code>.
|
||||||
|
*
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @see Filler#fill(String, int)
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
String fill(int tofill, int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executa o método <code>fill(String, int)</code> passando o parâmetro
|
||||||
|
* <code>toFill</code> como <code>String.valueOf(toFill)</code>.
|
||||||
|
*
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @see Filler#fill(String, int)
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
String fill(short tofill, int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executa o método <code>fill(String, int)</code> passando o parâmetro
|
||||||
|
* <code>toFill</code> como <code>String.valueOf(toFill)</code>.
|
||||||
|
*
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @see Filler#fill(String, int)
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
String fill(byte tofill, int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executa o método <code>fill(String, int)</code> passando o parâmetro
|
||||||
|
* <code>toFill</code> como <code>String.valueOf(toFill)</code>.
|
||||||
|
*
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @see Filler#fill(String, int)
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
String fill(char tofill, int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executa o método <code>fill(String, int)</code> passando o parâmetro
|
||||||
|
* <code>toFill</code> como <code>String.valueOf(toFill)</code>.
|
||||||
|
*
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @see Filler#fill(String, int)
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
String fill(double tofill, int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executa o método <code>fill(String, int)</code> passando o parâmetro
|
||||||
|
* <code>toFill</code> como <code>String.valueOf(toFill)</code>.
|
||||||
|
*
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @see Filler#fill(String, int)
|
||||||
|
*
|
||||||
|
* @since
|
||||||
|
*/
|
||||||
|
String fill(float tofill, int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executa o método <code>fill(String, int)</code> passando o parâmetro
|
||||||
|
* <code>toFill</code> como <code>toFill.toString()</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Caso <code>toFill</code> seja <code>null</code>, o método
|
||||||
|
* <code>fill(String, int)</code> receberá uma String nula como parâmetro.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @see Filler#fill(String, int)
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
String fill(Object tofill, int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executa o método <code>fill(String, int)</code> passando o parâmetro
|
||||||
|
* <code>toFill</code> como <code>toFill.write()</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Caso <code>toFill</code> seja <code>null</code>, o método
|
||||||
|
* <code>fill(String, int)</code> receberá uma String nula como parâmetro.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*
|
||||||
|
* @see Filler#fill(String, int)
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*/
|
||||||
|
String fill(TextStream tofill, int length);
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface Fixed {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Informa a validade para a fixação de uma ou mais medidas. Exemplo: <br />
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* {
|
||||||
|
* isLenghtAsDefine();
|
||||||
|
* isSizeAsDefine();
|
||||||
|
* }
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @return Indicativo se está de acordo com o definido
|
||||||
|
*
|
||||||
|
* @throws IllegalStateException
|
||||||
|
*/
|
||||||
|
public abstract boolean isFixedAsDefined() throws IllegalStateException;
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* @param <G>
|
||||||
|
*/
|
||||||
|
public interface FixedField<G> extends Field<G>, FixedLength{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the filler
|
||||||
|
*/
|
||||||
|
public abstract Filler getFiller();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param filler the filler to set
|
||||||
|
*/
|
||||||
|
public abstract void setFiller(Filler filler);
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface FixedLength extends Fixed{
|
||||||
|
|
||||||
|
public Integer getFixedLength();
|
||||||
|
|
||||||
|
public boolean isTruncate();
|
||||||
|
|
||||||
|
public void setTruncate(boolean truncate);
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface FixedSize extends Fixed{
|
||||||
|
|
||||||
|
public Integer getFixedSize();
|
||||||
|
}
|
|
@ -0,0 +1,228 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.type.AbstractStringOfFields;
|
||||||
|
import org.jrimum.texgit.type.FixedLength;
|
||||||
|
import org.jrimum.texgit.type.FixedSize;
|
||||||
|
import org.jrimum.utilix.Collections;
|
||||||
|
import org.jrimum.utilix.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class BlockOfFields extends AbstractStringOfFields<FixedField<?>> implements FixedSize, FixedLength{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Definição
|
||||||
|
*/
|
||||||
|
private Integer length;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Definição
|
||||||
|
*/
|
||||||
|
private Integer size;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Tamanho da string de escrita do bloco.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private Integer instantLength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Ao ultrapassar o tamanho, define se pode truncar ou se dispara uma exceção.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private boolean truncate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public BlockOfFields() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param length
|
||||||
|
* @param size
|
||||||
|
*/
|
||||||
|
public BlockOfFields(Integer length, Integer size) {
|
||||||
|
|
||||||
|
super(size);
|
||||||
|
|
||||||
|
Objects.checkNotNull(length, "length");
|
||||||
|
|
||||||
|
if (length > 0) {
|
||||||
|
|
||||||
|
setLength(length);
|
||||||
|
setSize(size);
|
||||||
|
|
||||||
|
} else
|
||||||
|
throw new IllegalArgumentException(format("O comprimento do bloco [%s] deve ser um número natural > 0!", length));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockOfFields clone() throws CloneNotSupportedException {
|
||||||
|
|
||||||
|
return(BlockOfFields) super.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(String lineOfFields) {
|
||||||
|
|
||||||
|
Objects.checkNotNull(lineOfFields, "String de leitura nula!");
|
||||||
|
|
||||||
|
Objects.checkNotNull(getFields(), "Fields == null");
|
||||||
|
Collections.checkNotEmpty(getFields(), "Coleção de fields vazia!");
|
||||||
|
|
||||||
|
if (isSizeAsDefinaed() && isLengthWithDefinaed(lineOfFields.length())) {
|
||||||
|
|
||||||
|
StringBuilder builder = new StringBuilder(lineOfFields);
|
||||||
|
|
||||||
|
for (FixedField<?> field : getFields()) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
field.read(builder.substring(0, field.getFixedLength()));
|
||||||
|
builder.delete(0, field.getFixedLength());
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(
|
||||||
|
format(
|
||||||
|
"Erro ao tentar ler o campo \"%s\" na posição [%s] no layout do registro.",
|
||||||
|
field.getName(), getFields().indexOf(field)+1),e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
builder = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String write() {
|
||||||
|
|
||||||
|
Objects.checkNotNull(getFields(), "Fields == null");
|
||||||
|
Collections.checkNotEmpty(getFields(), "Coleção de fields vazia!");
|
||||||
|
|
||||||
|
String str = null;
|
||||||
|
|
||||||
|
isSizeAsDefinaed();
|
||||||
|
|
||||||
|
str = super.write();
|
||||||
|
|
||||||
|
instantLength = str.length();
|
||||||
|
|
||||||
|
if (isTruncate() && instantLength > getFixedLength()) {
|
||||||
|
str = str.substring(0, getFixedLength());
|
||||||
|
instantLength = getFixedLength();
|
||||||
|
}
|
||||||
|
|
||||||
|
isFixedAsDefined();
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFixedAsDefined() throws IllegalStateException {
|
||||||
|
|
||||||
|
return (isSizeAsDefinaed() && isLengthWithDefinaed());
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isLengthWithDefinaed(){
|
||||||
|
|
||||||
|
return isLengthWithDefinaed(instantLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isLengthWithDefinaed(int length){
|
||||||
|
|
||||||
|
if(length == getFixedLength())
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
throw new IllegalStateException(format("O comprimento da string [%s] é incompátivel com o definido [%s] no layout do registro!",length,getFixedLength()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isSizeAsDefinaed(){
|
||||||
|
|
||||||
|
if(size() == getFixedSize())
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
throw new IllegalStateException(format("O número de fields [%s] é incompátivel com o definido [%s]!", size(), getFixedSize()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the length
|
||||||
|
*/
|
||||||
|
public Integer getFixedLength() {
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param length the length to set
|
||||||
|
*/
|
||||||
|
protected void setLength(Integer length) {
|
||||||
|
|
||||||
|
if (isNotNull(length))
|
||||||
|
this.length = length;
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException(format("Comprimento inválido [%s]!", length));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the size
|
||||||
|
*/
|
||||||
|
public Integer getFixedSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param size the size to set
|
||||||
|
*/
|
||||||
|
protected void setSize(Integer size) {
|
||||||
|
|
||||||
|
if (isNotNull(size))
|
||||||
|
this.size = size;
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException(format("Tamanho inválido [%s]!", size));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isTruncate() {
|
||||||
|
return this.truncate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTruncate(boolean truncate) {
|
||||||
|
this.truncate = truncate;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,406 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static org.apache.commons.lang.StringUtils.EMPTY;
|
||||||
|
import static org.apache.commons.lang.StringUtils.isBlank;
|
||||||
|
import static org.apache.commons.lang.StringUtils.isNumeric;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
|
||||||
|
import java.lang.reflect.Constructor;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.text.Format;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.TextStream;
|
||||||
|
import org.jrimum.utilix.Dates;
|
||||||
|
import org.jrimum.utilix.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* @param <G>
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class Field<G> implements org.jrimum.texgit.type.Field<G>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
*<p>
|
||||||
|
*Nome do campo, também pode ser usado como id.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Valor do campo.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private G value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Formatador utilizado na leitura e escrita do valor do campo.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private Format formatter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Necessário para ler campos númericos em branco.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private boolean blankAccepted;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public Field() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param value
|
||||||
|
*/
|
||||||
|
public Field(G value) {
|
||||||
|
super();
|
||||||
|
setValue(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Cria um <code>Field</code> com um valor e um formatador para o valor. Isto significa que a leitura e escrita do valor informado
|
||||||
|
* será de acordo com o formatador.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* @param formatter
|
||||||
|
*/
|
||||||
|
public Field(G value, Format formatter){
|
||||||
|
|
||||||
|
setValue(value);
|
||||||
|
setFormatter(formatter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param name
|
||||||
|
* @param value
|
||||||
|
*/
|
||||||
|
public Field(String name, G value) {
|
||||||
|
super();
|
||||||
|
setName(name);
|
||||||
|
setValue(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Cria um <code>Field</code> com nome para identificação, valor e um formatador.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
* @param value
|
||||||
|
* @param formatter
|
||||||
|
*
|
||||||
|
* @see #Field(Object, Format)
|
||||||
|
*/
|
||||||
|
public Field(String name, G value, Format formatter){
|
||||||
|
|
||||||
|
setName(name);
|
||||||
|
setValue(value);
|
||||||
|
setFormatter(formatter);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public Field<G> clone() throws CloneNotSupportedException {
|
||||||
|
|
||||||
|
return (Field<G>) super.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(String str) {
|
||||||
|
|
||||||
|
Objects.checkNotNull(str, "String inválida [null]!");
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
if (this.value instanceof TextStream) {
|
||||||
|
|
||||||
|
TextStream reader = (TextStream) this.value;
|
||||||
|
reader.read(str);
|
||||||
|
|
||||||
|
} else if (this.value instanceof BigDecimal) {
|
||||||
|
|
||||||
|
readDecimalField(str);
|
||||||
|
|
||||||
|
} else if (this.value instanceof Date) {
|
||||||
|
|
||||||
|
readDateField(str);
|
||||||
|
|
||||||
|
} else if (this.value instanceof Character) {
|
||||||
|
|
||||||
|
readCharacter(str);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
readStringOrNumericField(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(format("Falha na leitura do campo! %s",toString()),e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private void readCharacter(String str) {
|
||||||
|
|
||||||
|
if(str.length() == 1){
|
||||||
|
|
||||||
|
value = (G) new Character(str.charAt(0));
|
||||||
|
|
||||||
|
}else
|
||||||
|
throw new IllegalArgumentException("String com mais de 1 character!");
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private void readDecimalField(String str) {
|
||||||
|
|
||||||
|
DecimalFormat decimalFormat = (DecimalFormat) formatter;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
String number = parseNumber(str);
|
||||||
|
|
||||||
|
Long parsedValue = (Long) formatter.parseObject(number);
|
||||||
|
|
||||||
|
BigDecimal decimalValue = new BigDecimal(parsedValue.longValue());
|
||||||
|
|
||||||
|
decimalValue = decimalValue.movePointLeft(decimalFormat.getMaximumFractionDigits());
|
||||||
|
|
||||||
|
value = (G) decimalValue;
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (ParseException e) {
|
||||||
|
|
||||||
|
throwReadError(e, str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private void readDateField(String str) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if(isBlank(str)){
|
||||||
|
|
||||||
|
if(isBlankAccepted()){
|
||||||
|
|
||||||
|
value = (G) Dates.invalidDate();
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
new IllegalArgumentException(format("Campo data vazio não permitido: [%s]!",str));
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
value = (G) formatter.parseObject(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (ParseException e) {
|
||||||
|
|
||||||
|
throwReadError(e, str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private void readStringOrNumericField(String str) {
|
||||||
|
|
||||||
|
str = parseNumber(str);
|
||||||
|
|
||||||
|
Class<?> clazz = value.getClass();
|
||||||
|
|
||||||
|
if(clazz.equals(String.class)){
|
||||||
|
value = (G) str;
|
||||||
|
}else{
|
||||||
|
readNumeric(clazz,str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private void readNumeric(Class<?> clazz, String str) {
|
||||||
|
|
||||||
|
for (Constructor<?> cons : clazz.getConstructors()) {
|
||||||
|
|
||||||
|
if (cons.getParameterTypes().length == 1){
|
||||||
|
|
||||||
|
if (cons.getParameterTypes()[0].equals(String.class)){
|
||||||
|
try {
|
||||||
|
|
||||||
|
value = (G) cons.newInstance(str);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
throwReadError(e, str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String write() {
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
String str = null;
|
||||||
|
|
||||||
|
if (value instanceof TextStream) {
|
||||||
|
|
||||||
|
TextStream its = (TextStream) value;
|
||||||
|
|
||||||
|
str = its.write();
|
||||||
|
|
||||||
|
} else if (value instanceof Date) {
|
||||||
|
|
||||||
|
str = writeDateField();
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (value instanceof BigDecimal)
|
||||||
|
str = writeDecimalField();
|
||||||
|
|
||||||
|
else
|
||||||
|
str = value.toString();
|
||||||
|
|
||||||
|
return str;
|
||||||
|
|
||||||
|
}catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(format("Falha na escrita do campo escrita! %s",toString()),e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String writeDecimalField(){
|
||||||
|
|
||||||
|
BigDecimal decimalValue = (BigDecimal) value;
|
||||||
|
|
||||||
|
decimalValue = decimalValue.movePointRight(((DecimalFormat)formatter).getMaximumFractionDigits());
|
||||||
|
|
||||||
|
return decimalValue.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String writeDateField(){
|
||||||
|
|
||||||
|
if (!Dates.equalsInvalidDate((Date) value)){
|
||||||
|
|
||||||
|
return formatter.format(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String parseNumber(String str){
|
||||||
|
|
||||||
|
if(isBlank(str)){
|
||||||
|
|
||||||
|
if(isBlankAccepted())
|
||||||
|
str = "0";
|
||||||
|
else
|
||||||
|
new IllegalArgumentException(format("Campo numérico vazio não permitido: [%s]!",str));
|
||||||
|
}else
|
||||||
|
if(!isNumeric(str))
|
||||||
|
new IllegalArgumentException(format("O campo deve ser numérico e não: [%s]!",str));
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
|
||||||
|
if (isNotNull(name))
|
||||||
|
this.name = name;
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException(format("Nome Inválido: [%s]!",name));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBlankAccepted() {
|
||||||
|
return this.blankAccepted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBlankAccepted(boolean blankAccepted) {
|
||||||
|
this.blankAccepted = blankAccepted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public G getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(G value) {
|
||||||
|
|
||||||
|
if (isNotNull(value))
|
||||||
|
this.value = value;
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException(format("Valor Inválido: %s = [%s]!", this.name, value));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Format getFormatter() {
|
||||||
|
return formatter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFormatter(Format formatter) {
|
||||||
|
|
||||||
|
if (isNotNull(formatter))
|
||||||
|
this.formatter = formatter;
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException(format("Formato inválido: [%s]!",formatter));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void throwReadError(Exception e, String value){
|
||||||
|
|
||||||
|
throw new IllegalArgumentException(format("Falha na leitura da string: [\"%s\"]! %s",value,toString()), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
|
||||||
|
return format("Field [name=\"%s\", value=\"%s\", isBlankAccepted=%s, formatter=%s]"
|
||||||
|
, Objects.whenNull(this.name, EMPTY)
|
||||||
|
, Objects.whenNull(this.value, EMPTY)
|
||||||
|
, Objects.whenNull(this.isBlankAccepted(), EMPTY)
|
||||||
|
, Objects.whenNull(this.formatter, EMPTY));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,264 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 30/03/2008 - 18:17:00
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 30/03/2008 - 18:17:00
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static org.apache.commons.lang.StringUtils.EMPTY;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.jrimum.texgit.TextStream;
|
||||||
|
import org.jrimum.utilix.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Preenchedor de caracteres genérico. É utilizado para preencher objetos <code>String</code>,
|
||||||
|
* tanto da esquerda para a direita como da direita para esquerda, com o objeto genérico até
|
||||||
|
* o tamanho especificado. Caso o tamanho especificado seja <strong>menor</strong>
|
||||||
|
* ou <strong>igual</strong> a 0 (ZERO), este valor será desconsiderado e nada será preenchido.
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* É utilizado o método <code>toString()</code> do objeto preenchedor.
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* Exemplo:<br/>
|
||||||
|
* <pre>
|
||||||
|
* Filler<Integer> filler = new Filler(new Integer(10), SideToFill.LEFT);
|
||||||
|
* String outPut = filler.fill("TESTE", 8);
|
||||||
|
*
|
||||||
|
* outPut -> "101TESTE"
|
||||||
|
* </pre>
|
||||||
|
* </p>
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L</a>
|
||||||
|
* @author <a href="mailto:misaelbarreto@gmail.com">Misael Barreto</a>
|
||||||
|
* @author <a href="mailto:romulomail@gmail.com">Rômulo Augusto</a>
|
||||||
|
* @author <a href="http://www.nordestefomento.com.br">Nordeste Fomento
|
||||||
|
* Mercantil</a>
|
||||||
|
*
|
||||||
|
* @since JRimum 0.1
|
||||||
|
*
|
||||||
|
* @version 0.2.1-inc
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class Filler<G> implements org.jrimum.texgit.type.Filler{
|
||||||
|
|
||||||
|
private G padding;
|
||||||
|
|
||||||
|
private Side sideToFill;
|
||||||
|
|
||||||
|
public Filler() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param fillWith
|
||||||
|
*/
|
||||||
|
public Filler(G fillWith) {
|
||||||
|
|
||||||
|
setPadding(fillWith);
|
||||||
|
setSideToFill(Side.LEFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param fillWith
|
||||||
|
* @param sideToFill
|
||||||
|
*/
|
||||||
|
public Filler(G fillWith, Side sideToFill) {
|
||||||
|
|
||||||
|
setPadding(fillWith);
|
||||||
|
setSideToFill(sideToFill);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#getPadding()
|
||||||
|
*/
|
||||||
|
public G getPadding() {
|
||||||
|
return padding;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#setPadding(G)
|
||||||
|
*/
|
||||||
|
public void setPadding(G fillWith) {
|
||||||
|
|
||||||
|
if(isNotNull(fillWith)){
|
||||||
|
this.padding = fillWith;
|
||||||
|
}else{
|
||||||
|
throw new IllegalArgumentException(format("Preenchimento inválido [%s]!",fillWith));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#getSideToFill()
|
||||||
|
*/
|
||||||
|
public Side getSideToFill() {
|
||||||
|
return sideToFill;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#setSideToFill(org.jrimum.texgit.type.component.Side)
|
||||||
|
*/
|
||||||
|
public void setSideToFill(Side sideToFill) {
|
||||||
|
|
||||||
|
if(isNotNull(sideToFill)){
|
||||||
|
this.sideToFill = sideToFill;
|
||||||
|
}else{
|
||||||
|
throw new IllegalArgumentException(format("Lado para preenchimento [%s]!",sideToFill));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(java.lang.String, int)
|
||||||
|
*/
|
||||||
|
public String fill(String toFill, int length){
|
||||||
|
|
||||||
|
String str = null;
|
||||||
|
|
||||||
|
switch(sideToFill){
|
||||||
|
|
||||||
|
case LEFT:
|
||||||
|
str = fillLeft(toFill, length);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RIGHT:
|
||||||
|
str = fillRight(toFill, length);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(long, int)
|
||||||
|
*/
|
||||||
|
public String fill(long tofill, int length){
|
||||||
|
return fill(String.valueOf(tofill), length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(int, int)
|
||||||
|
*/
|
||||||
|
public String fill(int tofill, int length){
|
||||||
|
return fill(String.valueOf(tofill), length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(short, int)
|
||||||
|
*/
|
||||||
|
public String fill(short tofill, int length){
|
||||||
|
return fill(String.valueOf(tofill), length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(byte, int)
|
||||||
|
*/
|
||||||
|
public String fill(byte tofill, int length){
|
||||||
|
return fill(String.valueOf(tofill), length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(char, int)
|
||||||
|
*/
|
||||||
|
public String fill(char tofill, int length){
|
||||||
|
return fill(String.valueOf(tofill), length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(double, int)
|
||||||
|
*/
|
||||||
|
public String fill(double tofill, int length){
|
||||||
|
return fill(String.valueOf(tofill), length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(float, int)
|
||||||
|
*/
|
||||||
|
public String fill(float tofill, int length){
|
||||||
|
return fill(String.valueOf(tofill), length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(java.lang.Object, int)
|
||||||
|
*/
|
||||||
|
public String fill(Object tofill, int length){
|
||||||
|
|
||||||
|
String toFillTemp = null;
|
||||||
|
|
||||||
|
if(isNotNull(tofill)){
|
||||||
|
toFillTemp = tofill.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return fill(toFillTemp, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type#fill(org.jrimum.texgit.TextStream, int)
|
||||||
|
*/
|
||||||
|
public String fill(TextStream tofill, int length){
|
||||||
|
|
||||||
|
String toFillTemp = null;
|
||||||
|
|
||||||
|
if(isNotNull(tofill)){
|
||||||
|
toFillTemp = tofill.write();
|
||||||
|
}
|
||||||
|
|
||||||
|
return fill(toFillTemp, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param toFill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*/
|
||||||
|
private String fillRight(String toFill, int length) {
|
||||||
|
|
||||||
|
return StringUtils.rightPad(toFill, length, padding.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param toFill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
*/
|
||||||
|
private String fillLeft(String toFill, int length) {
|
||||||
|
|
||||||
|
return StringUtils.leftPad(toFill, length, padding.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
|
||||||
|
return format(
|
||||||
|
"Filler [padding=\"%s\", sideToFill=%s]"
|
||||||
|
, Objects.whenNull(this.padding, EMPTY)
|
||||||
|
, Objects.whenNull(this.sideToFill, EMPTY));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,167 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.TextStream;
|
||||||
|
import org.jrimum.utilix.text.Strings;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public enum Fillers implements org.jrimum.texgit.type.Filler{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filler padrão para preenchimento com zeros a esquerda.
|
||||||
|
*/
|
||||||
|
ZERO_LEFT(new Filler<Integer>(0, Side.LEFT)),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filler padrão para preenchimento com zeros a direita.
|
||||||
|
*/
|
||||||
|
ZERO_RIGHT(new Filler<Integer>(0, Side.RIGHT)),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filler padrão para preenchimento com espaços em branco a esquerda.
|
||||||
|
*/
|
||||||
|
WHITE_SPACE_LEFT(new Filler<String>(Strings.WHITE_SPACE, Side.LEFT)),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filler padrão para preenchimento com espaços em branco a direita.
|
||||||
|
*/
|
||||||
|
WHITE_SPACE_RIGHT(new Filler<String>(Strings.WHITE_SPACE, Side.RIGHT));
|
||||||
|
|
||||||
|
private Filler<?> filler;
|
||||||
|
|
||||||
|
private Fillers(Filler<?> filler){
|
||||||
|
this.filler = filler;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param toFill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(java.lang.String, int)
|
||||||
|
*/
|
||||||
|
public String fill(String toFill, int length) {
|
||||||
|
return filler.fill(toFill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(long, int)
|
||||||
|
*/
|
||||||
|
public String fill(long tofill, int length) {
|
||||||
|
return filler.fill(tofill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(int, int)
|
||||||
|
*/
|
||||||
|
public String fill(int tofill, int length) {
|
||||||
|
return filler.fill(tofill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(short, int)
|
||||||
|
*/
|
||||||
|
public String fill(short tofill, int length) {
|
||||||
|
return filler.fill(tofill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(byte, int)
|
||||||
|
*/
|
||||||
|
public String fill(byte tofill, int length) {
|
||||||
|
return filler.fill(tofill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(char, int)
|
||||||
|
*/
|
||||||
|
public String fill(char tofill, int length) {
|
||||||
|
return filler.fill(tofill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(double, int)
|
||||||
|
*/
|
||||||
|
public String fill(double tofill, int length) {
|
||||||
|
return filler.fill(tofill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(float, int)
|
||||||
|
*/
|
||||||
|
public String fill(float tofill, int length) {
|
||||||
|
return filler.fill(tofill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(java.lang.Object, int)
|
||||||
|
*/
|
||||||
|
public String fill(Object tofill, int length) {
|
||||||
|
return filler.fill(tofill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tofill
|
||||||
|
* @param length
|
||||||
|
* @return String preenchida
|
||||||
|
* @see org.jrimum.texgit.type.component.Filler#fill(org.jrimum.texgit.TextStream, int)
|
||||||
|
*/
|
||||||
|
public String fill(TextStream tofill, int length) {
|
||||||
|
return filler.fill(tofill, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,233 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static org.apache.commons.lang.StringUtils.EMPTY;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
|
||||||
|
import java.text.Format;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.type.Filler;
|
||||||
|
import org.jrimum.utilix.Objects;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* @param <G>
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class FixedField<G> extends Field<G> implements org.jrimum.texgit.type.FixedField<G>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Tamanho de especificação e parâmetro da string de leitura ou escrita do campo.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private Integer length;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Preenchedor do valor utilizado na hora da escrita.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private Filler filler;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Tamanho da string de escrita do campo.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private Integer instantLength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Ao ultrapassar o tamanho, define se pode truncar ou se dispara uma exceção.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
private boolean truncate;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public FixedField() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField(G value, Integer length) {
|
||||||
|
super(value);
|
||||||
|
setFixedLength(length);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField(G value, Integer length, Filler filler) {
|
||||||
|
super(value);
|
||||||
|
setFixedLength(length);
|
||||||
|
setFiller(filler);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField(G value, Integer length, Format formatter) {
|
||||||
|
super(value,formatter);
|
||||||
|
setFixedLength(length);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField(G value, Integer length, Format formatter, Filler filler) {
|
||||||
|
super(value,formatter);
|
||||||
|
setFixedLength(length);
|
||||||
|
setFiller(filler);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField(String name, G value, Integer length) {
|
||||||
|
super(name,value);
|
||||||
|
setFixedLength(length);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField(String name, G value, Integer length, Filler filler) {
|
||||||
|
super(name,value);
|
||||||
|
setFixedLength(length);
|
||||||
|
setFiller(filler);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField(String name, G value, Integer length, Format formatter) {
|
||||||
|
super(name,value,formatter);
|
||||||
|
setFixedLength(length);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField(String name, G value, Integer length, Format formatter, Filler filler) {
|
||||||
|
super(name,value,formatter);
|
||||||
|
setFixedLength(length);
|
||||||
|
setFiller(filler);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FixedField<G> clone() throws CloneNotSupportedException {
|
||||||
|
|
||||||
|
return (FixedField<G>) super.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type.component.Field#read(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void read(String str) {
|
||||||
|
|
||||||
|
Objects.checkNotNull(str, "String inválida [null]!");
|
||||||
|
|
||||||
|
if (str.length() == getFixedLength()) {
|
||||||
|
super.read(str);
|
||||||
|
} else
|
||||||
|
throw new IllegalArgumentException(format("Tamanho da string [%s] diferente do especificado [%s]! %s",str.length(),getFixedLength(),toString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.jrimum.texgit.type.component.Field#write()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String write() {
|
||||||
|
|
||||||
|
String str = fill(super.write());
|
||||||
|
|
||||||
|
instantLength = str.length();
|
||||||
|
|
||||||
|
if (isTruncate() && instantLength > getFixedLength()) {
|
||||||
|
str = str.substring(0, getFixedLength());
|
||||||
|
instantLength = getFixedLength();
|
||||||
|
}
|
||||||
|
|
||||||
|
isFixedAsDefined();
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String fill(String str) {
|
||||||
|
|
||||||
|
if(isNotNull(filler))
|
||||||
|
str = filler.fill(str, length);
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFixedAsDefined() throws IllegalStateException {
|
||||||
|
|
||||||
|
if(instantLength.equals(getFixedLength()))
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
throw new IllegalStateException(format("Tamanho da string [%s] diferente do especificado [%s]! %s",instantLength,getFixedLength(),toString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getFixedLength() {
|
||||||
|
|
||||||
|
return this.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFixedLength(Integer length) {
|
||||||
|
|
||||||
|
if (isNotNull(length) && length.intValue() > 0)
|
||||||
|
this.length = length;
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException(format("Comprimento inválido [%s]!",length));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Filler getFiller() {
|
||||||
|
return filler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFiller(Filler filler) {
|
||||||
|
|
||||||
|
if(isNotNull(filler))
|
||||||
|
this.filler = filler;
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException(format("Preenchedor inválido [%s]!",filler));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isTruncate() {
|
||||||
|
return this.truncate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTruncate(boolean truncate) {
|
||||||
|
this.truncate = truncate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
|
||||||
|
return format(
|
||||||
|
"%s FixedField [length=%s, instantLength=%s, filler=%s, truncate=%s]",
|
||||||
|
super.toString()
|
||||||
|
, Objects.whenNull(this.length, EMPTY)
|
||||||
|
, Objects.whenNull(this.instantLength, EMPTY)
|
||||||
|
, Objects.whenNull(this.filler, EMPTY)
|
||||||
|
, Objects.whenNull(this.truncate, EMPTY));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,321 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static org.apache.commons.lang.StringUtils.EMPTY;
|
||||||
|
import static org.apache.commons.lang.StringUtils.isNotBlank;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
import static org.jrimum.utilix.Objects.isNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class FlatFile implements org.jrimum.texgit.FlatFile<org.jrimum.texgit.Record>{
|
||||||
|
|
||||||
|
private List<Record> records;
|
||||||
|
|
||||||
|
private Set<String> repitablesRecords;
|
||||||
|
|
||||||
|
private List<String> recordsOrder;
|
||||||
|
|
||||||
|
private RecordFactory<Record> recordFactory;
|
||||||
|
|
||||||
|
public FlatFile(RecordFactory<Record> iFac4Rec) {
|
||||||
|
|
||||||
|
this.recordFactory = iFac4Rec;
|
||||||
|
this.records = new ArrayList<Record>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Record getRecord(String idName){
|
||||||
|
|
||||||
|
Record record = null;
|
||||||
|
|
||||||
|
if (isNotBlank(idName)) {
|
||||||
|
if (!isRepitable(idName)){
|
||||||
|
if (!records.isEmpty()) {
|
||||||
|
for (Record rec : records) {
|
||||||
|
if (idName.equals(rec.getName()))
|
||||||
|
record = rec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return record;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRepitable(String idName){
|
||||||
|
|
||||||
|
return (isNotNull(repitablesRecords) && !repitablesRecords.isEmpty() && repitablesRecords.contains(idName));
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.jrimum.texgit.Record createRecord(String idName){
|
||||||
|
|
||||||
|
return recordFactory.create(idName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addRecord(Record record){
|
||||||
|
|
||||||
|
if(isNotNull(record))
|
||||||
|
if(isMyRecord(record.getName()))
|
||||||
|
records.add(record);
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException("Record fora de scopo!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isMyRecord(String idName){
|
||||||
|
boolean is = false;
|
||||||
|
|
||||||
|
if (isNotBlank(idName)) {
|
||||||
|
if(!recordsOrder.isEmpty())
|
||||||
|
if(recordsOrder.contains(idName))
|
||||||
|
is = true;
|
||||||
|
}
|
||||||
|
return is;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(List<String> str) {
|
||||||
|
|
||||||
|
if(isNotNull(str)){
|
||||||
|
if(!str.isEmpty()){
|
||||||
|
|
||||||
|
String line = null;
|
||||||
|
int lineIndex = 0;
|
||||||
|
|
||||||
|
FixedField<String> typeRecord = null;
|
||||||
|
Record record = null;
|
||||||
|
|
||||||
|
for(String id : recordsOrder){
|
||||||
|
|
||||||
|
record = recordFactory.create(id);
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
if(isRepitable(id)){
|
||||||
|
|
||||||
|
boolean read = true;
|
||||||
|
|
||||||
|
while(read){
|
||||||
|
|
||||||
|
if(isNull(record))
|
||||||
|
record = recordFactory.create(id);
|
||||||
|
|
||||||
|
if(lineIndex < str.size())
|
||||||
|
line = str.get(lineIndex);
|
||||||
|
|
||||||
|
typeRecord = record.readID(line);
|
||||||
|
|
||||||
|
read = record.getIdType().getValue().equals(typeRecord.getValue()) && (lineIndex < str.size());
|
||||||
|
|
||||||
|
if(read){
|
||||||
|
|
||||||
|
record.read(line);
|
||||||
|
lineIndex++;
|
||||||
|
addRecord(record);
|
||||||
|
|
||||||
|
if(record.isHeadOfGroup()){
|
||||||
|
lineIndex = record.readInnerRecords(str,lineIndex,recordFactory);
|
||||||
|
}
|
||||||
|
|
||||||
|
record = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
if((lineIndex < str.size())){
|
||||||
|
|
||||||
|
line = str.get(lineIndex);
|
||||||
|
typeRecord = record.readID(line);
|
||||||
|
|
||||||
|
if(record.getIdType().getValue().equals(typeRecord.getValue())){
|
||||||
|
|
||||||
|
record.read(line);
|
||||||
|
lineIndex++;
|
||||||
|
addRecord(record);
|
||||||
|
|
||||||
|
if(record.isHeadOfGroup()){
|
||||||
|
lineIndex = record.readInnerRecords(str,lineIndex,recordFactory);
|
||||||
|
}
|
||||||
|
|
||||||
|
record = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(format(
|
||||||
|
"Erro ao tentar ler o registro \"%s\".", record.getName()), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> write() {
|
||||||
|
|
||||||
|
return write(EMPTY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> write(String lineEnding) {
|
||||||
|
|
||||||
|
ArrayList<String> out = new ArrayList<String>(records.size());
|
||||||
|
|
||||||
|
for(String id : recordsOrder){
|
||||||
|
|
||||||
|
if(isRepitable(id)){
|
||||||
|
|
||||||
|
Record rec = null;
|
||||||
|
|
||||||
|
for(org.jrimum.texgit.Record record : getRecords(id)){
|
||||||
|
|
||||||
|
rec = Record.class.cast(record);
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
out.add(rec.write()+lineEnding);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(format(
|
||||||
|
"Erro ao tentar escrever o registro \"%s\".", rec.getName()), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(rec.isHeadOfGroup() && rec.hasInnerRecords()){
|
||||||
|
out.addAll(rec.writeInnerRecords(lineEnding));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
Record rec = getRecord(id);
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
out.add(rec.write()+lineEnding);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(format(
|
||||||
|
"Erro ao tentar escrever o registro \"%s\".", rec.getName()), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(rec.isHeadOfGroup() && rec.hasInnerRecords()){
|
||||||
|
out.addAll(rec.writeInnerRecords(lineEnding));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.jrimum.texgit.FlatFile<org.jrimum.texgit.Record> addRecord(org.jrimum.texgit.Record record) {
|
||||||
|
|
||||||
|
if(isNotNull(record)){
|
||||||
|
Record rec = Record.class.cast(record);
|
||||||
|
addRecord(rec);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<org.jrimum.texgit.Record> getRecords(String idName) {
|
||||||
|
|
||||||
|
List<org.jrimum.texgit.Record> secRecords = new ArrayList<org.jrimum.texgit.Record>();
|
||||||
|
|
||||||
|
if (isNotBlank(idName)) {
|
||||||
|
if (isRepitable(idName)) {
|
||||||
|
if (!records.isEmpty()) {
|
||||||
|
for (Record rec : records) {
|
||||||
|
if (idName.equals(rec.getName()))
|
||||||
|
secRecords.add(rec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return secRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.jrimum.texgit.FlatFile<org.jrimum.texgit.Record> addAllRecords(Collection<org.jrimum.texgit.Record> records) {
|
||||||
|
// TODO IMPLEMENTAR
|
||||||
|
throw new UnsupportedOperationException("AINDA NÃO IMPLEMENTADO!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.jrimum.texgit.FlatFile<org.jrimum.texgit.Record> addRecords(String idName, Collection<org.jrimum.texgit.Record> records) {
|
||||||
|
// TODO IMPLEMENTAR
|
||||||
|
throw new UnsupportedOperationException("AINDA NÃO IMPLEMENTADO!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<org.jrimum.texgit.Record> getAllRecords() {
|
||||||
|
// TODO IMPLEMENTAR
|
||||||
|
throw new UnsupportedOperationException("AINDA NÃO IMPLEMENTADO!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.jrimum.texgit.Record removeRecord(String idName) {
|
||||||
|
// TODO IMPLEMENTAR
|
||||||
|
throw new UnsupportedOperationException("AINDA NÃO IMPLEMENTADO!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.jrimum.texgit.FlatFile<org.jrimum.texgit.Record> setAllRecords(Collection<org.jrimum.texgit.Record> records) {
|
||||||
|
// TODO IMPLEMENTAR
|
||||||
|
throw new UnsupportedOperationException("AINDA NÃO IMPLEMENTADO!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.jrimum.texgit.FlatFile<org.jrimum.texgit.Record> setRecords(String idName, Collection<org.jrimum.texgit.Record> records) {
|
||||||
|
// TODO IMPLEMENTAR
|
||||||
|
throw new UnsupportedOperationException("AINDA NÃO IMPLEMENTADO!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<String> getRepitablesRecords() {
|
||||||
|
return repitablesRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRepitablesRecords(Set<String> repitablesRecords) {
|
||||||
|
this.repitablesRecords = repitablesRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getRecordsOrder() {
|
||||||
|
return recordsOrder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRecordsOrder(List<String> recordsOrder) {
|
||||||
|
this.recordsOrder = recordsOrder;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,446 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static org.apache.commons.lang.StringUtils.EMPTY;
|
||||||
|
import static org.apache.commons.lang.StringUtils.isNotBlank;
|
||||||
|
import static org.jrimum.utilix.Objects.isNotNull;
|
||||||
|
import static org.jrimum.utilix.Objects.isNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.type.Field;
|
||||||
|
import org.jrimum.utilix.Objects;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class Record extends BlockOfFields implements org.jrimum.texgit.Record{
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private FixedField<String> idType;
|
||||||
|
|
||||||
|
private FixedField<Long> sequencialNumber;
|
||||||
|
|
||||||
|
private boolean headOfGroup;
|
||||||
|
|
||||||
|
private List<org.jrimum.texgit.Record> innerRecords;
|
||||||
|
|
||||||
|
private Set<String> repitablesRecords;
|
||||||
|
|
||||||
|
private List<String> declaredInnerRecords;
|
||||||
|
|
||||||
|
public Record() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param length
|
||||||
|
* @param size
|
||||||
|
*/
|
||||||
|
public Record(Integer length, Integer size) {
|
||||||
|
super(length, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Record clone() throws CloneNotSupportedException {
|
||||||
|
//TODO Outros atributos
|
||||||
|
return (Record) super.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("null")
|
||||||
|
public FixedField<String> readID(String lineRecord) {
|
||||||
|
|
||||||
|
FixedField<String> ffID = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
ffID = getIdType().clone();
|
||||||
|
ffID.setName("");
|
||||||
|
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
|
||||||
|
throw new UnsupportedOperationException(format("Quebra de contrato [%s] não suporta clonagem!",Objects.whenNull(ffID, "FixedField", ffID.getClass())), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
getIdType().read(lineRecord.substring(getIdPosition(), getIdPosition() + getIdType().getFixedLength()));
|
||||||
|
|
||||||
|
return ffID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.jrimum.texgit.type.FixedField<?> getField(String fieldName) {
|
||||||
|
|
||||||
|
org.jrimum.texgit.type.FixedField<?> field = null;
|
||||||
|
|
||||||
|
if (isNotBlank(fieldName))
|
||||||
|
if (!getFields().isEmpty())
|
||||||
|
for (FixedField<?> ff : this.getFields())
|
||||||
|
if (ff.getName().equals(fieldName)) {
|
||||||
|
field = ff;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return field;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isMyField(String idName){
|
||||||
|
boolean is = false;
|
||||||
|
|
||||||
|
if (isNotBlank(idName)) {
|
||||||
|
if(!getFields().isEmpty())
|
||||||
|
for(org.jrimum.texgit.type.Field<?> f : getFields())
|
||||||
|
if(idName.equals(f.getName())){
|
||||||
|
is = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return is;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getIdPosition(){
|
||||||
|
int pos = 0;
|
||||||
|
|
||||||
|
for(FixedField<?> ff : this.getFields())
|
||||||
|
if(!ff.getName().equals(idType.getName()))
|
||||||
|
pos += ff.getFixedLength();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int readInnerRecords(List<String> lines, int lineIndex, RecordFactory<Record> iFactory) {
|
||||||
|
|
||||||
|
return readInnerRecords(this,lines,lineIndex,iFactory);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int readInnerRecords(Record record, List<String> lines, int lineIndex, RecordFactory<Record> iFactory) {
|
||||||
|
|
||||||
|
if(isNotNull(record)){
|
||||||
|
|
||||||
|
if(isNotNull(record.getDeclaredInnerRecords()) && !record.getDeclaredInnerRecords().isEmpty()){
|
||||||
|
|
||||||
|
boolean read = true;
|
||||||
|
String line = null;
|
||||||
|
|
||||||
|
FixedField<String> typeRecord = null;
|
||||||
|
Record innerRec = null;
|
||||||
|
|
||||||
|
for(String id : record.getDeclaredInnerRecords()){
|
||||||
|
|
||||||
|
innerRec = iFactory.create(id);
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
if(isRepitable(id)){
|
||||||
|
|
||||||
|
while(read){
|
||||||
|
|
||||||
|
if(isNull(innerRec))
|
||||||
|
innerRec = iFactory.create(id);
|
||||||
|
|
||||||
|
if(lineIndex < lines.size())
|
||||||
|
line = lines.get(lineIndex);
|
||||||
|
|
||||||
|
typeRecord = innerRec.readID(line);
|
||||||
|
|
||||||
|
read = innerRec.getIdType().getValue().equals(typeRecord.getValue()) && (lineIndex < lines.size());
|
||||||
|
|
||||||
|
if(read){
|
||||||
|
|
||||||
|
innerRec.read(line);
|
||||||
|
lineIndex++;
|
||||||
|
record.addInnerRecord(innerRec);
|
||||||
|
|
||||||
|
if(innerRec.isHeadOfGroup())
|
||||||
|
innerRec.readInnerRecords(lines,lineIndex,iFactory);
|
||||||
|
|
||||||
|
innerRec = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
if((lineIndex < lines.size())){
|
||||||
|
|
||||||
|
line = lines.get(lineIndex);
|
||||||
|
typeRecord = innerRec.readID(line);
|
||||||
|
|
||||||
|
if(innerRec.getIdType().getValue().equals(typeRecord.getValue())){
|
||||||
|
|
||||||
|
innerRec.read(line);
|
||||||
|
lineIndex++;
|
||||||
|
record.addInnerRecord(innerRec);
|
||||||
|
|
||||||
|
if(innerRec.isHeadOfGroup())
|
||||||
|
innerRec.readInnerRecords(lines,lineIndex,iFactory);
|
||||||
|
|
||||||
|
innerRec = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(format(
|
||||||
|
"Erro ao tentar ler o registro \"%s\".",
|
||||||
|
innerRec.getName()), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return lineIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> writeInnerRecords(){
|
||||||
|
|
||||||
|
return writeInnerRecords(this,EMPTY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> writeInnerRecords(String lineEnding){
|
||||||
|
|
||||||
|
return writeInnerRecords(this,lineEnding);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> writeInnerRecords(Record record, String lineEnding){
|
||||||
|
|
||||||
|
ArrayList<String> out = new ArrayList<String>(record.getInnerRecords().size());
|
||||||
|
|
||||||
|
for(String id : getDeclaredInnerRecords()){//ordem
|
||||||
|
|
||||||
|
if(isRepitable(id)){
|
||||||
|
|
||||||
|
for(Record rec : getRecords(id)){
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
out.add(rec.write()+lineEnding);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(format(
|
||||||
|
"Erro ao tentar escrever o registro \"%s\".", rec.getName()), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(rec.isHeadOfGroup())
|
||||||
|
out.addAll(rec.writeInnerRecords());
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
Record rec = getRecord(id);
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
out.add(rec.write()+lineEnding);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
throw new IllegalStateException(format(
|
||||||
|
"Erro ao tentar escrever o registro \"%s\".", rec.getName()), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(rec.isHeadOfGroup())
|
||||||
|
out.addAll(rec.writeInnerRecords());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Record getRecord(String idName){
|
||||||
|
|
||||||
|
Record record = null;
|
||||||
|
|
||||||
|
if (isNotBlank(idName)) {
|
||||||
|
if (!isRepitable(idName)){
|
||||||
|
if (!getInnerRecords().isEmpty()) {
|
||||||
|
for (org.jrimum.texgit.Record iRec : getInnerRecords()) {
|
||||||
|
Record rec = (Record) iRec;
|
||||||
|
if (idName.equals(rec.getName()))
|
||||||
|
record = rec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return record;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Record> getRecords(String idName) {
|
||||||
|
|
||||||
|
List<Record> secRecords = new ArrayList<Record>();
|
||||||
|
|
||||||
|
if (isNotBlank(idName)) {
|
||||||
|
if (isRepitable(idName)) {
|
||||||
|
if (!getInnerRecords().isEmpty()) {
|
||||||
|
for (org.jrimum.texgit.Record iRec : getInnerRecords()) {
|
||||||
|
Record rec = (Record) iRec;
|
||||||
|
if (idName.equals(rec.getName()))
|
||||||
|
secRecords.add(rec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return secRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRepitable(String idName){
|
||||||
|
|
||||||
|
return (isNotNull(repitablesRecords) && !repitablesRecords.isEmpty() && repitablesRecords.contains(idName));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isMyRecord(String idName){
|
||||||
|
boolean is = false;
|
||||||
|
|
||||||
|
if (isNotBlank(idName)) {
|
||||||
|
if(!getDeclaredInnerRecords().isEmpty())
|
||||||
|
if(getDeclaredInnerRecords().contains(idName))
|
||||||
|
is = true;
|
||||||
|
}
|
||||||
|
return is;
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.jrimum.texgit.Record addInnerRecord(org.jrimum.texgit.Record record) {
|
||||||
|
|
||||||
|
if(isNotNull(record)){
|
||||||
|
if(isNull(this.innerRecords))
|
||||||
|
this.innerRecords = new ArrayList<org.jrimum.texgit.Record>();
|
||||||
|
|
||||||
|
if(isMyRecord(Record.class.cast(record).getName()))
|
||||||
|
this.innerRecords.add(record);
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException("Record fora de scopo!");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<org.jrimum.texgit.Record> getInnerRecords() {
|
||||||
|
|
||||||
|
return this.innerRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public <G> G getValue(String fieldName) {
|
||||||
|
|
||||||
|
G value = null;
|
||||||
|
|
||||||
|
org.jrimum.texgit.type.Field<?> f = getField(fieldName);
|
||||||
|
|
||||||
|
if(isNotNull(f))
|
||||||
|
value = (G) f.getValue();
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public <G> org.jrimum.texgit.Record setValue(String fieldName, G value) {
|
||||||
|
|
||||||
|
org.jrimum.texgit.type.Field<G> f = (Field<G>) getField(fieldName);
|
||||||
|
|
||||||
|
if(isNotNull(f))
|
||||||
|
f.setValue(value);
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasInnerRecords(){
|
||||||
|
return getInnerRecords() != null && !getInnerRecords().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField<String> getIdType() {
|
||||||
|
return idType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIdType(FixedField<String> idType) {
|
||||||
|
this.idType = idType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedField<Long> getSequencialNumber() {
|
||||||
|
return sequencialNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSequencialNumber(FixedField<Long> sequencialNumber) {
|
||||||
|
this.sequencialNumber = sequencialNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHeadOfGroup() {
|
||||||
|
return headOfGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeadOfGroup(boolean headOfGroup) {
|
||||||
|
this.headOfGroup = headOfGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getDeclaredInnerRecords() {
|
||||||
|
return declaredInnerRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeclaredInnerRecords(List<String> declaredInnerRecords) {
|
||||||
|
this.declaredInnerRecords = declaredInnerRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<String> getRepitablesRecords() {
|
||||||
|
return repitablesRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRepitablesRecords(Set<String> repitablesRecords) {
|
||||||
|
this.repitablesRecords = repitablesRecords;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 26/07/2008 - 12:44:41
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.Record;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* @param <G>
|
||||||
|
*/
|
||||||
|
public interface RecordFactory <G extends Record>{
|
||||||
|
|
||||||
|
public abstract G create(String name);
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lados para alinhar campos, preenchimento ou orientações em geral.
|
||||||
|
*
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*/
|
||||||
|
public enum Side {
|
||||||
|
|
||||||
|
LEFT,
|
||||||
|
|
||||||
|
RIGHT;
|
||||||
|
}
|
|
@ -0,0 +1,537 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 03/08/2008 - 12:27:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a> -->
|
||||||
|
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0"
|
||||||
|
elementFormDefault="unqualified" attributeFormDefault="unqualified"
|
||||||
|
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="2.0"
|
||||||
|
xmlns:txg="http://jrimum.org/texgit"
|
||||||
|
targetNamespace="http://jrimum.org/texgit">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
Representação de classes e atributos usados para definição
|
||||||
|
da linguagem Texgit.
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
<xs:element name="Texgit" type="txg:MetaTexgit" />
|
||||||
|
|
||||||
|
<!-- ============== Tipos Complexos ============== -->
|
||||||
|
|
||||||
|
<xs:complexType name="MetaTexgit">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Elemento root.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="FlatFile" type="txg:MetaFlatFile"
|
||||||
|
minOccurs="1" maxOccurs="1" />
|
||||||
|
</xs:all>
|
||||||
|
<xs:attribute name="version" type="txg:TexgitVersion"
|
||||||
|
use="optional" default="1.0-academic">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
Versão Da Linguagem Textgit
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="MetaFlatFile">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Flat File é um tipo de arquivo texto com informações estruturadas
|
||||||
|
com base em formatações e estruturas pré definidas. veja mais em (link).
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="layout" type="txg:MetaLayout"
|
||||||
|
minOccurs="0" maxOccurs="1" />
|
||||||
|
<xs:element name="GroupOfRecords"
|
||||||
|
type="txg:MetaGroupRecords" minOccurs="1" maxOccurs="1" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="MetaLayout">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Tags para informar o layout do flafile definido.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="name" type="txg:MetaDescription"
|
||||||
|
minOccurs="0" maxOccurs="1" />
|
||||||
|
<xs:element name="version" type="txg:MetaDescription"
|
||||||
|
minOccurs="0" maxOccurs="1" />
|
||||||
|
<xs:element name="description" type="txg:MetaDescription"
|
||||||
|
minOccurs="0" maxOccurs="1" />
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="MetaGroupRecords">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Conjunto de records de um flatfile ou relacionados a um outro record.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Record" type="txg:MetaRecord"
|
||||||
|
minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:property name="records" />
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="MetaRecord">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Uma espécie de container de fields numa forma mais simples, usualmente é conhecido como
|
||||||
|
Registro ou Bloco.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="GroupOfFields" type="txg:MetaGroupFields"
|
||||||
|
minOccurs="1" maxOccurs="1" />
|
||||||
|
<xs:element name="GroupOfInnerRecords"
|
||||||
|
type="txg:MetaGroupRecords" minOccurs="0" maxOccurs="1" />
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="name" type="txg:MetaName" use="optional" />
|
||||||
|
<xs:attribute name="repeatable" type="xs:boolean" use="optional"
|
||||||
|
default="false" />
|
||||||
|
<xs:attribute name="description" type="txg:MetaDescription"
|
||||||
|
use="optional" />
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="MetaGroupFields">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Agregado de fields.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="IdType" type="txg:MetaOrderedField"
|
||||||
|
minOccurs="1" maxOccurs="1">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Identificação para um tipo de Record.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Field" type="txg:MetaField" minOccurs="1"
|
||||||
|
maxOccurs="unbounded">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:property name="fields" />
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="SequencialNumber"
|
||||||
|
type="txg:MetaOrderedField" minOccurs="0" maxOccurs="1">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Field para sequenciamento do de um Record.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="MetaField">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Field é a unidade básica de informação de um registro, um field está para
|
||||||
|
um registro assim como uma coluna de banco de dados está para uma tabela.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="Filler" type="txg:MetaFiller"
|
||||||
|
minOccurs="0" maxOccurs="1" />
|
||||||
|
<xs:element name="Formatter" type="txg:MetaFormatter"
|
||||||
|
minOccurs="0" maxOccurs="1" />
|
||||||
|
</xs:all>
|
||||||
|
<xs:attribute name="name" type="txg:MetaName" use="required" />
|
||||||
|
<xs:attribute name="value" type="txg:MetaFormat" use="optional"
|
||||||
|
default=" " />
|
||||||
|
<xs:attribute name="length" type="txg:MetaLength"
|
||||||
|
use="required" />
|
||||||
|
<xs:attribute name="truncate" type="xs:boolean"
|
||||||
|
use="optional" default="false" />
|
||||||
|
<xs:attribute name="blankAccepted" type="xs:boolean"
|
||||||
|
use="optional" default="false" />
|
||||||
|
<xs:attribute name="type" type="txg:enumTypes" default="STRING" />
|
||||||
|
<xs:attribute name="format" type="txg:enumFormats"
|
||||||
|
use="optional" />
|
||||||
|
<xs:attribute name="padding" type="txg:enumPaddings"
|
||||||
|
use="optional" default="WHITE_SPACE_RIGHT" />
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="MetaOrderedField">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Para definição da posição.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="txg:MetaField">
|
||||||
|
<xs:attribute name="position" type="txg:MetaLength"
|
||||||
|
use="required" />
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="MetaFiller">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Instrumento utilizado para preencher um field com um formato e caracteres
|
||||||
|
pré definidos.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence />
|
||||||
|
<xs:attribute name="padding" type="txg:MetaFormat"
|
||||||
|
use="required" />
|
||||||
|
<xs:attribute name="sideToFill" type="txg:enumSide"
|
||||||
|
use="optional" default="LEFT" />
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="MetaFormatter">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:class>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Formato utilizado por um Filler (Preenchedor).
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:class>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence />
|
||||||
|
<xs:attribute name="format" type="txg:MetaFormat"
|
||||||
|
use="required" />
|
||||||
|
<xs:attribute name="type" type="txg:enumFormatsTypes"
|
||||||
|
use="required" />
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ============== Tipos Simples Atributos e Enumerações ============== -->
|
||||||
|
|
||||||
|
<!-- ============== Tipos Simples: Regras Para Atributos ============== -->
|
||||||
|
|
||||||
|
<xs:simpleType name="TexgitVersion">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
Versão da linguagem utilizada para descricação de flat
|
||||||
|
files.
|
||||||
|
|
||||||
|
Padrão: "d.d ou d.d-'tag' ou d.d-'tag'd" Exemplo: 1.4 ou
|
||||||
|
1.23-beta ou 1.23-beta5
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:whiteSpace value="collapse" />
|
||||||
|
<xs:minLength value="3" />
|
||||||
|
<xs:pattern value="(\d+\.\d+|\d+\.\d+\-[a-z]+\d*)" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<xs:simpleType name="MetaName">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
Tipificação e regras para campos strings utilizados como
|
||||||
|
identificadores. Padarão: letras,dígitos, traços (-) ou
|
||||||
|
underlines (_).
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:whiteSpace value="collapse" />
|
||||||
|
<xs:minLength value="1" />
|
||||||
|
<xs:pattern value="([a-zA-Z_\d\-])+" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<xs:simpleType name="MetaDescription">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
Tipificação e regras para descrição de campos strings.
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:whiteSpace value="preserve" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<xs:simpleType name="MetaLength">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
Tipificação e regras para campos interios usados como
|
||||||
|
represenações de quantidade
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:int">
|
||||||
|
<xs:minInclusive value="1" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<xs:simpleType name="MetaFormat">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
Tipificação e regras para campos strings utilizados como
|
||||||
|
definições de formatos.
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:minLength value="1" />
|
||||||
|
<xs:whiteSpace value="preserve" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<!-- ============== Tipos Simples: Enumerações Para Atributos ============== -->
|
||||||
|
|
||||||
|
<xs:simpleType name="enumFormats">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:typesafeEnumClass>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Formatos pré definidos suportados pelo
|
||||||
|
componente.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:typesafeEnumClass>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="DATE_DDMMYY" />
|
||||||
|
<xs:enumeration value="DATE_DDMMYYYY" />
|
||||||
|
<xs:enumeration value="DATE_YYMMDD" />
|
||||||
|
<xs:enumeration value="DATE_YYYYMMDD" />
|
||||||
|
<xs:enumeration value="DECIMAL_D" />
|
||||||
|
<xs:enumeration value="DECIMAL_DD" />
|
||||||
|
<xs:enumeration value="DECIMAL_DDD" />
|
||||||
|
<xs:enumeration value="DECIMAL_DDDD" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<xs:simpleType name="enumFormatsTypes">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:typesafeEnumClass>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Tipo de formatadores suportados. Usados junto a
|
||||||
|
definição de novos formatadores.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:typesafeEnumClass>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="DATE" />
|
||||||
|
<xs:enumeration value="DECIMAL" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<xs:simpleType name="enumPaddings">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:typesafeEnumClass>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Preenchimentos suportados por padrão pelo
|
||||||
|
componente.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:typesafeEnumClass>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="ZERO_RIGHT" />
|
||||||
|
<xs:enumeration value="ZERO_LEFT" />
|
||||||
|
<xs:enumeration value="WHITE_SPACE_RIGHT" />
|
||||||
|
<xs:enumeration value="WHITE_SPACE_LEFT" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<xs:simpleType name="enumSide">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:typesafeEnumClass>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Basicamente são definições de direções de
|
||||||
|
escrita e leitura.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:typesafeEnumClass>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="LEFT" />
|
||||||
|
<xs:enumeration value="RIGHT" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
<xs:simpleType name="enumTypes">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<jxb:typesafeEnumClass>
|
||||||
|
<jxb:javadoc>
|
||||||
|
<![CDATA[
|
||||||
|
<p>
|
||||||
|
Tipos usados para obtenção dos campos de texto
|
||||||
|
para java. No caso representa os tipos java
|
||||||
|
possíveis para um campo.
|
||||||
|
</p>
|
||||||
|
]]>
|
||||||
|
</jxb:javadoc>
|
||||||
|
</jxb:typesafeEnumClass>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="CHARACTER" />
|
||||||
|
<xs:enumeration value="STRING" />
|
||||||
|
<xs:enumeration value="INTEGER" />
|
||||||
|
<xs:enumeration value="LONG" />
|
||||||
|
<xs:enumeration value="FLOAT" />
|
||||||
|
<xs:enumeration value="DOUBLE" />
|
||||||
|
<xs:enumeration value="BIGDECIMAL" />
|
||||||
|
<xs:enumeration value="DATE" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
</xs:schema>
|
||||||
|
|
|
@ -0,0 +1,257 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 30/03/2008 - 18:15:42
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 30/03/2008 - 18:15:42
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.TextStream;
|
||||||
|
import org.jrimum.texgit.type.component.Filler;
|
||||||
|
import org.jrimum.utilix.text.Strings;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Teste unitário para a classe <code>Filler</code>.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
* @author <a href="mailto:romulomail@gmail.com">Rômulo Augusto</a>
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*
|
||||||
|
* @version 0.2
|
||||||
|
*/
|
||||||
|
public class TestFiller {
|
||||||
|
|
||||||
|
private static final String CAMPO = "TESTE";
|
||||||
|
|
||||||
|
private static final int TAMANHO = 10;
|
||||||
|
|
||||||
|
private Filler<String> fillerString;
|
||||||
|
private Filler<Integer> fillerInteger;
|
||||||
|
private Filler<Double> fillerDouble;
|
||||||
|
private Filler<Side> fillerSide;
|
||||||
|
private Filler<String> whiteSpaceLeft;
|
||||||
|
private Filler<Integer> zeroLeft ;
|
||||||
|
private Filler<Integer> zeroRight;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup(){
|
||||||
|
whiteSpaceLeft = new Filler<String>(Strings.WHITE_SPACE, Side.LEFT);
|
||||||
|
zeroLeft = new Filler<Integer>(0, Side.LEFT);
|
||||||
|
zeroRight = new Filler<Integer>(0, Side.RIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testSetSideNullValue() {
|
||||||
|
|
||||||
|
whiteSpaceLeft.setSideToFill(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testSetToFillNullValue() {
|
||||||
|
|
||||||
|
whiteSpaceLeft.setPadding(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetToFill() {
|
||||||
|
|
||||||
|
whiteSpaceLeft.setPadding(CAMPO);
|
||||||
|
|
||||||
|
assertTrue(whiteSpaceLeft.getPadding() instanceof String);
|
||||||
|
assertEquals(whiteSpaceLeft.getPadding(), CAMPO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetSide() {
|
||||||
|
|
||||||
|
whiteSpaceLeft.setSideToFill(Side.RIGHT);
|
||||||
|
|
||||||
|
assertEquals(whiteSpaceLeft.getSideToFill(), Side.RIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testFiller() {
|
||||||
|
|
||||||
|
new Filler<String>(null, null);
|
||||||
|
new Filler<String>("", null);
|
||||||
|
new Filler<String>(null, Side.LEFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillString() {
|
||||||
|
|
||||||
|
assertEquals(CAMPO + "00000", zeroRight.fill(CAMPO, TAMANHO));
|
||||||
|
assertEquals("00000" + CAMPO, zeroLeft.fill(CAMPO, TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillLong() {
|
||||||
|
|
||||||
|
assertEquals(1L + "000000000", zeroRight.fill(1L, TAMANHO));
|
||||||
|
assertEquals("000000000" + 1L, zeroLeft.fill(1L, TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillInt() {
|
||||||
|
|
||||||
|
assertEquals(1 + "000000000", zeroRight.fill(1, TAMANHO));
|
||||||
|
assertEquals("000000000" + 1, zeroLeft.fill(1, TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillShort() {
|
||||||
|
|
||||||
|
assertEquals((short) 1 + "000000000", zeroRight.fill((short) 1,
|
||||||
|
TAMANHO));
|
||||||
|
assertEquals("000000000" + (short) 1, zeroLeft.fill((short) 1,
|
||||||
|
TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillByte() {
|
||||||
|
|
||||||
|
assertEquals((byte) 1 + "000000000", zeroRight.fill((byte) 1,
|
||||||
|
TAMANHO));
|
||||||
|
assertEquals("000000000" + (byte) 1, zeroLeft.fill((byte) 1,
|
||||||
|
TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillChar() {
|
||||||
|
|
||||||
|
assertEquals('1' + "000000000", zeroRight.fill('1', TAMANHO));
|
||||||
|
assertEquals("000000000" + '1', zeroLeft.fill('1', TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillDouble() {
|
||||||
|
|
||||||
|
assertEquals(1.0 + "0000000", zeroRight.fill(1.0, TAMANHO));
|
||||||
|
assertEquals("0000000" + 1.0, zeroLeft.fill(1.0, TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillFloat() {
|
||||||
|
|
||||||
|
assertEquals(1.0f + "0000000", zeroRight.fill(1.0f, TAMANHO));
|
||||||
|
assertEquals("0000000" + 1.0f, zeroLeft.fill(1.0f, TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillObject() {
|
||||||
|
|
||||||
|
Object object = new Object() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return CAMPO;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
assertEquals(object + "00000", zeroRight.fill(object, TAMANHO));
|
||||||
|
assertEquals("00000" + object, zeroLeft.fill(object, TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFillITextStream() {
|
||||||
|
|
||||||
|
TextStream textStream = new TextStream() {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public void read(String g) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String write() {
|
||||||
|
|
||||||
|
return CAMPO;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
assertEquals(textStream.write() + "00000", zeroRight.fill(
|
||||||
|
textStream, TAMANHO));
|
||||||
|
assertEquals("00000" + textStream.write(), zeroLeft.fill(
|
||||||
|
textStream, TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFill() {
|
||||||
|
|
||||||
|
fillerString = new Filler<String>("ABC", Side.LEFT);
|
||||||
|
assertTrue(fillerString.getPadding() instanceof String);
|
||||||
|
assertEquals("ABCAB" + CAMPO, fillerString.fill(CAMPO, TAMANHO));
|
||||||
|
assertEquals(CAMPO, fillerString.fill(CAMPO, 0));
|
||||||
|
assertEquals(CAMPO, fillerString.fill(CAMPO, -TAMANHO));
|
||||||
|
|
||||||
|
fillerString.setSideToFill(Side.RIGHT);
|
||||||
|
assertEquals(CAMPO + "ABCAB", fillerString.fill(CAMPO, TAMANHO));
|
||||||
|
assertEquals(CAMPO, fillerString.fill(CAMPO, 0));
|
||||||
|
assertEquals(CAMPO, fillerString.fill(CAMPO, -TAMANHO));
|
||||||
|
|
||||||
|
fillerInteger = new Filler<Integer>(new Integer(TAMANHO),
|
||||||
|
Side.LEFT);
|
||||||
|
assertTrue(fillerInteger.getPadding() instanceof Integer);
|
||||||
|
assertEquals("10101" + CAMPO, fillerInteger.fill(CAMPO, TAMANHO));
|
||||||
|
assertEquals(CAMPO, fillerInteger.fill(CAMPO, 0));
|
||||||
|
assertEquals(CAMPO, fillerInteger.fill(CAMPO, -TAMANHO));
|
||||||
|
|
||||||
|
fillerInteger.setSideToFill(Side.RIGHT);
|
||||||
|
assertEquals(CAMPO + "10101", fillerInteger.fill(CAMPO, TAMANHO));
|
||||||
|
assertEquals(CAMPO, fillerInteger.fill(CAMPO, 0));
|
||||||
|
assertEquals(CAMPO, fillerInteger.fill(CAMPO, -TAMANHO));
|
||||||
|
|
||||||
|
fillerDouble = new Filler<Double>(new Double(10.9), Side.LEFT);
|
||||||
|
assertTrue(fillerDouble.getPadding() instanceof Double);
|
||||||
|
assertEquals("10.91" + CAMPO, fillerDouble.fill(CAMPO, TAMANHO));
|
||||||
|
assertEquals(CAMPO, fillerDouble.fill(CAMPO, 0));
|
||||||
|
assertEquals(CAMPO, fillerDouble.fill(CAMPO, -TAMANHO));
|
||||||
|
|
||||||
|
fillerDouble.setSideToFill(Side.RIGHT);
|
||||||
|
assertEquals(CAMPO + "10.91", fillerDouble.fill(CAMPO, TAMANHO));
|
||||||
|
assertEquals(CAMPO, fillerDouble.fill(CAMPO, 0));
|
||||||
|
assertEquals(CAMPO, fillerDouble.fill(CAMPO, -TAMANHO));
|
||||||
|
|
||||||
|
fillerSide = new Filler<Side>(Side.LEFT, Side.LEFT);
|
||||||
|
assertTrue(fillerSide.getPadding() instanceof Side);
|
||||||
|
assertEquals("LEFTL" + CAMPO, fillerSide.fill(CAMPO, TAMANHO));
|
||||||
|
assertEquals(CAMPO, fillerSide.fill(CAMPO, 0));
|
||||||
|
assertEquals(CAMPO, fillerSide.fill(CAMPO, -TAMANHO));
|
||||||
|
|
||||||
|
fillerSide.setSideToFill(Side.RIGHT);
|
||||||
|
assertEquals(CAMPO + "LEFTL", fillerSide.fill(CAMPO, TAMANHO));
|
||||||
|
assertEquals(CAMPO, fillerSide.fill(CAMPO, 0));
|
||||||
|
assertEquals(CAMPO, fillerSide.fill(CAMPO, -TAMANHO));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,228 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 30/03/2008 - 18:15:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 30/03/2008 - 18:15:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jrimum.texgit.type.component;
|
||||||
|
|
||||||
|
import static org.jrimum.utilix.text.DateFormat.DDMMYYYY_B;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.Format;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.jrimum.utilix.Dates;
|
||||||
|
import org.jrimum.utilix.text.DecimalFormat;
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Teste unitário para a classe utilitária de coleções.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
* @author <a href="mailto:romulomail@gmail.com">Rômulo Augusto</a>
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*
|
||||||
|
* @version 0.2
|
||||||
|
*/
|
||||||
|
public class TestFixedField {
|
||||||
|
|
||||||
|
private static final DateFormat FORMAT_DDMMYY = new SimpleDateFormat("ddMMyy");
|
||||||
|
|
||||||
|
private FixedField<String> campoString;
|
||||||
|
|
||||||
|
private FixedField<Integer> campoInteger;
|
||||||
|
|
||||||
|
private FixedField<Long> campoLong;
|
||||||
|
|
||||||
|
private FixedField<Date> campoDate;
|
||||||
|
|
||||||
|
private FixedField<BigDecimal> campoDecimal;
|
||||||
|
|
||||||
|
private FixedField<BigDecimal> campoDecimal_v9;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() {
|
||||||
|
|
||||||
|
campoString = new FixedField<String>(StringUtils.EMPTY, 8, Fillers.WHITE_SPACE_RIGHT);
|
||||||
|
|
||||||
|
campoDate = new FixedField<Date>(DDMMYYYY_B.parse("22/07/2007"), 6, FORMAT_DDMMYY);
|
||||||
|
|
||||||
|
campoInteger = new FixedField<Integer>(0, 6, Fillers.ZERO_LEFT);
|
||||||
|
|
||||||
|
campoLong = new FixedField<Long>(0L, 6, Fillers.ZERO_LEFT);
|
||||||
|
|
||||||
|
campoDecimal = new FixedField<BigDecimal>(new BigDecimal("875.98"), 11, DecimalFormat.NUMBER_DD_BR.copy(), Fillers.ZERO_LEFT);
|
||||||
|
|
||||||
|
campoDecimal_v9 = new FixedField<BigDecimal>(new BigDecimal("875.9"), 10, DecimalFormat.NUMBER_D_BR.copy(), Fillers.ZERO_LEFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() {
|
||||||
|
|
||||||
|
campoString = null;
|
||||||
|
campoDate = null;
|
||||||
|
campoInteger = null;
|
||||||
|
campoLong = null;
|
||||||
|
campoDecimal = null;
|
||||||
|
campoDecimal_v9 = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testCampo() {
|
||||||
|
|
||||||
|
Format format = null;
|
||||||
|
|
||||||
|
campoDate = new FixedField<Date>(new Date(), 0, FORMAT_DDMMYY);
|
||||||
|
campoDate = new FixedField<Date>(null, 1, FORMAT_DDMMYY);
|
||||||
|
campoDate = new FixedField<Date>(new Date(), 0, format);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLer() {
|
||||||
|
|
||||||
|
campoString.read("COBRANCA");
|
||||||
|
assertNotNull(campoString.getValue());
|
||||||
|
assertTrue(campoString.getValue() instanceof String);
|
||||||
|
assertEquals("COBRANCA", campoString.getValue().toString());
|
||||||
|
|
||||||
|
campoDate.read("011002");
|
||||||
|
assertNotNull(campoDate.getValue());
|
||||||
|
assertTrue(campoDate.getValue() instanceof Date);
|
||||||
|
assertEquals("011002", FORMAT_DDMMYY.format(campoDate
|
||||||
|
.getValue()));
|
||||||
|
|
||||||
|
campoInteger.read("000001");
|
||||||
|
assertNotNull(campoInteger.getValue());
|
||||||
|
assertTrue(campoInteger.getValue() instanceof Integer);
|
||||||
|
assertTrue(new Integer(1).compareTo(campoInteger.getValue()) == 0);
|
||||||
|
|
||||||
|
campoLong.read("000001");
|
||||||
|
assertNotNull(campoLong.getValue());
|
||||||
|
assertTrue(campoLong.getValue() instanceof Long);
|
||||||
|
assertTrue(new Long(1L).compareTo(campoLong.getValue()) == 0);
|
||||||
|
|
||||||
|
campoDecimal.read("00000087598");
|
||||||
|
assertNotNull(campoDecimal.getValue());
|
||||||
|
assertTrue(campoDecimal.getValue() instanceof BigDecimal);
|
||||||
|
assertTrue(new BigDecimal("875.98").compareTo(campoDecimal.getValue()) == 0);
|
||||||
|
|
||||||
|
campoDecimal_v9.read("0000008759");
|
||||||
|
assertNotNull(campoDecimal_v9.getValue());
|
||||||
|
assertTrue(campoDecimal_v9.getValue() instanceof BigDecimal);
|
||||||
|
assertTrue(new BigDecimal("875.9").compareTo(campoDecimal_v9
|
||||||
|
.getValue()) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testLerException() {
|
||||||
|
|
||||||
|
campoString.read(null);
|
||||||
|
campoDate.read(null);
|
||||||
|
campoDate.read("");
|
||||||
|
campoDate.read("abcd");
|
||||||
|
campoDate.read("1a2MA1205");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEscrever() {
|
||||||
|
|
||||||
|
assertNotNull(campoString.write());
|
||||||
|
assertEquals(" ", campoString.write());
|
||||||
|
assertEquals(8, campoString.write().length());
|
||||||
|
|
||||||
|
assertNotNull(campoDate.write());
|
||||||
|
assertEquals("220707", campoDate.write());
|
||||||
|
assertEquals(6, campoDate.write().length());
|
||||||
|
|
||||||
|
campoDate.setValue(Dates.invalidDate());
|
||||||
|
campoDate.setFiller(Fillers.ZERO_LEFT);
|
||||||
|
assertNotNull(campoDate.write());
|
||||||
|
assertEquals("000000", campoDate.write());
|
||||||
|
assertEquals(6, campoDate.write().length());
|
||||||
|
|
||||||
|
assertNotNull(campoInteger.write());
|
||||||
|
assertEquals("000000", campoInteger.write());
|
||||||
|
assertEquals(6, campoInteger.write().length());
|
||||||
|
|
||||||
|
assertNotNull(campoLong.write());
|
||||||
|
assertEquals("000000", campoLong.write());
|
||||||
|
assertEquals(6, campoLong.write().length());
|
||||||
|
|
||||||
|
assertNotNull(campoDecimal.write());
|
||||||
|
assertEquals("00000087598", campoDecimal.write());
|
||||||
|
assertEquals(11, campoDecimal.write().length());
|
||||||
|
|
||||||
|
assertNotNull(campoDecimal_v9.write());
|
||||||
|
assertEquals("0000008759", campoDecimal_v9.write());
|
||||||
|
assertEquals(10, campoDecimal_v9.write().length());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalStateException.class)
|
||||||
|
public void testEscreverException() {
|
||||||
|
|
||||||
|
FixedField<String> campo = new FixedField<String>("tamanho", 5);
|
||||||
|
assertEquals(5, campo.write().length());
|
||||||
|
|
||||||
|
FixedField<Integer> campo1 = new FixedField<Integer>(1234, 3);
|
||||||
|
assertEquals(3, campo1.write().length());
|
||||||
|
|
||||||
|
FixedField<Integer> campo2 = new FixedField<Integer>(12, 3);
|
||||||
|
assertEquals(3, campo2.write().length());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testSetCampo() {
|
||||||
|
campoInteger.setValue(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testSetTamanhoZero() {
|
||||||
|
campoString.setFixedLength(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testSetTamanhoNegativo() {
|
||||||
|
campoString.setFixedLength(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testSetFiller() {
|
||||||
|
campoString.setFiller(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||||
|
* applicable law or agreed to in writing, software distributed under the
|
||||||
|
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
* OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing permissions and limitations under the License.
|
||||||
|
*
|
||||||
|
* Created at: 30/03/2008 - 18:15:56
|
||||||
|
*
|
||||||
|
* ================================================================================
|
||||||
|
*
|
||||||
|
* Direitos autorais 2008 JRimum Project
|
||||||
|
*
|
||||||
|
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
|
||||||
|
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
|
||||||
|
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
|
||||||
|
* haja exigência legal ou acordo por escrito, a distribuição de software sob
|
||||||
|
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
|
||||||
|
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
|
||||||
|
* reger permissões e limitações sob esta LICENÇA.
|
||||||
|
*
|
||||||
|
* Criado em: 30/03/2008 - 18:15:56
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.jrimum.utilix.excludes;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.type.FixedField;
|
||||||
|
import org.jrimum.texgit.type.component.Field;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Classe para uso em testes com <code>Fields</code>.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
|
||||||
|
*
|
||||||
|
* @since 0.2
|
||||||
|
*
|
||||||
|
* @version 0.2
|
||||||
|
*/
|
||||||
|
public class TestUtil {
|
||||||
|
|
||||||
|
public static <G> void testEscritaCampo(FixedField<G> campo, Class<G> tipo,
|
||||||
|
G valorDeEntrada, String strEsperada, int tamanho) {
|
||||||
|
|
||||||
|
// >>>
|
||||||
|
assertNotNull(campo);
|
||||||
|
assertTrue(tipo.isInstance(campo.getValue()));
|
||||||
|
assertEquals(valorDeEntrada, campo.getValue());
|
||||||
|
assertNotNull(campo.write());
|
||||||
|
assertEquals(strEsperada, campo.write());
|
||||||
|
assertTrue(tamanho == campo.getFixedLength());
|
||||||
|
assertTrue(tamanho == campo.write().length());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <G> void testLeituraCampo(Field<G> campo, Class<G> tipo,
|
||||||
|
G valorEsperado, String strDeEntrada) {
|
||||||
|
|
||||||
|
// <<<
|
||||||
|
campo.read(strDeEntrada);
|
||||||
|
assertTrue(tipo.isInstance(campo.getValue()));
|
||||||
|
|
||||||
|
if (campo.getValue() instanceof Date)// compareNoFormatoEscrito
|
||||||
|
assertEquals(campo.getFormatter().format(valorEsperado), campo.write());
|
||||||
|
else
|
||||||
|
assertEquals(valorEsperado, campo.getValue());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue