📄 imetadataexporter.java
字号:
package com.esri.solutions.jitk.common.metadata;
/**
* Defines an object that is capable of exporting metadata to a useful format or notation.
* <p>
* Objects implementing this interface must have intimate knowledge of the format that the
* raw metadata will take. {@link #setRaw(Object)} is written to take nothing more specific than
* an {@link Object} as a parameter. The abstraction is designed to provide implementing classes
* complete control over how the metadata is extracted (SAX, DOM, XPath, CSV extraction, etc...),. what is parsed
* (an entire document, specific tags, etc...), and what is done with the data once it is parsed (export to
* file, creation of Beans, etc...).
* </p>
* <p>
* {@code IMetadataExporter} implementations should be written to follow the following sequence of
* operations:
* <ol>
* <li>Invocation of {@link #setRaw(Object)} to store the object that will be parsed</li>
* <li>Invocation of {@link #begin()} to prepare the exporter for its work</li>
* <li>Invocation of {@link #export()} to export the proper values from the document into whatever format is necessary</li>
* <li>Invocation of {@link #end()} to clean up anything that is </li>
* </ol>
* If the above is not followed, {@link IllegalStateException} will be thrown by the method that was improperly invoked.
* </p>
* <p>
* The interface obviously does not guarantee any form of thread safety, but implementing classes should strongly
* consider concurrency issues when performing implementation.
* </p>
*/
public interface IMetadataExporter {
/**
* Sets the object that will be exported by this {@code IMetadataExporter}.
* @param raw The {@link Object} to export.
*/
public void setRaw(Object raw);
/**
* Prepares the exporter to perform the export. This must be called before {@link #export()} or {@link #end()}.
* @throws {@link IllegalStateException} if the object is currently in the export() or end() state..
*/
public void begin();
/**
* Exports the document to whatever format is understood by the {@link IMetadataExporter} implementation.
* @throws {@link IllegalStateException} if the object is not ready to export.
*/
public void export();
/**
* Ends the exporter operation by cleaning up any resources, closing handles, etc...
* @throws {@link IllegalStateException} if the export operation is not finished.
*/
public void end();
/**
* Retrieves the ID of this exporter.
* @return {@link String} containing the ID of this exporter. Cannot be {@code null}.
*/
public String getExporterId();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -