All Downloads are FREE. Search and download functionalities are using the official Maven repository.

run.halo.app.extension.ExtensionClient Maven / Gradle / Ivy

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