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

com.fasterxml.clustermate.api.msg.ListResponse 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.msg;

import java.util.List;

import com.fasterxml.clustermate.api.ListItemType;
import com.fasterxml.storemate.shared.StorableKey;

/**
 * Response message type for List requests.
 *

* NOTE: should be abstract, but due to some type resolution complications remains * concrete. * * @param Type of entries; either simple id ({@link StorableKey}), * textual name ({@link java.lang.String}) or full {@link ListItem}. */ public class ListResponse // not a CRUD request/response extends ExtensibleType { /** * Error message for failed requests */ public String message; /** * Fetched items for successful requests */ public List items; /** * Id of the last item processed during iteration; usually that of the * last item (but could be another value if a later id can be safely used). */ public StorableKey lastSeen; public ListResponse() { } public ListResponse(String msg) { message = msg; } public ListResponse(List i, StorableKey ls) { items = i; lastSeen = ls; } public int size() { return (items == null) ? 0 : items.size(); } public ListItemType type() { throw new IllegalStateException(); } // public abstract ListItemType type(); public static final class IdListResponse extends ListResponse { public IdListResponse() { } public IdListResponse(List ids, StorableKey lastSeen) { super(ids, lastSeen); } @Override public ListItemType type() { return ListItemType.ids; } } public static final class NameListResponse extends ListResponse { public NameListResponse() { } public NameListResponse(List names, StorableKey lastSeen) { super(names, lastSeen); } @Override public ListItemType type() { return ListItemType.names; } } public static final class MinimalItemListResponse extends ListResponse { public MinimalItemListResponse() { } public MinimalItemListResponse(List entries, StorableKey lastSeen) { super(entries, lastSeen); } @Override public ListItemType type() { return ListItemType.minimalEntries; } } // 07-Feb-2013, tatu: Ought to work, but does NOT work due to Jackson (2.1.3) bug with // generic type resolution /* public static final class FullItemListResponse extends ListResponse { public FullItemListResponse() { } public FullItemListResponse(List entries, StorableKey lastSeen) { super(entries, lastSeen); } @Override public ListItemType type() { return ListItemType.fullEntries; } } */ }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy