Skip to content

Commit b7d3655

Browse files
committed
Do not allow information separators in record label
While it is not explicitely mentioned in the ISO2709 standard, it does seem to be a sensible to use information separators in the implementation codes and system chars area of the record label. This commit adds the relevant checks to the record label. (cherry picked from commit 9bcc8fc)
1 parent 8c7b585 commit b7d3655

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

metafacture-biblio/src/main/java/org/metafacture/biblio/iso2709/RecordBuilder.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -102,16 +102,14 @@ public void setRecordStatus(final char recordStatus) {
102102
public void setImplCodes(final char[] implCodes) {
103103
Require.notNull(implCodes);
104104
Require.that(implCodes.length == IMPL_CODES_LENGTH);
105-
for (final char implCode : implCodes) {
106-
Require.that(implCode < Iso646Constants.MAX_CHAR_CODE);
107-
}
105+
require7BitAscii(implCodes);
108106
label.setImplCodes(implCodes);
109107
}
110108

111-
public void setImplCode(final int index, final char value) {
109+
public void setImplCode(final int index, final char implCode) {
112110
Require.that(0 <= index && index < IMPL_CODES_LENGTH);
113-
Require.that(value < Iso646Constants.MAX_CHAR_CODE);
114-
label.setImplCode(index, value);
111+
require7BitAscii(implCode);
112+
label.setImplCode(index, implCode);
115113
}
116114

117115
public void setSystemChars(final char[] systemChars) {
@@ -121,10 +119,10 @@ public void setSystemChars(final char[] systemChars) {
121119
label.setSystemChars(systemChars);
122120
}
123121

124-
public void setSystemChar(final int index, final char value) {
122+
public void setSystemChar(final int index, final char systemChar) {
125123
Require.that(0 <= index && index < SYSTEM_CHARS_LENGTH);
126-
Require.that(value < Iso646Constants.MAX_CHAR_CODE);
127-
label.setSystemChar(index, value);
124+
require7BitAscii(systemChar);
125+
label.setSystemChar(index, systemChar);
128126
}
129127

130128
public void setReservedChar(final char reservedChar) {

0 commit comments

Comments
 (0)