package tr.com.srdc.mdr.core.api.ai;
import tr.com.srdc.mdr.core.api.MDRNode;
import tr.com.srdc.mdr.core.api.composite.Contact;
import tr.com.srdc.mdr.core.api.composite.Organization;
import tr.com.srdc.mdr.core.impl.Repository;
import tr.com.srdc.mdr.core.model.iso11179.AdministeredItemResource;
/**
* @author anil
*
*/
public interface AdministeredItem extends MDRNode {
@Override
/**
* @return the {@link AdministeredItemResource} version this instance.
*/
AdministeredItemResource asMDRResource();
/**
* @return The unique identifier of this {@link AdministeredItem}.
*/
String getUniqueID();
/**
* @return The preferred name of the AdministeredItem in a {@link Context}
* where its registered
*/
String getName();
/**
* Sets the name of this {@link AdministeredItem}. Since there is only one
* name, this methods updates that name.
*
* @param definition
* New name
*/
void setName(String name);
/**
* @return Definition of the AdministeredItem in a {@link Context} where its
* registered
*/
String getDefinition();
/**
* Sets the definition of this {@link AdministeredItem}. Since there is only
* one definition, this methods updates that name.
*
* @param definition
* New definition
*/
void setDefinition(String definition);
/**
* Retrieves the {@link Context} to which this {@link AdministeredItem}
* belongs.
*
* @return {@link Context} where this item is registered in.
*/
Context getContext();
/**
* Retrieves the {@link Organization} which is the administer of this
* {@link AdministeredItem} on the {@link Repository}
*
* @return {@link Organization} responsible from administration of
* AdministeredItem
*/
Organization getAdministerOrganization();
/**
* Retrieves the contact person who is the administer of this
* AdministeredItem on {@link Repository}
*
* @return {@link Contact} person who is responsbile from administration of
* this AdministeredItem within an Organization
*/
Contact getAdministerPerson();
}