Package gov.usgs.earthquake.product.io
Class BinaryProductHandler
java.lang.Object
gov.usgs.earthquake.product.io.BinaryProductHandler
- All Implemented Interfaces:
ProductHandler
Generator of binary format for product data.
Binary representation of data types:
- Integer
- 4-bytes
- Long
- 8-bytes
- Date
- Long (Date.getTime())
- byte[]
- Integer length, raw bytes
- String
- byte[] (String.getBytes(StandardCharsets.UTF_8))
- URL/URI
- String (URL.toString())
- Header, exactly 1
- "BEGINPRODUCT" (string)
- ProductId (String)
- Status (String)
- Properties, 0 to many:
- "PROPERTY" (String)
- name (String)
- value (String)
- Links, 0 to many:
- "LINK" (String)
- relation (String)
- href (URI)
- Contents, 0 to many:
- "CONTENT" (String)
- path (String)
- contentType (String)
- lastModified (Date)
- length (Long)
- raw bytes
- Signature Version, 0 or 1. Note, only sent when version !=
SIGNATURE_V1 for backward compatibility
- "SIGNATUREVERSION" (String)
- version (String)
- Signature, 0 or 1:
- "SIGNATURE" (String)
- signature (String)
- Footer, exactly 1:
- "ENDPRODUCT" (String)
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringCONTENTstatic final StringEnd of SIGNATURE HISTORY liststatic final StringENDPRODUCTstatic final StringHEADER - BEGINPRODUCTstatic final StringLINKstatic final StringPROPERTYstatic final StringSIGNATUREstatic final StringSIGNATURE HISTORYstatic final Stringmap entry for SIGNATURE HISTORY liststatic final StringSIGNATURE VERSION -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Free any resources associated with this source.voidonBeginProduct(ProductId id, String status) A new product is being output.voidProduct content.voidA product is finished being output.voidA product link.voidonProperty(ProductId id, String name, String value) A product property value.voidonSignature(ProductId id, String signature) Product signature.voidonSignatureHistory(ProductId id, List<ProductSignature> signatureHistory) Product signature history.voidonSignatureVersion(ProductId id, CryptoUtils.Version version) Product signature version.
-
Field Details
-
HEADER
HEADER - BEGINPRODUCT- See Also:
-
PROPERTY
PROPERTY- See Also:
-
LINK
LINK- See Also:
-
CONTENT
CONTENT- See Also:
-
SIGNATURE_VERSION
SIGNATURE VERSION- See Also:
-
SIGNATURE
SIGNATURE- See Also:
-
SIGNATURE_HISTORY
SIGNATURE HISTORY- See Also:
-
SIGNATURE_HISTORY_ENTRY
map entry for SIGNATURE HISTORY list- See Also:
-
END_SIGNATURE_HISTORY
End of SIGNATURE HISTORY list- See Also:
-
FOOTER
ENDPRODUCT- See Also:
-
-
Constructor Details
-
BinaryProductHandler
Constructor. Sets up a new BinaryIO- Parameters:
out- an OutputStream
-
-
Method Details
-
onBeginProduct
Description copied from interface:ProductHandlerA new product is being output. The ProductHandler should expect calls to other on-Methods until the onEndProduct method is called. No calls to other on-Methods will occur before onBeginProduct.- Specified by:
onBeginProductin interfaceProductHandler- Parameters:
id- which product.status- the product's status.- Throws:
Exception- if error occurs
-
onProperty
Description copied from interface:ProductHandlerA product property value. Products have zero or more properties.- Specified by:
onPropertyin interfaceProductHandler- Parameters:
id- which product.name- the property name.value- the property value.- Throws:
Exception- if error occurs
-
onLink
Description copied from interface:ProductHandlerA product link. Products have zero or more links.- Specified by:
onLinkin interfaceProductHandler- Parameters:
id- which product.relation- how the URI is related to this product.href- the URI that is related to this product.- Throws:
Exception- if error occurs
-
onContent
Description copied from interface:ProductHandlerProduct content. Products have one or more Contents.- Specified by:
onContentin interfaceProductHandler- Parameters:
id- which product.path- path to content within product.content- the product content.- Throws:
Exception- if error occurs
-
onSignatureVersion
Description copied from interface:ProductHandlerProduct signature version.- Specified by:
onSignatureVersionin interfaceProductHandler- Parameters:
id- which product.version- product version- Throws:
Exception- if error occurs
-
onSignature
Description copied from interface:ProductHandlerProduct signature. Producers may optionally sign products to confirm they were the producer.- Specified by:
onSignaturein interfaceProductHandler- Parameters:
id- which product.signature- the product signature, which can be verified using the ProductSigner class.- Throws:
Exception- if error occurs
-
onSignatureHistory
public void onSignatureHistory(ProductId id, List<ProductSignature> signatureHistory) throws Exception Description copied from interface:ProductHandlerProduct signature history.- Specified by:
onSignatureHistoryin interfaceProductHandler- Parameters:
id- which product.signatureHistory- signature history of product.- Throws:
Exception- if error occurs
-
onEndProduct
Description copied from interface:ProductHandlerA product is finished being output. The ProductHandler should expect no more calls to other on-Methods, except perhaps onBeginProduct again, after the onEndProduct method is called.- Specified by:
onEndProductin interfaceProductHandler- Parameters:
id- which product.- Throws:
Exception- if error occurs
-
close
public void close()Free any resources associated with this source.- Specified by:
closein interfaceProductHandler
-