package com.huixinpn.dionysus.domain;
import java.util.Collection;
import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.huixinpn.dionysus.domain.event.Notifiable;
import com.huixinpn.dionysus.domain.event.NotificationListener;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@MappedSuperclass
@EntityListeners(NotificationListener.class)
public abstract class AbstractDionysusNotifiable<U> extends
AbstractDionysusAuditable<U> implements Notifiable<U> {
private static final long serialVersionUID = 4497363688600667784L;
public AbstractDionysusNotifiable(Long id){
super(id);
}
public U receiveFrom() {
return this.getCreatedBy();
}
public abstract Collection<U> sendTo();
public abstract String getSummary();
}