package org.marketcetera.marketdata.marketcetera;
import static org.marketcetera.marketdata.marketcetera.Messages.TARGET_COMP_ID_REQUIRED;
import static org.marketcetera.marketdata.marketcetera.Messages.URL_REQUIRED;
import org.marketcetera.core.ClassVersion;
import org.marketcetera.marketdata.AbstractMarketDataFeed;
import org.marketcetera.marketdata.AbstractMarketDataFeedURLCredentials;
import org.marketcetera.marketdata.FeedException;
/* $License$ */
/**
* Credentials instance for <code>MarketceteraFeed</code>.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id: MarketceteraFeedCredentials.java 16154 2012-07-14 16:34:05Z colin $
* @since 0.6.0
*/
@ClassVersion("$Id: MarketceteraFeedCredentials.java 16154 2012-07-14 16:34:05Z colin $") //$NON-NLS-1$
public class MarketceteraFeedCredentials
extends AbstractMarketDataFeedURLCredentials
{
/**
* the sender comp id
*/
private final String mSenderCompID;
/**
* the target comp id
*/
private final String mTargetCompID;
/**
* Gets a <code>MarketceteraFeedCredentials</code> instance.
*
* @param inURL a <code>String</code> value
* @param inSenderCompID a <code>String</code> value
* @param inTargetCompID a <code>String</code> value
* @return a <code>MarketceteraFeedCredentials</code> value
* @throws FeedException if an error occurs construction the credentials object
*/
public static MarketceteraFeedCredentials getInstance(String inURL,
String inSenderCompID,
String inTargetCompID)
throws FeedException
{
return new MarketceteraFeedCredentials(inURL,
inSenderCompID,
inTargetCompID);
}
/**
* Constructs a new <code>MarketceteraFeedCredentials</code> object.
*
* @param inURL a <code>String</code> value
* @param inSenderCompID a <code>String</code> value
* @param inTargetCompID a <code>String</code> value
* @throws IllegalArgumentException if <code>inTargetCompID</code> is null or is of zero length
* @throws FeedException if an error occurs
*/
private MarketceteraFeedCredentials(String inURL,
String inSenderCompID,
String inTargetCompID)
throws FeedException
{
super(inURL);
mSenderCompID = inSenderCompID;
mTargetCompID = inTargetCompID;
if(mTargetCompID == null ||
mTargetCompID.trim().isEmpty()) {
TARGET_COMP_ID_REQUIRED.error(AbstractMarketDataFeed.DATAFEED_STATUS_MESSAGES);
throw new FeedException(TARGET_COMP_ID_REQUIRED);
}
}
/**
* Gets the sender comp ID for this credentials object.
*
* @return a <code>String</code> value
*/
public String getSenderCompID()
{
return mSenderCompID;
}
/**
* Gets the target comp ID for this credentials object.
*
* @return a <code>String</code> value
*/
public String getTargetCompID()
{
return mTargetCompID;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
StringBuilder output = new StringBuilder();
output.append("Marketcetera Feed Credentials: URL=").append(getURL()).append(" SenderCompID=").append(getSenderCompID()).append(" TargetCompID=").append(getTargetCompID()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return output.toString();
}
/* (non-Javadoc)
* @see org.marketcetera.marketdata.AbstractMarketDataFeedCredentials#validateURL(java.lang.String)
*/
@Override
protected void validateURL(String inURL)
throws FeedException
{
super.validateURL(inURL);
if(inURL == null ||
inURL.isEmpty()) {
URL_REQUIRED.error(AbstractMarketDataFeed.DATAFEED_STATUS_MESSAGES);
throw new FeedException(URL_REQUIRED);
}
}
}