/**
 * Copyright (C) 2005-2012 XELOG AG
 */
package ch.spherIC.recurvebowsight.model;

/**
 * @author  FC Smilari
 */
public class ArcherySetup implements IArcherySetup {

    private long id;
    private String name;
    private ISight sight;
    private IRiser riser;
    private Double arrowDiameter;
    private Double arrowCw;
    private Double arrowWeight;
    private Double arrowV0;
    private Double arrowCenterHeight;
    private Double bowPullout;
    private Double arrowNockHeight;
    private Double hNA;
    private Double deltaTime;
    private Double calcPrecision;
    private Double sightVertSkalaMiddle;
    private Double sightHorzSetting;
    private Double nockRaising;
    private Double braceHeight;

    /**
     * Konstruktor.
     *
     * @param  id
     * @param  sight
     * @param  riser
     * @param  arrowDiameter
     * @param  arrowCw
     * @param  arrowWeight
     * @param  arrowV0
     * @param  arrowCenterHeight
     * @param  bowPullout
     * @param  arrowNockHeight
     * @param  hNA
     * @param  deltaTime
     * @param  calcPrecision
     * @param  sightVertSkalaMiddle
     * @param  sightHorSetting
     * @param  nockRaising
     * @param  braceHeight
     */
    public ArcherySetup(final long id, final String name, final ISight sight, final IRiser riser,
                        final Double arrowDiameter, final Double arrowCw, final Double arrowWeight,
                        final Double arrowV0, final Double arrowCenterHeight, final Double bowPullout,
                        final Double arrowNockHeight, final Double hNA, final Double deltaTime,
                        final Double calcPrecision, final Double sightVertSkalaMiddle,
                        final Double sightHorSetting, final Double nockRaising, final Double braceHeight) {
        super();
        this.id = id;
        this.name = name;
        this.sight = sight;
        this.riser = riser;
        this.arrowDiameter = arrowDiameter;
        this.arrowCw = arrowCw;
        this.arrowWeight = arrowWeight;
        this.arrowV0 = arrowV0;
        this.arrowCenterHeight = arrowCenterHeight;
        this.bowPullout = bowPullout;
        this.arrowNockHeight = arrowNockHeight;
        this.hNA = hNA;
        this.deltaTime = deltaTime;
        this.calcPrecision = calcPrecision;
        this.sightVertSkalaMiddle = sightVertSkalaMiddle;
        this.sightHorzSetting = sightHorSetting;
        this.nockRaising = nockRaising;
        this.braceHeight = braceHeight;
    }

    /**
     * @return  the id
     */
    @Override
    public long getId() {
        return this.id;
    }

    /**
     * @param  id  the id to set
     */
    @Override
    public void setId(final long id) {
        this.id = id;
    }


    /**
     * @return  the name
     */
    @Override
    public String getName() {
        return this.name;
    }

    /**
     * @param  name  the name to set
     */
    @Override
    public void setName(final String name) {
        this.name = name;
    }

    /**
     * @return  the sight
     */
    @Override
    public ISight getSight() {
        return this.sight;
    }

    /**
     * @param  sight  the sight to set
     */
    @Override
    public void setSight(final ISight sight) {
        this.sight = sight;
    }

    /**
     * @return  the riser
     */
    @Override
    public IRiser getRiser() {
        return this.riser;
    }

    /**
     * @param  riser  the riser to set
     */
    @Override
    public void setRiser(final IRiser riser) {
        this.riser = riser;
    }

    /**
     * @return  the arrowDiameter
     */
    @Override
    public Double getArrowDiameter() {
        return this.arrowDiameter;
    }

    /**
     * @param  arrowDiameter  the arrowDiameter to set
     */
    @Override
    public void setArrowDiameter(final Double arrowDiameter) {
        this.arrowDiameter = arrowDiameter;
    }

    /**
     * @return  the arrowCw
     */
    @Override
    public Double getArrowCw() {
        return this.arrowCw;
    }

