com.atom.annotation.api.ApiImplContext Maven / Gradle / Ivy
package com.atom.annotation.api;
import com.atom.annotation.ApiImplNonNull;
import com.atom.annotation.ApiImplNullable;
import java.util.Collection;
public interface ApiImplContext {
Collection> getApis(@ApiImplNonNull Class requiredType);
Collection> getApis(@ApiImplNonNull Class requiredType, String name, boolean useRegex);
Collection> getApis(@ApiImplNonNull Class requiredType, @ApiImplNonNull ApiCLassFilter filter);
Class extends T> getApi(@ApiImplNonNull Class requiredType);
Class extends T> getApi(@ApiImplNonNull Class requiredType, long version);
Class extends T> getApi(@ApiImplNonNull Class requiredType, String name, long version, boolean useRegex);
void setImpl(@ApiImplNonNull Class requiredType, String name, long version, T entity);
T getImpl(@ApiImplNonNull Class requiredType);
T getImpl(@ApiImplNonNull Class requiredType, String name);
T getImpl(@ApiImplNonNull Class requiredType, long version);
T getImpl(@ApiImplNonNull Class requiredType, String name, long version, boolean useRegex);
T hasApi(@ApiImplNonNull Class requiredType, String name, long version);
T hasApi(@ApiImplNonNull Class requiredType);
T newApi(@ApiImplNonNull Class api);
T newApi(@ApiImplNonNull Class api, String name);
T newApi(@ApiImplNonNull Class api, String name, long version);
@ApiImplNonNull
String cachePut(@ApiImplNonNull Object data);
@ApiImplNullable
Object cacheGet(@ApiImplNonNull String key);
@ApiImplNullable
Object cacheRemove(@ApiImplNonNull String key);
void setImplEnabled(@ApiImplNonNull String name, Boolean enable);
Boolean getImplEnabled(@ApiImplNonNull String name);
void setApiImplHandler(ApiImplHandler apiImplHandler);
}