package com.github.dynamicextensionsalfresco.behaviours.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Indicates a class that acts as a Behaviour.
*
* @author Laurens Fridael
*
*/
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface Behaviour {
/**
* The QNames of the types or aspects to apply the Behaviour to. Can be specified in prefix format (
* <code>cm:content</code>) or fully-qualified format (
* <code>{http://www.alfresco.org/model/content/1.0}content</code>).
* <p>
* The class names can be overridden for each Policy method by {@link ClassPolicy}, {@link AssociationPolicy} and
* {@link PropertyPolicy}.
*
* @return
*/
String[] value() default {};
/**
* Indicates when to trigger the Behaviour. This can be overridden for each Policy method.
*
* @return
*/
Event event() default Event.ALL;
}