package net.techreadiness.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import net.techreadiness.persistence.BaseEntity;
/**
* Used to annotate a service method that modifies data. An aspect will advise these methods and populate a request-scoped
* bean that can be used by a front end to help display results to a user about the status of the actions they just
* performed. e.g. "Changes saved successfully.".
*
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface CoreDataModificationStatus {
public enum ModificationType {
NONE, UPDATE, DELETE, OTHER
}
public ModificationType modificationType();
// Not using this yet, mainly for future use.
public Class<? extends BaseEntity> entityClass();
}