OriginIdentificationTerm.java

  1. /* Copyright 2024-2025 The Johns Hopkins University Applied Physics Laboratory
  2.  * Licensed to CS GROUP (CS) under one or more
  3.  * contributor license agreements.  See the NOTICE file distributed with
  4.  * this work for additional information regarding copyright ownership.
  5.  * CS licenses this file to You under the Apache License, Version 2.0
  6.  * (the "License"); you may not use this file except in compliance with
  7.  * the License.  You may obtain a copy of the License at
  8.  *
  9.  *   http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package org.orekit.files.iirv.terms;

  18. import org.orekit.files.iirv.terms.base.StringValuedIIRVTerm;

  19. /**
  20.  * 1-character alphabetic character indicating originator of message.
  21.  * <p>
  22.  * See {@link RoutingIndicatorTerm RoutingIndicatorTerm} for the related four-character routing indicator
  23.  * <p>
  24.  * Valid values:
  25.  * <ul>
  26.  * <li> ASCII space  = GSFC
  27.  * <li> Z            = WLP
  28.  * <li> E            = ETR
  29.  * <li> L            = JPL
  30.  * <li> W            = WTR
  31.  * <li> J            = JSC
  32.  * <li> P            = PMR
  33.  * <li> A            = CSTC
  34.  * <li> K            = KMR
  35.  * <li> C            = CNES
  36.  * </ul>
  37.  *
  38.  * @author Nick LaFarge
  39.  * @since 13.0
  40.  */
  41. public class OriginIdentificationTerm extends StringValuedIIRVTerm {

  42.     /** NASA Goddard Space Flight Center (GSFC) OriginIdentification. */
  43.     public static final OriginIdentificationTerm GSFC = new OriginIdentificationTerm(" ");

  44.     /** Wallops Island tracking radars (WLP) OriginIdentification. */
  45.     public static final OriginIdentificationTerm WLP = new OriginIdentificationTerm("Z");

  46.     /** NASA/USFC Eastern Test Range (ETR) OriginIdentification. */
  47.     public static final OriginIdentificationTerm ETR = new OriginIdentificationTerm("E");

  48.     /** NASA Jet Propulsion Laboratory (JPL) OriginIdentification. */
  49.     public static final OriginIdentificationTerm JPL = new OriginIdentificationTerm("L");

  50.     /** NASA/USFC Western Test Range (WTR) OriginIdentification. */
  51.     public static final OriginIdentificationTerm WTR = new OriginIdentificationTerm("W");

  52.     /** NASA Johnson Space Center (JSC) OriginIdentification. */
  53.     public static final OriginIdentificationTerm JSC = new OriginIdentificationTerm("J");

  54.     /** Navy Pacific Missile Range (PMR) OriginIdentification. */
  55.     public static final OriginIdentificationTerm PMR = new OriginIdentificationTerm("P");

  56.     /** Air Force Satellite Control Facility (CSTC) OriginIdentification. */
  57.     public static final OriginIdentificationTerm CSTC = new OriginIdentificationTerm("A");

  58.     /** Army Kwajalein Missile Range (KMR) OriginIdentification. */
  59.     public static final OriginIdentificationTerm KMR = new OriginIdentificationTerm("K");

  60.     /** French Space Agency National Centre for Space Studies (CNES) OriginIdentification. */
  61.     public static final OriginIdentificationTerm CNES = new OriginIdentificationTerm("C");

  62.     /** The length of the origin identification term within the IIRV vector. */
  63.     public static final int ORIGIN_IDENTIFICATION_TERM_LENGTH = 1;

  64.     /** Regular expression that ensures the validity of string values for this term. */
  65.     public static final String ORIGIN_IDENTIFICATION_TERM_PATTERN = "[A-Z ]";

  66.     /**
  67.      * Constructor.
  68.      * <p>
  69.      * See {@link StringValuedIIRVTerm#StringValuedIIRVTerm(String, String, int)}
  70.      *
  71.      * @param value value of the origin ID term
  72.      */
  73.     public OriginIdentificationTerm(final String value) {
  74.         super(ORIGIN_IDENTIFICATION_TERM_PATTERN, value, ORIGIN_IDENTIFICATION_TERM_LENGTH);
  75.     }
  76. }