/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.security.lookup.irs;
import org.threeten.bp.LocalDate;
import com.opengamma.financial.security.irs.InterestRateSwapNotional;
import com.opengamma.financial.security.irs.InterestRateSwapNotionalVisitor;
import com.opengamma.financial.security.swap.CommodityNotional;
import com.opengamma.financial.security.swap.InterestRateNotional;
import com.opengamma.financial.security.swap.SecurityNotional;
import com.opengamma.financial.security.swap.VarianceSwapNotional;
/**
* Visitor to obtain the IR notional amount.
*/
public class InterestRateSwapNotionalAmountVisitor implements InterestRateSwapNotionalVisitor<LocalDate, Double> {
@Override
public Double visitCommodityNotional(final CommodityNotional notional, final LocalDate period) {
return null;
}
@Override
public Double visitInterestRateNotional(final InterestRateNotional notional, final LocalDate period) {
return notional.getAmount();
}
@Override
public Double visitSecurityNotional(final SecurityNotional notional, final LocalDate period) {
return null;
}
@Override
public Double visitVarianceSwapNotional(final VarianceSwapNotional notional, final LocalDate period) {
return null;
}
@Override
public Double visitInterestRateSwapNotional(final InterestRateSwapNotional notional, final LocalDate period) {
return notional.getAmount(period);
}
@Override
public Double visitInterestRateSwapNotional(final InterestRateSwapNotional notional) {
throw new UnsupportedOperationException("InterestRateSwapNotional requires a period to get the notional for: " + notional);
}
@Override
public Double visitInterestRateNotional(final InterestRateNotional notional) {
return notional.getAmount();
}
@Override
public Double visitCommodityNotional(final CommodityNotional notional) {
throw new UnsupportedOperationException(notional + " not supported by InterestRateSwapNotionalAmountVisitor visitor");
}
@Override
public Double visitSecurityNotional(final SecurityNotional notional) {
throw new UnsupportedOperationException(notional + " not supported by InterestRateSwapNotionalAmountVisitor visitor");
}
@Override
public Double visitVarianceSwapNotional(final VarianceSwapNotional notional) {
throw new UnsupportedOperationException(notional + " not supported by InterestRateSwapNotionalAmountVisitor visitor");
}
}