diff options
author | CGantert345 <57003061+CGantert345@users.noreply.github.com> | 2023-02-10 14:45:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-10 14:45:01 +0100 |
commit | 76e86eb84c12579d81dfee480743f3e52bf51db6 (patch) | |
tree | 3d4b96a9fe819ede9baa7cbf5c86efd4d3663df2 | |
parent | Merge pull request #54 from UnionInternationalCheminsdeFer/adding_comments_on_the_coutry_code_of_Kosovo (diff) | |
parent | Exceptions in case of wrong U_HAED content (diff) | |
download | UIC-barcode-76e86eb84c12579d81dfee480743f3e52bf51db6.tar UIC-barcode-76e86eb84c12579d81dfee480743f3e52bf51db6.tar.gz UIC-barcode-76e86eb84c12579d81dfee480743f3e52bf51db6.tar.bz2 UIC-barcode-76e86eb84c12579d81dfee480743f3e52bf51db6.tar.lz UIC-barcode-76e86eb84c12579d81dfee480743f3e52bf51db6.tar.xz UIC-barcode-76e86eb84c12579d81dfee480743f3e52bf51db6.tar.zst UIC-barcode-76e86eb84c12579d81dfee480743f3e52bf51db6.zip |
-rw-r--r-- | src/main/java/org/uic/barcode/staticFrame/UHEADDataRecord.java | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/main/java/org/uic/barcode/staticFrame/UHEADDataRecord.java b/src/main/java/org/uic/barcode/staticFrame/UHEADDataRecord.java index 22ba8ce..31a664b 100644 --- a/src/main/java/org/uic/barcode/staticFrame/UHEADDataRecord.java +++ b/src/main/java/org/uic/barcode/staticFrame/UHEADDataRecord.java @@ -222,8 +222,26 @@ public class UHEADDataRecord extends DataRecord{ protected void encodeContent() throws IOException, EncodingFormatException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-
+
+ if (this.issuer == null || this.issuer.length() < 1) {
+ throw new EncodingFormatException("Issuer in U_HEAD missing");
+ }
+ if (this.issuer.length() > 4) {
+ throw new EncodingFormatException("Issuer in U_HEAD too long (max 4 bytes)");
+ }
+
+
String issuerElement = String.format("%4s", this.issuer);
+
+ if (this.identifier == null || this.identifier.length() < 1) {
+ throw new EncodingFormatException("Identifier in U_HEAD missing");
+ }
+
+ if (this.identifier.length() > 20) {
+ throw new EncodingFormatException("Identifier in U_HEAD too long (max. 20 bytes)");
+ }
+
+
String idElement = String.format("%20s", this.identifier);
@@ -248,12 +266,20 @@ public class UHEADDataRecord extends DataRecord{ String language1 = null;
String language2 = null;
if (this.language != null) {
- language1 = String.format("%2s" ,this.language);
+ if (this.language.length() > 2) {
+ language1 = String.format("%2s" ,this.language.substring(0, 2));
+ } else {
+ language1 = String.format("%2s" ,this.language);
+ }
} else {
language1 = " ";
}
if (this.additionalLanguage != null) {
- language2 = String.format("%2s" ,this.additionalLanguage);
+ if (this.additionalLanguage.length() > 2) {
+ language2 = String.format("%2s" ,this.additionalLanguage.substring(0, 2));
+ } else {
+ language2 = String.format("%2s" ,this.additionalLanguage);
+ }
} else {
language2 = " ";
}
|