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

com.fasterxml.clustermate.api.RequestPathStrategy Maven / Gradle / Ivy

Go to download

Data types needed for service abstraction, used by both server and client components.

The newest version!
package com.fasterxml.clustermate.api;

/**
 * Type that defines how references are built to access
 * a StoreMate service node.
 *
 * @param 

Path type enumeration used */ public abstract class RequestPathStrategy

> { /* /********************************************************************** /* Methods for building general requests paths (by client or server-as-client) /**********************************************************************å */ /** * Method to call to append path segments of specified type, onto * partially built base path. * * @param basePath Existing path, on to which append specified path segment(s) * * @return Path builder after appending specified path */ public abstract > B appendPath(B basePath, P type); /* /********************************************************************** /* Methods for building basic content access paths /**********************************************************************å */ /** * Method for building path for accessing payload of specified entry. */ public abstract > B appendStoreEntryPath(B basePath); /** * Method for building path for entry point to access item info of individual entries. */ public abstract > B appendStoreEntryInfoPath(B basePath); /** * Method for building path for entry point to list available entries with specified * path prefix. */ public abstract > B appendStoreListPath(B basePath); /* /********************************************************************** /* Methods for building server-side access paths /**********************************************************************å */ public abstract > B appendSyncListPath(B basePath); public abstract > B appendSyncPullPath(B basePath); public abstract > B appendNodeMetricsPath(B basePath); public abstract > B appendNodeStatusPath(B basePath); public abstract > B appendRemoteSyncListPath(B basePath); public abstract > B appendRemoteSyncPullPath(B basePath); public abstract > B appendRemoteStatusPath(B basePath); /* /********************************************************************** /* Methods for decoded requests paths (by server) /********************************************************************** */ /** * Method for finding which entry point given path matches (if any); and if there * is a match, consuming matched path. */ public abstract P matchPath(DecodableRequestPath pathDecoder); }