/* +---------------------------+ | ISelect | +---------------------------+ | boolean select(Object obj)| +---------------------------+ | / \ --- | ---------------------------- | | | +----------+ +---------+ +---------+ | LongSong | | GBSbook | | OldBook | +----------+ +---------+ +---------+ +----------+ +---------+ |int year | +---------* */ interface ISelect{ // does the given object satisfy this predicate? boolean select(Object obj); }