Package com.quantcomponents.ib

Source Code of com.quantcomponents.ib.IBContract

/*******************************************************************************
* Copyright (c) 2013 Luigi Sgro. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     Luigi Sgro - initial API and implementation
******************************************************************************/
package com.quantcomponents.ib;

import java.util.Currency;

import com.ib.client.Contract;
import com.ib.client.ContractDetails;
import com.quantcomponents.core.model.BareDate;
import com.quantcomponents.core.model.IContractDesc;
import com.quantcomponents.core.model.IContract;
import com.quantcomponents.core.model.IdentifierType;
import com.quantcomponents.core.model.OptionRight;
import com.quantcomponents.core.model.SecurityType;
import com.quantcomponents.core.model.beans.ContractBase;

public class IBContract extends ContractBase implements IContract {
  private final Contract iBContract;
  private ContractDetails details;
  private final IBConstantTranslator constantTranslator;
 
  public IBContract(IBConstantTranslator constantTranslator) {
    this(new Contract(), constantTranslator);
  }
 
  public IBContract(Contract iBContract, IBConstantTranslator constantTranslator) {
    this.iBContract = iBContract;
    this.constantTranslator = constantTranslator;
  }
 
  public static Contract toIBContract(IContract contract, IBConstantTranslator constantTranslator) {
    IBContract contractSpecs = new IBContract(constantTranslator);
    contractSpecs.setCurrency(contract.getCurrency());
    contractSpecs.setExchange(contract.getExchange());
    contractSpecs.setPrimaryExchange(contract.getPrimaryExchange());
    contractSpecs.setExpiryDate(contract.getExpiryDate());
    contractSpecs.setIdentifier(contract.getIdentifier());
    contractSpecs.setIdentifierType(contract.getIdentifierType());
    contractSpecs.setMultiplier(contract.getMultiplier());
    contractSpecs.setOptionRight(contract.getOptionRight());
    contractSpecs.setSecurityType(contract.getSecurityType());
    contractSpecs.setStrike(contract.getStrike());
    contractSpecs.setSymbol(contract.getSymbol());
    return contractSpecs.iBContract;
  }

  public ContractDetails getDetails() {
    return details;
  }

  public void setDetails(ContractDetails details) {
    this.details = details;
  }

  @Override
  public String getSymbol() {
    return iBContract.m_symbol;
  }
 
  public void setSymbol(String symbol) {
    iBContract.m_symbol = symbol;
  }

  @Override
  public SecurityType getSecurityType() {
    if (iBContract.m_secType == null) {
      return null;
    } else {
      return constantTranslator.getSecurityType(iBContract.m_secType);
   
  }
 
  public void setSecurityType(SecurityType securityType) {
    if (securityType == null) {
      iBContract.m_secType = null;
    } else {
      iBContract.m_secType = constantTranslator.getCode(securityType);
    }
  }

  @Override
  public BareDate getExpiryDate() {
    if (iBContract.m_expiry == null) {
      return null;
    } else {
      return new BareDate(iBContract.m_expiry);
    }
  }
 
  public void setExpiryDate(BareDate expiryDate) {
    if (expiryDate == null) {
      iBContract.m_expiry = null;
    } else {
      iBContract.m_expiry = expiryDate.getDateRepr();
    }
  }

  @Override
  public Double getStrike() {
    return iBContract.m_strike;
  }
 
  public void setStrike(Double strike) {
    if (strike == null)
      strike = 0.0;
    iBContract.m_strike = strike;
  }

  @Override
  public OptionRight getOptionRight() {
    if (iBContract.m_right == null) {
      return null;
    } else {
      return constantTranslator.getOptionRight(iBContract.m_right);
    }
  }
 
  public void setOptionRight(OptionRight optionRight) {
    if (optionRight == null) {
      iBContract.m_right = null;
    } else {
      iBContract.m_right = constantTranslator.getCode(optionRight);
    }
  }

  @Override
  public Integer getMultiplier() {
    if (iBContract.m_multiplier == null) {
      return null;
    } else {
      return new Integer(iBContract.m_multiplier);
    }
  }
 
  public void setMultiplier(Integer multiplier) {
    if (multiplier == null) {
      iBContract.m_multiplier = null;
    } else {
      iBContract.m_multiplier = Integer.toString(multiplier);
    }
  }

  @Override
  public String getExchange() {
    return iBContract.m_exchange;
  }

  public void setExchange(String exchange) {
    iBContract.m_exchange = exchange;
  }

  @Override
  public String getPrimaryExchange() {
    return iBContract.m_primaryExch;
  }
 
  public void setPrimaryExchange(String exchange) {
    iBContract.m_primaryExch = exchange;
  }

  @Override
  public Currency getCurrency() {
    if (iBContract.m_currency == null) {
      return null;
    } else {
      return Currency.getInstance(iBContract.m_currency);
    }
  }

  public void setCurrency(Currency currency) {
    if (currency == null) {
      iBContract.m_currency = null;
    } else {
      iBContract.m_currency = currency.getCurrencyCode();
    }
  }
 
  @Override
  public IdentifierType getIdentifierType() {
    if (iBContract.m_secIdType == null) {
      return null;
    } else {
      return constantTranslator.getIdentifierType(iBContract.m_secIdType);
    }
  }

  public void setIdentifierType(IdentifierType identifierType) {
    if (identifierType == null) {
      iBContract.m_secIdType = null;
    } else {
      iBContract.m_secIdType = constantTranslator.getCode(identifierType);
    }
  }
 
  @Override
  public String getIdentifier() {
    return iBContract.m_secId;
  }
 
  public void setIdentifier(String identifier) {
    iBContract.m_secId = identifier;
  }

  @Override
  public String getBrokerID() {
    return Integer.toString(iBContract.m_conId);
  }

  public void setBrokerID(String id) {
    iBContract.m_conId = Integer.parseInt(id);
  }
 
  @Override
  public IContractDesc getContractDescription() {
    return details == null ? null : new IBContractDesc(details, constantTranslator);
  }
}
TOP

Related Classes of com.quantcomponents.ib.IBContract

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.