/*****************************************************************************
- * Company EURIWARE
+ * Company OPEN CASCADE
* Application SIMAN
* File $Id$
* Creation date 07.10.2012
import org.splat.som.Step;
/**
+ * Project element service interface.
+ *
* @author RKV
*
*/
public interface ProjectElementService {
- public Step getFirstStep(ProjectElement elem);
+ /**
+ * Get the first activity of the project element.
+ *
+ * @param elem
+ * a study or a scenario
+ * @return the first activity (step) of the project element
+ */
+ Step getFirstStep(ProjectElement elem);
+
+ /**
+ * Get activities of the project element.
+ *
+ * @param elem
+ * a study or a scenario
+ * @return array of activities (steps).
+ */
+ Step[] getSteps(ProjectElement elem);
- public Step[] getSteps(ProjectElement elem);
+ /**
+ * Refreshes the internal data potentially out-of-date. This function needs to be called when Publication objects are added to this
+ * Project Element before being saved. The reason is, as saving a persistent object changes its hashcode, hashed data need to be rebuilt
+ * after saving for making functions based on this hashcode such as remove(), working.
+ *
+ * @param elem
+ * the project element to refresh
+ */
+ void refresh(ProjectElement elem);
}