AbstractEphemerisMessage.java

/* Copyright 2002-2024 CS GROUP
 * Licensed to CS GROUP (CS) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * CS licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.orekit.propagation.analytical.gnss.data;

import org.orekit.time.AbsoluteDate;

/**
 * Base class for ephemeris-based navigation messages.
 * @author Bryan Cazabonne
 * @since 11.0
 *
 * @see GLONASSNavigationMessage
 * @see SBASNavigationMessage
 */
public abstract class AbstractEphemerisMessage {

    /** Ephemeris reference epoch. */
    private AbsoluteDate date;

    /** Time of clock epoch. */
    private AbsoluteDate epochToc;

    /** PRN number of the satellite. */
    private int prn;

    /** Satellite X position in meters. */
    private double x;

    /** Satellite X velocity in meters per second. */
    private double xDot;

    /** Satellite X acceleration in meters per second². */
    private double xDotDot;

    /** Satellite Y position in meters. */
    private double y;

    /** Satellite Y velocity in meters per second. */
    private double yDot;

    /** Satellite Y acceleration in meters per second². */
    private double yDotDot;

    /** Satellite Z position in meters. */
    private double z;

    /** Satellite Z velocity in meters per second. */
    private double zDot;

    /** Satellite Z acceleration in meters per second². */
    private double zDotDot;

    /** Health status. */
    private double health;

    /** Constructor. */
    public AbstractEphemerisMessage() {
        // Nothing to do ...
    }

    /**
     * Getter for the reference date of the ephemeris.
     * @return the reference date of the ephemeris
     */
    public AbsoluteDate getDate() {
        return date;
    }

    /**
     * Setter for the reference date of the ephemeris.
     * @param date the date to set
     */
    public void setDate(final AbsoluteDate date) {
        this.date = date;
    }

    /**
     * Getter for the time of clock epoch.
     * @return the time of clock epoch
     */
    public AbsoluteDate getEpochToc() {
        return epochToc;
    }

    /**
     * Setter for the time of clock epoch.
     * @param epochToc the epoch to set
     */
    public void setEpochToc(final AbsoluteDate epochToc) {
        this.epochToc = epochToc;
    }

    /**
     * Getter for the PRN number of the satellite.
     * @return the PRN number of the satellite
     */
    public int getPRN() {
        return prn;
    }

    /**
     * Setter for the PRN number of the satellite.
     * @param number the prn number ot set
     */
    public void setPRN(final int number) {
        this.prn = number;
    }

    /**
     * Getter for the satellite X position.
     * @return the satellite X position in meters
     */
    public double getX() {
        return x;
    }

    /**
     * Setter for the satellite X position.
     * @param x satellite X position (meters) to set
     */
    public void setX(final double x) {
        this.x = x;
    }

    /**
     * Getter for the satellite X velocity.
     * @return the satellite X velocity in m/s
     */
    public double getXDot() {
        return xDot;
    }

    /**
     * Setter for the satellite X velocity.
     * @param vx the satellite X velocity (m/s) to set
     */
    public void setXDot(final double vx) {
        this.xDot = vx;
    }

    /**
     * Getter for the satellite X acceleration.
     * @return the satellite X acceleration in m/s²
     */
    public double getXDotDot() {
        return xDotDot;
    }

    /**
     * Setter for the satellite X acceleration.
     * @param ax the satellite X acceleration (m/s²) to set
     */
    public void setXDotDot(final double ax) {
        this.xDotDot = ax;
    }

    /**
     * Getter for the satellite Y position.
     * @return the satellite Y position in meters
     */
    public double getY() {
        return y;
    }

    /**
     * Setter for the satellite Y position.
     * @param y satellite Y position (meters) to set
     */
    public void setY(final double y) {
        this.y = y;
    }

    /**
     * Getter for the satellite Y velocity.
     * @return the satellite Y velocity in m/s
     */
    public double getYDot() {
        return yDot;
    }

    /**
     * Setter for the satellite Y velocity.
     * @param vy the satellite Y velocity (m/s) to set
     */
    public void setYDot(final double vy) {
        this.yDot = vy;
    }

    /**
     * Getter for the satellite Y acceleration.
     * @return the satellite Y acceleration in m/s²
     */
    public double getYDotDot() {
        return yDotDot;
    }

    /**
     * Setter for the satellite Y acceleration.
     * @param ay the satellite Y acceleration (m/s²) to set
     */
    public void setYDotDot(final double ay) {
        this.yDotDot = ay;
    }

    /**
     * Getter for the satellite Z position.
     * @return the satellite Z position in meters
     */
    public double getZ() {
        return z;
    }

    /**
     * Setter for the satellite Z position.
     * @param z satellite Z position (meters) to set
     */
    public void setZ(final double z) {
        this.z = z;
    }

    /**
     * Getter for the satellite Z velocity.
     * @return the satellite Z velocity in m/s
     */
    public double getZDot() {
        return zDot;
    }

    /**
     * Setter for the satellite Z velocity.
     * @param vz the satellite Z velocity (m/s) to set
     */
    public void setZDot(final double vz) {
        this.zDot = vz;
    }

    /**
     * Getter for the satellite Z acceleration.
     * @return the satellite Z acceleration in m/s²
     */
    public double getZDotDot() {
        return zDotDot;
    }

    /**
     * Setter for the satellite Z acceleration.
     * @param az the satellite Z acceleration (m/s²) to set
     */
    public void setZDotDot(final double az) {
        this.zDotDot = az;
    }

    /**
     * Getter for the health status.
     * @return the health status
     */
    public double getHealth() {
        return health;
    }

    /**
     * Setter for the health status.
     * @param health the health status to set
     */
    public void setHealth(final double health) {
        this.health = health;
    }

}