package com.psddev.cms.view;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Defines a ViewModel class that can be used to bind to views from the
* annotated model class. The ViewModel class implicitly specifies the View
* type that it can be bound to as well as the model it is bound from. Multiple
* bindings can be placed on the model.
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Repeatable(ViewBindings.class)
public @interface ViewBinding {
/**
* @return the ViewModel class that can be bound to views from the
* annotated model class.
*/
Class<? extends ViewModel> value();
String[] types() default { };
}