package org.nightlabs.jfire.entityuserset.ui;
import org.nightlabs.inheritance.FieldMetaData;
import org.nightlabs.inheritance.Inheritable;
import org.nightlabs.jfire.entityuserset.EntityUserSet;
import org.nightlabs.jfire.entityuserset.id.EntityUserSetID;
import org.nightlabs.progress.ProgressMonitor;
/**
* @author Daniel Mazurek - Daniel.Mazurek [dot] nightlabs [dot] de
*
*/
public interface InheritedEntityUserSetResolver<Entity>
{
/**
* Returns the (inherited) {@link EntityUserSetID} from the parent object.
*
* @param monitor the ProgressMonitor to display the progress
* @return the (inherited) EntityUserSetID from the parent object
*/
EntityUserSetID getInheritedEntityUserSetID(ProgressMonitor monitor);
/**
* Determines whether the {@link EntityUserSet} is inherited or not.
* @return true if the {@link EntityUserSet} is inherited or false if not.
*/
boolean isEntityUserSetInherited();
/**
* Determines whether the {@link EntityUserSet} is inherited or not.
* Implementations must then set the corresponding {@link FieldMetaData} in the {@link Inheritable} object
* which contains the managed {@link EntityUserSet} member.
* @param inherited
*/
void setEntityUserSetInherited(boolean inherited);
}