// ========================================================================
// Copyright (C) zeroth Project Team. All rights reserved.
// GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
// http://www.gnu.org/licenses/agpl-3.0.txt
// ========================================================================
package zeroth.framework.standard.domain;
import java.io.Serializable;
import zeroth.framework.standard.shared.DataObject;
/**
* 参照オブジェクトI/F (エンティティI/F)
* <p>
* 参照オブジェクトは本I/Fを実装すること。
* </p>
* @param <T> 参照オブジェクト型
* @param <ID> 識別子オブジェクト型
* @author nilcy
*/
public interface ReferenceObject<T extends ReferenceObject<T, ID>, ID extends Serializable> extends
DataObject {
/**
* 同一性の確認
* <p>
* 参照オブジェクトの識別子から同一性を確認する。
* </p>
* @param object 比較する参照オブジェクト
* @return 同一なとき真。同一でないとき偽。
*/
boolean sameIdentityAs(T object);
/**
* 識別子
* @return 識別子
*/
ID identity();
}