package rocks.inspectit.shared.cs.storage;
import java.util.List;
import rocks.inspectit.shared.cs.storage.label.AbstractStorageLabel;
/**
* This interface serves as the connection between {@link StorageData} and {@link LocalStorageData},
* in sense that both should be able to provide the ID and general data of storage.
*
* @author Ivan Senic
*
*/
public interface IStorageData {
/**
* Returns the storage id.
*
* @return Returns the storage id.
*/
String getId();
/**
* Returns the name of the directory where storage data is.
*
* @return Returns the name of the directory where storage data is.
*/
String getStorageFolder();
/**
* Returns the name of the storage.
*
* @return Returns the storage name.
*/
String getName();
/**
* Returns the size of the storage in bytes.
*
* @return Returns the storage disk size.
*/
long getDiskSize();
/**
* Returns the description of storage.
*
* @return Returns storage description or <code>null</code> if there is no description.
*/
String getDescription();
/**
* Returns the list of the currently bounded labels to the storage.
*
* @return Returns the label list of storage.
*/
List<AbstractStorageLabel<?>> getLabelList();
/**
* Returns version of the CMR on which the Storage is originally created.
*
* @return Version of the CMR on which the Storage is originally created.
*/
String getCmrVersion();
}