package io.katharsis.repository.annotations;
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;
/**
* <p>
* Class annotated with this annotation will be treated as a relationship repository class for a
* {@link JsonApiResourceRepository#value()} property.
* </p>
* <p>
* Repository methods defined in a class annotated by this <i>@interface</i> can throw <b>only</b> instances of
* {@link RuntimeException}.
* </p>
* @see io.katharsis.repository.RelationshipRepository
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface JsonApiRelationshipRepository {
/**
* source resource model class type
* @return class
*/
Class<?> source();
/**
* target resource model class type
* @return class
*/
Class<?> target();
}