/** * */ package fr.devoxx.sentimental.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Marks this package as the root of the domain layer. * * The domain layer must not depend on any infrastructure, application or * presentation/UI code, and in particular not on persistence (Persistence * Ignorance). To this end, the domain layer typically declares Service and * Repository interfaces that are implemented technically in the infrastructure * layer. * * @see <a href="http://thinkddd.com/glossary/persistence-ignorance/">Quantity</a> * * @author Cyrille.Martraire */ @Retention(RetentionPolicy.RUNTIME) @Documented @Target(ElementType.PACKAGE) public @interface DomainLayer { }