org.jafer.record
Class MARCRecord
java.lang.Object
org.jafer.record.DataObject
org.jafer.record.MARCRecord
public class MARCRecord
- extends DataObject
Serializes MARC record to XML (http://www.openarchives.org/OAI/1.1/oai_marc schema).
Method getXML returns record node (created from supplied DOM document);
method getBER builds ASN1External from XML and returns a BER object.
Transformations etc. are managed by org.jafer.record.RecordFactory
- Version:
- 1.0
- Author:
- Antony Corfield; Matthew Dovey; Colin Tatham
Constructor Summary |
MARCRecord(java.lang.String dbName,
asn1.BEREncoding ber)
|
MARCRecord(java.lang.String dbName,
org.w3c.dom.Node root)
|
Method Summary |
private int |
addFixField(java.io.ByteArrayOutputStream directory,
java.io.ByteArrayOutputStream fieldData,
int dataStartPos,
org.w3c.dom.Node fixField)
|
private int |
addVarField(java.io.ByteArrayOutputStream directory,
java.io.ByteArrayOutputStream fieldData,
int dataStartPos,
org.w3c.dom.Node varfield)
|
private void |
buildLeader(java.io.ByteArrayOutputStream leader,
org.w3c.dom.NamedNodeMap leaderAttributes,
int recordLength,
int baseAddress)
|
asn1.BEREncoding |
getBER()
|
private char |
getEncoding()
|
private java.lang.String |
getEncodingAsString()
|
private int |
getInt(byte[] bytes,
int offset,
int len)
|
private java.lang.String |
getJavaIdentifierTag(java.lang.String s)
|
private char |
getLeaderValue(org.w3c.dom.NamedNodeMap leaderAttributes,
int leaderPos,
char defaultValue)
|
private java.lang.String |
getMARC8Value(org.w3c.dom.Node node)
|
private static java.lang.String |
getOAIAttributeName(int position)
|
private java.lang.String |
getString(byte[] bytes,
int offset,
int len)
|
private java.lang.String |
getString(java.io.ByteArrayOutputStream byteOut,
int offset)
|
private java.lang.String |
getString(java.io.ByteArrayOutputStream byteOut,
int offset,
int len)
|
private org.w3c.dom.Node |
getSubFieldElement(org.w3c.dom.Document document,
java.io.ByteArrayOutputStream byteOut)
|
org.w3c.dom.Node |
getXML(org.w3c.dom.Document document)
|
private void |
processField(org.w3c.dom.Document document,
org.w3c.dom.Node field,
java.io.ByteArrayInputStream byteIn)
|
private void |
processRecord(java.io.ByteArrayOutputStream directory,
java.io.ByteArrayOutputStream fieldData,
org.w3c.dom.Node node)
|
private void |
processRecord(org.w3c.dom.Document document,
byte[] bytes,
int baseAddress,
int numFields)
|
private void |
setEncoding(char encoding)
|
private void |
setEncoding(java.lang.String encoding)
|
private void |
write(java.io.ByteArrayOutputStream byteArray,
int length,
int value)
|
private void |
write(java.io.ByteArrayOutputStream byteArray,
java.lang.String data)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RECORD_DELIMITER
public static final char RECORD_DELIMITER
FIELD_DELIMITER
public static final char FIELD_DELIMITER
SUBFIELD_DELIMITER
public static final char SUBFIELD_DELIMITER
MARC8_ENCODING
private static final char MARC8_ENCODING
UTF8_ENCODING
private static final char UTF8_ENCODING
MARC8
public static final java.lang.String MARC8
- See Also:
- Constant Field Values
UTF8
public static final java.lang.String UTF8
- See Also:
- Constant Field Values
OAI_NAMESPACE
public static final java.lang.String OAI_NAMESPACE
- See Also:
- Constant Field Values
OAI_ATTRIBUTE_NAMES
public static final java.lang.String[] OAI_ATTRIBUTE_NAMES
root
private org.w3c.dom.Node root
ber
private asn1.BEREncoding ber
marc8Unicode
private MARC8Unicode marc8Unicode
encoding
private char encoding
MARCRecord
public MARCRecord(java.lang.String dbName,
asn1.BEREncoding ber)
MARCRecord
public MARCRecord(java.lang.String dbName,
org.w3c.dom.Node root)
setEncoding
private void setEncoding(java.lang.String encoding)
setEncoding
private void setEncoding(char encoding)
getEncodingAsString
private java.lang.String getEncodingAsString()
getEncoding
private char getEncoding()
getXML
public org.w3c.dom.Node getXML(org.w3c.dom.Document document)
throws RecordException
- Overrides:
getXML
in class DataObject
- Throws:
RecordException
processRecord
private void processRecord(org.w3c.dom.Document document,
byte[] bytes,
int baseAddress,
int numFields)
throws java.io.IOException,
JaferException
- Throws:
java.io.IOException
JaferException
processField
private void processField(org.w3c.dom.Document document,
org.w3c.dom.Node field,
java.io.ByteArrayInputStream byteIn)
throws java.io.IOException,
JaferException
- Throws:
java.io.IOException
JaferException
getSubFieldElement
private org.w3c.dom.Node getSubFieldElement(org.w3c.dom.Document document,
java.io.ByteArrayOutputStream byteOut)
throws java.io.IOException,
JaferException
- Throws:
java.io.IOException
JaferException
getString
private java.lang.String getString(byte[] bytes,
int offset,
int len)
getJavaIdentifierTag
private java.lang.String getJavaIdentifierTag(java.lang.String s)
throws java.io.IOException
- Throws:
java.io.IOException
getString
private java.lang.String getString(java.io.ByteArrayOutputStream byteOut,
int offset,
int len)
getString
private java.lang.String getString(java.io.ByteArrayOutputStream byteOut,
int offset)
getInt
private int getInt(byte[] bytes,
int offset,
int len)
getBER
public asn1.BEREncoding getBER()
throws RecordException
- Overrides:
getBER
in class DataObject
- Throws:
RecordException
processRecord
private void processRecord(java.io.ByteArrayOutputStream directory,
java.io.ByteArrayOutputStream fieldData,
org.w3c.dom.Node node)
throws JaferException
- Throws:
JaferException
addFixField
private int addFixField(java.io.ByteArrayOutputStream directory,
java.io.ByteArrayOutputStream fieldData,
int dataStartPos,
org.w3c.dom.Node fixField)
throws JaferException
- Throws:
JaferException
addVarField
private int addVarField(java.io.ByteArrayOutputStream directory,
java.io.ByteArrayOutputStream fieldData,
int dataStartPos,
org.w3c.dom.Node varfield)
throws JaferException
- Throws:
JaferException
buildLeader
private void buildLeader(java.io.ByteArrayOutputStream leader,
org.w3c.dom.NamedNodeMap leaderAttributes,
int recordLength,
int baseAddress)
throws JaferException
- Throws:
JaferException
getLeaderValue
private char getLeaderValue(org.w3c.dom.NamedNodeMap leaderAttributes,
int leaderPos,
char defaultValue)
throws JaferException
- Throws:
JaferException
write
private void write(java.io.ByteArrayOutputStream byteArray,
int length,
int value)
write
private void write(java.io.ByteArrayOutputStream byteArray,
java.lang.String data)
getMARC8Value
private java.lang.String getMARC8Value(org.w3c.dom.Node node)
throws JaferException
- Throws:
JaferException
getOAIAttributeName
private static java.lang.String getOAIAttributeName(int position)