package jalse.entities.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.util.UUID; import jalse.attributes.AttributeContainer; import jalse.entities.Entity; import jalse.entities.EntityContainer; import jalse.entities.methods.NewEntityMethod; /** * An {@link Entity} type annotation for: * <ul> * <li>{@link EntityContainer#newEntity()}</li> * <li>{@link EntityContainer#newEntity(UUID)}</li> * <li>{@link EntityContainer#newEntity(Class)}</li> * <li>{@link EntityContainer#newEntity(AttributeContainer)}</li> * <li>{@link EntityContainer#newEntity(UUID, Class)}</li> * <li>{@link EntityContainer#newEntity(UUID, AttributeContainer)}</li> * <li>{@link EntityContainer#newEntity(Class, AttributeContainer)}</li> * <li>{@link EntityContainer#newEntity(UUID, Class, AttributeContainer)}</li> * </ul> * See {@link NewEntityMethod} for acceptable method signatures. * * @author Elliot Ford * * @see NewEntityMethod * */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface NewEntity {}