information-system-model/src/main/java/org/gcube/informationsystem/types/annotations/Abstract.java

25 lines
819 B
Java

package org.gcube.informationsystem.types.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.gcube.informationsystem.model.reference.entities.Entity;
import org.gcube.informationsystem.model.reference.relations.Relation;
/**
* It indicates that the {@link Entity} or the {@link Relation} is abstract and
* cannot be instantiated.
* This is needed because the type definition is made with interface so that
* even used the java abstract keyword is useless because it cannot be retrieved
* using reflection (interfaces are always abstract)
*
* @author Luca Frosini (ISTI - CNR)
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Abstract {
}