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
19 import org.orekit.files.iirv.terms.base.StringValuedIIRVTerm;
20
21 /**
22 * 4-character destination routing indicator that specifies the site for which the message was generated.
23 * <p>
24 * See {@link OriginIdentificationTerm OriginIdentificationTerm} for the related alphabetic character
25 * <p>
26 * Valid values:
27 * <ul>
28 * <li>GSFC = NASA Goddard Space Flight Center
29 * <li>WLP = Wallops Island tracking radars
30 * <li>ETR = NASA/USFC Eastern Test Range
31 * <li>JPL = NASA Jet Propulsion Laboratory
32 * <li>WTR = NASA/USFC Western Test Range
33 * <li>JSC = NASA Johnson Space Center
34 * <li>PMR = Navy Pacific Missile Range
35 * <li>CSTC = Air Force Satellite Control Facility
36 * <li>KMR = Army Kwajalein Missile Range
37 * <li>CNES = French Space Agency National Centre for Space Studies (CNES)
38 * <li>MANY = Message originated from more than one of the above stations
39 * </ul>
40 *
41 * @author Nick LaFarge
42 * @since 13.0
43 */
44 public class RoutingIndicatorTerm extends StringValuedIIRVTerm {
45
46 /** NASA Goddard Space Flight Center (GSFC) RoutingIndicator. */
47 public static final RoutingIndicatorTerm GSFC = new RoutingIndicatorTerm("GSFC");
48
49 /** Wallops Island tracking radars (WLP) RoutingIndicator. */
50 public static final RoutingIndicatorTerm WLP = new RoutingIndicatorTerm(" WLP");
51
52 /** NASA/USFC Eastern Test Range (ETR) RoutingIndicator. */
53 public static final RoutingIndicatorTerm ETR = new RoutingIndicatorTerm(" ETR");
54
55 /** NASA Jet Propulsion Laboratory (JPL) RoutingIndicator. */
56 public static final RoutingIndicatorTerm JPL = new RoutingIndicatorTerm(" JPL");
57
58 /** NASA/USFC Western Test Range (WTR) RoutingIndicator. */
59 public static final RoutingIndicatorTerm WTR = new RoutingIndicatorTerm(" WTR");
60
61 /** NASA Johnson Space Center (JSC) RoutingIndicator. */
62 public static final RoutingIndicatorTerm JSC = new RoutingIndicatorTerm(" JSC");
63
64 /** Navy Pacific Missile Range (PMR) RoutingIndicator. */
65 public static final RoutingIndicatorTerm PMR = new RoutingIndicatorTerm(" PMR");
66
67 /** Air Force Satellite Control Facility (CSTC) RoutingIndicator. */
68 public static final RoutingIndicatorTerm CSTC = new RoutingIndicatorTerm("CSTC");
69
70 /** Army Kwajalein Missile Range (KMR) RoutingIndicator. */
71 public static final RoutingIndicatorTerm KMR = new RoutingIndicatorTerm(" KMR");
72
73 /** French Space Agency National Centre for Space Studies (CNES) RoutingIndicator. */
74 public static final RoutingIndicatorTerm CNES = new RoutingIndicatorTerm("CNES");
75
76 /** Message originated from more than one of the above stations RoutingIndicator. */
77 public static final RoutingIndicatorTerm MANY = new RoutingIndicatorTerm("MANY");
78
79 /** The length of the IIRV term within the message. */
80 public static final int ROUTING_INDICATOR_TERM_LENGTH = 4;
81
82 /** Regular expression that ensures the validity of string values for this term. */
83 public static final String ROUTING_INDICATOR_TERM_PATTERN = "([A-Z ]+)";
84
85 /**
86 * Constructor.
87 * <p>
88 * See {@link StringValuedIIRVTerm#StringValuedIIRVTerm(String, String, int)}
89 *
90 * @param value value of the routing indicator term
91 */
92 public RoutingIndicatorTerm(final String value) {
93 super(ROUTING_INDICATOR_TERM_PATTERN, value, ROUTING_INDICATOR_TERM_LENGTH);
94 }
95 }