package info.oais.interfaces.infomodel;

/**
 * Either a Physical Object or a Digital Object. [OAIS]  Data: A reinterpretable
 * representation of information in a formalized manner suitable for communication,
 * interpretation, or processing. NOTE  - Examples of data include a sequence of
 * bits, a table of numbers, the characters on a page, the recording of sounds
 * made by a person speaking, or a moon rock specimen.  [OAIS]
 * @author David
 * @version 1.0
 * @since 06-Sep-2021 15:59:45
 */

public interface DataObject  {
	
	/**
	 * Get the DigitalObject (if any) which makes up the DataObject.
	 * 
	 * @return The DigitalObject or null
	 */
	public DigitalObject getDigitalObject();
	
	/**
	 * Set the DigitalObject of the DataObject.
	 * 
	 * @param digobj The DigitalObject of the DataObject;
	 */
	public void setDigitalObject(DigitalObject digobj);
	
	/**
	 * Get the PhysicallObject (if any) which makes up the DataObject.
	 * 
	 * @return The PhysicalObject or null
	 */
	public PhysicalObject getPhysicalObject();
	
	/**
	 * Set the PhysicallObject of the DataObject.
	 * 
	 * @param physobj The PhysicalObject of the DataObject;
	 */
	public void setPhysicalObject(PhysicalObject physobj);

	/**
	 * Get the Identifier for the DataObject
	 * 
	 * @return Identifier for the DataObject
	 */
	public Identifier getIdentifier();
	
	/**
	 * Set the Identifier for the DataObject
	 * 
	 * @param id The identifier for the DataObject
	 */
	public void setIdentifier(Identifier id);
	

}