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