package jeffaschenk.commons.touchpoint.model;
import jeffaschenk.commons.identifiers.AlternateId;
import java.util.Date;
import java.util.List;
/**
* Common Interface for JnJ Elements.
*/
public interface RootElementInterface {
/**
* Determine if the object was loaded from Extract or not.
* If true, Object Marshaled from Extract File, if False, default,
* marshaled from persistent store orby other means.
*
* @return boolean indicator per above.
*/
public boolean isExtractLoaded();
/**
* Update indicator, true if update to persistent store required.
*
* @return boolean indicator
*/
public boolean isUpdated();
/**
* Set Update Indicator
*
* @param updated
*/
public void setUpdated(boolean updated);
/**
* Get Timestamp of current Update.
*
* @return Date
*/
public Date getTimestamp();
/**
* Default Global Pipe Separator Character String
*
* @return String
*/
public String getPipeCharacter();
/**
* Provide specific Alt ID for this Object.
* Wrapper for accessing Embeddable Alt Id within
* Primary composite Keys.
*
* @return AlternateId
*/
public AlternateId getAlternateId();
/**
* Provide common setter for specific Alt ID on this Object.
* Wrapper for accessing Embeddable Alt Id within
* Primary composite Keys.
*
* @param alternateId
*/
public void setAlternateId(AlternateId alternateId);
/**
* Obtain the String name of the JDBC table for the Object.
*
* @return String
*/
public String getTableName();
/**
* Get the Pipe Header for the Object used upon export.
*
* @return String
*/
public String getPipeHeader();
/**
* Initialize object from a parsed Input Stream.
*
* @param parsedInput
*
*/
public void initializeFromParsedExtract(List<String> parsedInput);
/**
* Export Object
*
* @return String of UnMarshaled Object
*/
public String export();
/**
* Helper to determine if Marshaled Element is Empty?
*
* @return boolean indicator, True if Element Empty.
*/
public boolean isEmptyForExport();
/**
* Get Export Header for Class
* @return String
*/
public String getExportHeader();
}