run.halo.app.extension.ExtensionClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of api Show documentation
Show all versions of api Show documentation
API of halo project, connecting by other projects.
The newest version!
package run.halo.app.extension;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.function.Predicate;
import org.springframework.data.domain.Sort;
import run.halo.app.extension.index.IndexedQueryEngine;
/**
* ExtensionClient is an interface which contains some operations on Extension instead of
* ExtensionStore.
*
* Please note that this client can only use in non-reactive environment. If you want to
* use Extension client in reactive environment, please use {@link ReactiveExtensionClient} instead.
*
* @author johnniang
*/
public interface ExtensionClient {
/**
* Lists Extensions by Extension type, filter and sorter.
*
* @param type is the class type of Extension.
* @param predicate filters the reEnqueue.
* @param comparator sorts the reEnqueue.
* @param is Extension type.
* @return all filtered and sorted Extensions.
*/
List list(Class type, Predicate predicate,
Comparator comparator);
/**
* Lists Extensions by Extension type, filter, sorter and page info.
*
* @param type is the class type of Extension.
* @param predicate filters the reEnqueue.
* @param comparator sorts the reEnqueue.
* @param page is page number which starts from 0.
* @param size is page size.
* @param is Extension type.
* @return a list of Extensions.
*/
ListResult list(Class type, Predicate predicate,
Comparator comparator, int page, int size);
List listAll(Class type, ListOptions options, Sort sort);
ListResult listBy(Class type, ListOptions options,
PageRequest page);
/**
* Fetches Extension by its type and name.
*
* @param type is Extension type.
* @param name is Extension name.
* @param is Extension type.
* @return an optional Extension.
*/
Optional fetch(Class type, String name);
Optional fetch(GroupVersionKind gvk, String name);
/**
* Creates an Extension.
*
* @param extension is fresh Extension to be created. Please make sure the Extension name does
* not exist.
* @param is Extension type.
*/
void create(E extension);
/**
* Updates an Extension.
*
* @param extension is an Extension to be updated. Please make sure the resource version is
* latest.
* @param is Extension type.
*/
void update(E extension);
/**
* Deletes an Extension.
*
* @param extension is an Extension to be deleted. Please make sure the resource version is
* latest.
* @param is Extension type.
*/
void delete(E extension);
IndexedQueryEngine indexedQueryEngine();
void watch(Watcher watcher);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy