Skip to content
ChildEntity.java 703 B
Newer Older
package it.inaf.oats.ia2.tapschemamanager.api.contract;

/**
 * A {@link TapSchemaEntity} that can be a child of an
 * {@link EntitiesContainer}.
 *
 * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
 */
public interface ChildEntity<T extends EntitiesContainer> extends TapSchemaEntity {

    /**
     * Each child has a name that is univocal for a given parent, in this way
     * the parent can search a child by name.
     */
    String getName();

    /**
     * The {@link EntitiesContainer} that owns the {@link ChildEntity}.
     */
    T getParent();

    /**
     * The persistence status of the {@link ChildEntity}.
     */
    Status getStatus();

    void setStatus(Status status);
}