com.opengamma.analytics.financial.model.volatility.curve.FXVannaVolgaVolatilityCurveDataBundle.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.analytics.financial.model.volatility.curve.FXVannaVolgaVolatilityCurveDataBundle.java

Source

/**
 * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
 * 
 * Please see distribution for license.
 */
package com.opengamma.analytics.financial.model.volatility.curve;

import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.Validate;
import org.threeten.bp.ZonedDateTime;

import com.opengamma.util.ArgumentChecker;

/**
 * 
 */
public class FXVannaVolgaVolatilityCurveDataBundle {
    private final double _delta;
    private final double _riskReversal;
    private final double _atm;
    private final double _vegaWeightedButterfly;
    private final ZonedDateTime _maturity;

    public FXVannaVolgaVolatilityCurveDataBundle(final double delta, final double riskReversal, final double atm,
            final double vegaWeightedButterfly, final ZonedDateTime maturity) {
        ArgumentChecker.notNegative(atm, "atm");
        Validate.notNull(maturity, "maturity");
        _delta = delta;
        _riskReversal = riskReversal;
        _atm = atm;
        _vegaWeightedButterfly = vegaWeightedButterfly;
        _maturity = maturity;
    }

    public double getDelta() {
        return _delta;
    }

    public double getRiskReversal() {
        return _riskReversal;
    }

    public double getAtTheMoney() {
        return _atm;
    }

    public double getVegaWeightedButterfly() {
        return _vegaWeightedButterfly;
    }

    public ZonedDateTime getMaturity() {
        return _maturity;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        long temp;
        temp = Double.doubleToLongBits(_atm);
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(_delta);
        result = prime * result + (int) (temp ^ (temp >>> 32));
        result = prime * result + _maturity.hashCode();
        temp = Double.doubleToLongBits(_riskReversal);
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(_vegaWeightedButterfly);
        result = prime * result + (int) (temp ^ (temp >>> 32));
        return result;
    }

    @Override
    public boolean equals(final Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final FXVannaVolgaVolatilityCurveDataBundle other = (FXVannaVolgaVolatilityCurveDataBundle) obj;
        if (Double.doubleToLongBits(_atm) != Double.doubleToLongBits(other._atm)) {
            return false;
        }
        if (Double.doubleToLongBits(_delta) != Double.doubleToLongBits(other._delta)) {
            return false;
        }
        if (!ObjectUtils.equals(_maturity, other._maturity)) {
            return false;
        }
        if (Double.doubleToLongBits(_riskReversal) != Double.doubleToLongBits(other._riskReversal)) {
            return false;
        }
        if (Double.doubleToLongBits(_vegaWeightedButterfly) != Double
                .doubleToLongBits(other._vegaWeightedButterfly)) {
            return false;
        }
        return true;
    }

}