/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.cache.msg;
/**
* Visitor to the {@link CacheMessage} messages.
*/
public abstract class CacheMessageVisitor {
protected abstract <T extends CacheMessage> T visitUnexpectedMessage(CacheMessage message);
protected <T extends CacheMessage> T visitBinaryDataStoreMessage(final CacheMessage message) {
return this.<T>visitUnexpectedMessage(message);
}
protected <T extends CacheMessage> T visitIdentifierMapMessage(final CacheMessage message) {
return this.<T>visitUnexpectedMessage(message);
}
protected CacheMessage visitDeleteRequest(final DeleteRequest message) {
return visitBinaryDataStoreMessage(message);
}
protected CacheMessage visitFindMessage(final FindMessage message) {
return visitBinaryDataStoreMessage(message);
}
protected GetResponse visitGetRequest(final GetRequest message) {
return visitBinaryDataStoreMessage(message);
}
protected CacheMessage visitGetResponse(final GetResponse message) {
return visitBinaryDataStoreMessage(message);
}
protected IdentifierLookupResponse visitIdentifierLookupRequest(final IdentifierLookupRequest message) {
return visitIdentifierMapMessage(message);
}
protected CacheMessage visitIdentifierLookupResponse(final IdentifierLookupResponse message) {
return visitIdentifierMapMessage(message);
}
protected CacheMessage visitPutRequest(final PutRequest message) {
return visitBinaryDataStoreMessage(message);
}
protected CacheMessage visitReleaseCacheMessage(final ReleaseCacheMessage message) {
return visitBinaryDataStoreMessage(message);
}
protected CacheMessage visitSlaveChannelMessage(final SlaveChannelMessage message) {
return visitBinaryDataStoreMessage(message);
}
protected SpecificationLookupResponse visitSpecificationLookupRequest(final SpecificationLookupRequest message) {
return visitIdentifierMapMessage(message);
}
protected CacheMessage visitSpecificationLookupResponse(final SpecificationLookupResponse message) {
return visitIdentifierMapMessage(message);
}
}