org.jberet.support.io.Cape.java Source code

Java tutorial

Introduction

Here is the source code for org.jberet.support.io.Cape.java

Source

/*
 * Copyright (c) 2014 Red Hat, Inc. and/or its affiliates.
 *
 * 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:
 * Cheng Fang - Initial API and implementation
 */

package org.jberet.support.io;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonAutoDetect;

/**
 * A bean class that represents stock market data used in "Irrational Exuberance" by Robert J. Shiller.
 * The Excel file, ie_data.xls, is downloaded from www.econ.yale.edu/~shiller/data/ie_data.xls
 */
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
public class Cape implements Serializable {
    private static final long serialVersionUID = -1345054340595353167L;

    double date;
    double sp;
    double dividend;
    double earnings;
    double cpi;
    double dateFraction;
    double longInterestRate;
    double realPrice;
    double realDividend;
    double realEarnings;
    String cape; //Cyclically Adjusted Price Earnings Ratio P/E10 or CAPE

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Cape{");
        sb.append("date=").append(date);
        sb.append(", sp=").append(sp);
        sb.append(", dividend=").append(dividend);
        sb.append(", earnings=").append(earnings);
        sb.append(", cpi=").append(cpi);
        sb.append(", dateFraction=").append(dateFraction);
        sb.append(", longInterestRate=").append(longInterestRate);
        sb.append(", realPrice=").append(realPrice);
        sb.append(", realDividend=").append(realDividend);
        sb.append(", realEarnings=").append(realEarnings);
        sb.append(", cape=").append(cape);
        sb.append('}');
        return sb.toString();
    }

    @Override
    public boolean equals(final Object o) {
        if (this == o)
            return true;
        if (!(o instanceof Cape))
            return false;

        final Cape cape1 = (Cape) o;

        if (Double.compare(cape1.cpi, cpi) != 0)
            return false;
        if (Double.compare(cape1.date, date) != 0)
            return false;
        if (Double.compare(cape1.dateFraction, dateFraction) != 0)
            return false;
        if (Double.compare(cape1.dividend, dividend) != 0)
            return false;
        if (Double.compare(cape1.earnings, earnings) != 0)
            return false;
        if (Double.compare(cape1.longInterestRate, longInterestRate) != 0)
            return false;
        if (Double.compare(cape1.realDividend, realDividend) != 0)
            return false;
        if (Double.compare(cape1.realEarnings, realEarnings) != 0)
            return false;
        if (Double.compare(cape1.realPrice, realPrice) != 0)
            return false;
        if (Double.compare(cape1.sp, sp) != 0)
            return false;
        if (cape != null ? !cape.equals(cape1.cape) : cape1.cape != null)
            return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result;
        long temp;
        temp = Double.doubleToLongBits(date);
        result = (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(sp);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(dividend);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(earnings);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(cpi);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(dateFraction);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(longInterestRate);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(realPrice);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(realDividend);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits(realEarnings);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        result = 31 * result + (cape != null ? cape.hashCode() : 0);
        return result;
    }
}