/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.function.blacklist; import java.util.Collection; import org.fudgemsg.FudgeMsg; import org.fudgemsg.MutableFudgeMsg; import org.fudgemsg.mapping.FudgeDeserializer; import org.fudgemsg.mapping.FudgeSerializer; import org.fudgemsg.wire.types.FudgeWireType; /** * Provides remote access to a {@link ManageableFunctionBlacklist}. */ public class RemoteManageableFunctionBlacklist extends RemoteFunctionBlacklist implements ManageableFunctionBlacklist { public RemoteManageableFunctionBlacklist(final FudgeDeserializer fdc, final FudgeMsg info, final RemoteManageableFunctionBlacklistProvider provider) { super(fdc, info, provider); } @Override protected RemoteManageableFunctionBlacklistProvider getProvider() { return (RemoteManageableFunctionBlacklistProvider) super.getProvider(); } @Override public void addBlacklistRule(final FunctionBlacklistRule rule) { final FudgeSerializer fsc = new FudgeSerializer(getProvider().getFudgeContext()); final MutableFudgeMsg msg = fsc.newMessage(); fsc.addToMessage(msg, DataManageableFunctionBlacklistResource.RULE_FIELD, null, rule); getProvider().add(getName(), msg); } @Override public void addBlacklistRule(final FunctionBlacklistRule rule, final int timeToLive) { final FudgeSerializer fsc = new FudgeSerializer(getProvider().getFudgeContext()); final MutableFudgeMsg msg = fsc.newMessage(); msg.add(DataManageableFunctionBlacklistResource.TTL_FIELD, null, FudgeWireType.LONG, timeToLive); fsc.addToMessage(msg, DataManageableFunctionBlacklistResource.RULE_FIELD, null, rule); getProvider().add(getName(), msg); } @Override public void addBlacklistRules(final Collection<FunctionBlacklistRule> rules) { final FudgeSerializer fsc = new FudgeSerializer(getProvider().getFudgeContext()); final MutableFudgeMsg msg = fsc.newMessage(); for (FunctionBlacklistRule rule : rules) { fsc.addToMessage(msg, DataManageableFunctionBlacklistResource.RULE_FIELD, null, rule); } getProvider().add(getName(), msg); } @Override public void addBlacklistRules(final Collection<FunctionBlacklistRule> rules, final int timeToLive) { final FudgeSerializer fsc = new FudgeSerializer(getProvider().getFudgeContext()); final MutableFudgeMsg msg = fsc.newMessage(); msg.add(DataManageableFunctionBlacklistResource.TTL_FIELD, null, FudgeWireType.LONG, timeToLive); for (FunctionBlacklistRule rule : rules) { fsc.addToMessage(msg, DataManageableFunctionBlacklistResource.RULE_FIELD, null, rule); } getProvider().add(getName(), msg); } @Override public void removeBlacklistRule(final FunctionBlacklistRule rule) { final FudgeSerializer fsc = new FudgeSerializer(getProvider().getFudgeContext()); final MutableFudgeMsg msg = fsc.newMessage(); fsc.addToMessage(msg, DataManageableFunctionBlacklistResource.RULE_FIELD, null, rule); getProvider().remove(getName(), msg); } @Override public void removeBlacklistRules(final Collection<FunctionBlacklistRule> rules) { final FudgeSerializer fsc = new FudgeSerializer(getProvider().getFudgeContext()); final MutableFudgeMsg msg = fsc.newMessage(); for (FunctionBlacklistRule rule : rules) { fsc.addToMessage(msg, DataManageableFunctionBlacklistResource.RULE_FIELD, null, rule); } getProvider().remove(getName(), msg); } }