    /**
     * @param  arrowCw  the arrowCw to set
     */
    @Override
    public void setArrowCw(final Double arrowCw) {
        this.arrowCw = arrowCw;
    }

    /**
     * @return  the arrowWeight
     */
    @Override
    public Double getArrowWeight() {
        return this.arrowWeight;
    }

    /**
     * @param  arrowWeight  the arrowWeight to set
     */
    @Override
    public void setArrowWeight(final Double arrowWeight) {
        this.arrowWeight = arrowWeight;
    }

    /**
     * @return  the arrowV0
     */
    @Override
    public Double getArrowV0() {
        return this.arrowV0;
    }

    /**
     * @param  arrowV0  the arrowV0 to set
     */
    @Override
    public void setArrowV0(final Double arrowV0) {
        this.arrowV0 = arrowV0;
    }

    /**
     * @return  the arrowCenterHeight
     */
    @Override
    public Double getArrowCenterHeight() {
        return this.arrowCenterHeight;
    }

    /**
     * @param  arrowCenterHeight  the arrowCenterHeight to set
     */
    @Override
    public void setArrowCenterHeight(final Double arrowCenterHeight) {
        this.arrowCenterHeight = arrowCenterHeight;
    }

    /**
     * @return  the bowPullout
     */
    @Override
    public Double getBowPullout() {
        return this.bowPullout;
    }

    /**
     * @param  bowPullout  the bowPullout to set
     */
    @Override
    public void setBowPullout(final Double bowPullout) {
        this.bowPullout = bowPullout;
    }

    /**
     * @return  the arrowNockHeight
     */
    @Override
    public Double getArrowNockHeight() {
        return this.arrowNockHeight;
    }

    /**
     * @param  arrowNockHeight  the arrowNockHeight to set
     */
    @Override
    public void setArrowNockHeight(final Double arrowNockHeight) {
        this.arrowNockHeight = arrowNockHeight;
    }

    /**
     * @return  the hNA
     */
    @Override
    public Double getHNA() {
        return this.hNA;
    }

    /**
     * @param  hNA  the hNA to set
     */
    @Override
    public void setHNA(final Double hNA) {
        this.hNA = hNA;
    }

    /**
     * @return  the deltaTime
     */
    @Override
    public Double getDeltaTime() {
        return this.deltaTime;
    }

    /**
     * @param  deltaTime  the deltaTime to set
     */
    @Override
    public void setDeltaTime(final Double deltaTime) {
        this.deltaTime = deltaTime;
    }

    /**
     * @return  the calcPrecision
     */
    @Override
    public Double getCalcPrecision() {
        return this.calcPrecision;
    }

    /**
     * @param  calcPrecision  the calcPrecision to set
     */
    @Override
    public void setCalcPrecision(final Double calcPrecision) {
        this.calcPrecision = calcPrecision;
    }

    /**
     * @return  the sightVertSkalaMiddle
     */
    @Override
    public Double getSightVertSkalaMiddle() {
        return this.sightVertSkalaMiddle;
    }

    /**
     * @param  sightVertSkalaMiddle  the sightVertSkalaMiddle to set
     */
    @Override
    public void setSightVertSkalaMiddle(final Double sightVertSkalaMiddle) {
        this.sightVertSkalaMiddle = sightVertSkalaMiddle;
    }

    /**
     * @return  the sightHorSetting
     */
    @Override
    public Double getSightHorzSetting() {
        return this.sightHorzSetting;
    }

    /**
     * @param  sightHorSetting  the sightHorSetting to set
     */
    @Override
    public void setSightHorzSetting(final Double sightHorSetting) {
        this.sightHorzSetting = sightHorSetting;
    }

    @Override
    public String toString() {
        return getName();
    }

    @Override
    public Double getNockRaising() {
        return this.nockRaising;
    }

    @Override
    public void setNockRaising(final Double nockRaising) {
        this.nockRaising = nockRaising;
    }

    @Override
    public Double getBraceHeight() {
        return this.braceHeight;
    }

    @Override
    public void setBraceHeight(final Double braceHeight) {
        this.braceHeight = braceHeight;
    }
}
