1   /* Copyright 2002-2024 CS GROUP
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.errors;
18  
19  import org.hipparchus.exception.Localizable;
20  import org.hipparchus.exception.UTF8Control;
21  
22  import java.util.Locale;
23  import java.util.MissingResourceException;
24  import java.util.ResourceBundle;
25  
26  /**
27   * Enumeration for localized messages formats.
28   * <p>
29   * The constants in this enumeration represent the available formats as
30   * localized strings. These formats are intended to be localized using simple
31   * properties files, using the constant name as the key and the property value
32   * as the message format. The source English format is provided in the constants
33   * themselves to serve both as a reminder for developers to understand the
34   * parameters needed by each format, as a basis for translators to create
35   * localized properties files, and as a default format if some translation is
36   * missing.
37   * </p>
38   * @since 2.1
39   */
40  public enum OrekitMessages implements Localizable {
41  
42      /** INTERNAL_ERROR. */
43      INTERNAL_ERROR("internal error, please notify development team by creating a new topic at {0}"),
44  
45      /** ALTITUDE_BELOW_ALLOWED_THRESHOLD. */
46      ALTITUDE_BELOW_ALLOWED_THRESHOLD("altitude ({0} m) is below the {1} m allowed threshold"),
47  
48      /** POINT_INSIDE_ELLIPSOID. */
49      POINT_INSIDE_ELLIPSOID("point is inside ellipsoid"),
50  
51      /** TRAJECTORY_INSIDE_BRILLOUIN_SPHERE. */
52      TRAJECTORY_INSIDE_BRILLOUIN_SPHERE("trajectory inside the Brillouin sphere (r = {0})"),
53  
54      /** ALMOST_EQUATORIAL_ORBIT. */
55      ALMOST_EQUATORIAL_ORBIT("almost equatorial orbit (i = {0} degrees)"),
56  
57      /** ALMOST_CRITICALLY_INCLINED_ORBIT. */
58      ALMOST_CRITICALLY_INCLINED_ORBIT("almost critically inclined orbit (i = {0} degrees)"),
59  
60      /** UNABLE_TO_COMPUTE_ECKSTEIN_HECHLER_MEAN_PARAMETERS. */
61      UNABLE_TO_COMPUTE_ECKSTEIN_HECHLER_MEAN_PARAMETERS("unable to compute Eckstein-Hechler mean parameters after {0} iterations"),
62  
63      /** UNABLE_TO_COMPUTE_BROUWER_LYDDANE_MEAN_PARAMETERS. */
64      UNABLE_TO_COMPUTE_BROUWER_LYDDANE_MEAN_PARAMETERS("unable to compute Brouwer-Lyddane mean parameters after {0} iterations"),
65  
66      /** UNABLE_TO_COMPUTE_TLE. */
67      UNABLE_TO_COMPUTE_TLE("unable to compute TLE after {0} iterations"),
68  
69      /** NULL_PARENT_FOR_FRAME. */
70      NULL_PARENT_FOR_FRAME("null parent for frame {0}"),
71  
72      /** FRAME_ALREADY_ATTACHED. */
73      FRAME_ALREADY_ATTACHED("frame {0} is already attached to frame {1}"),
74  
75      /** FRAME_NOT_ATTACHED. */
76      FRAME_NOT_ATTACHED("frame {0} is not attached to the main frames tree"),
77  
78      /** FRAME_ANCESTOR_OF_BOTH_FRAMES. */
79      FRAME_ANCESTOR_OF_BOTH_FRAMES("frame {0} is an ancestor of both frames {1} and {2}"),
80  
81      /** FRAME_ANCESTOR_OF_NEITHER_FRAME. */
82      FRAME_ANCESTOR_OF_NEITHER_FRAME("frame {0} is an ancestor of neither frame {1} nor {2}"),
83  
84      /** FRAME_NO_NTH_ANCESTOR. */
85      FRAME_NO_NTH_ANCESTOR("frame {0} has depth {1}, it cannot have an ancestor {2} levels above"),
86  
87      /** NO_SUCH_ITRF_FRAME. */
88      NO_SUCH_ITRF_FRAME("ITRF frame {0} not found"),
89  
90      /** UNSUPPORTED_LOCAL_ORBITAL_FRAME. */
91      UNSUPPORTED_LOCAL_ORBITAL_FRAME("unsupported local orbital frame {0}"),
92  
93      /** NON_PSEUDO_INERTIAL_FRAME. */
94      NON_PSEUDO_INERTIAL_FRAME("non pseudo-inertial frame \"{0}\""),
95  
96      /** DATA_ROOT_DIRECTORY_DOES_NOT_EXIST. */
97      DATA_ROOT_DIRECTORY_DOES_NOT_EXIST("data root directory {0} does not exist"),
98  
99      /** NOT_A_DIRECTORY. */
100     NOT_A_DIRECTORY("{0} is not a directory"),
101 
102     /** NEITHER_DIRECTORY_NOR_ZIP_OR_JAR. */
103     NEITHER_DIRECTORY_NOR_ZIP_OR_JAR("{0} is neither a directory nor a zip/jar archive file"),
104 
105     /** UNABLE_TO_FIND_RESOURCE. */
106     UNABLE_TO_FIND_RESOURCE("unable to find resource {0} in classpath"),
107 
108     /** NO_EARTH_ORIENTATION_PARAMETERS_LOADED. */
109     NO_EARTH_ORIENTATION_PARAMETERS_LOADED("no Earth Orientation Parameters loaded"),
110 
111     /** MISSING_EARTH_ORIENTATION_PARAMETERS_BETWEEN_DATES. */
112     MISSING_EARTH_ORIENTATION_PARAMETERS_BETWEEN_DATES("missing Earth Orientation Parameters between {0} and {1}"),
113 
114     /** MISSING_EARTH_ORIENTATION_PARAMETERS_BETWEEN_DATES_GAP. */
115     MISSING_EARTH_ORIENTATION_PARAMETERS_BETWEEN_DATES_GAP("missing Earth Orientation Parameters between {0} and {1}, gap is {2,number,0.0##############E0} s"),
116 
117     /** NO_EARTH_ORIENTATION_PARAMETERS. */
118     NO_EARTH_ORIENTATION_PARAMETERS("missing Earth Orientation Parameters"),
119 
120     /** NOT_A_SUPPORTED_IERS_DATA_FILE. */
121     NOT_A_SUPPORTED_IERS_DATA_FILE("file {0} is not a supported IERS data file"),
122 
123     /** INCONSISTENT_DATES_IN_IERS_FILE. */
124     INCONSISTENT_DATES_IN_IERS_FILE("inconsistent dates in IERS file {0}: {1}-{2}-{3} and MJD {4}"),
125 
126     /** UNEXPECTED_DATA_AFTER_LINE_IN_FILE. */
127     UNEXPECTED_DATA_AFTER_LINE_IN_FILE("unexpected data after line {0} in file {1}: {2}"),
128 
129     /** UNEXPECTED_DATA_AT_LINE_IN_FILE. */
130     UNEXPECTED_DATA_AT_LINE_IN_FILE("unexpected data at line {0} in file {1}"),
131 
132     /** NON_CHRONOLOGICAL_DATES_IN_FILE. */
133     NON_CHRONOLOGICAL_DATES_IN_FILE("non-chronological dates in file {0}, line {1}"),
134 
135     /** NO_IERS_UTC_TAI_HISTORY_DATA_LOADED. */
136     NO_IERS_UTC_TAI_HISTORY_DATA_LOADED("no IERS UTC-TAI history data loaded"),
137 
138     /** NO_ENTRIES_IN_IERS_UTC_TAI_HISTORY_FILE. */
139     NO_ENTRIES_IN_IERS_UTC_TAI_HISTORY_FILE("no entries found in IERS UTC-TAI history file {0}"),
140 
141     /** MISSING_SERIE_J_IN_FILE. */
142     MISSING_SERIE_J_IN_FILE("missing serie j = {0} in file {1} (line {2})"),
143 
144     /** CANNOT_PARSE_BOTH_TAU_AND_GAMMA. */
145     CANNOT_PARSE_BOTH_TAU_AND_GAMMA("cannot parse both τ and γ from the same Poissons series file"),
146 
147     /** UNEXPECTED_END_OF_FILE_AFTER_LINE. */
148     UNEXPECTED_END_OF_FILE_AFTER_LINE("unexpected end of file {0} (after line {1})"),
149 
150     /** UNABLE_TO_PARSE_LINE_IN_FILE. */
151     UNABLE_TO_PARSE_LINE_IN_FILE("unable to parse line {0} of file {1}:\n{2}"),
152 
153     /** UNABLE_TO_PARSE_ELEMENT_IN_FILE. */
154     UNABLE_TO_PARSE_ELEMENT_IN_FILE("unable to parse element {0} at line {1}, file {2}"),
155 
156     /** UNABLE_TO_FIND_FILE. */
157     UNABLE_TO_FIND_FILE("unable to find file {0}"),
158 
159     /** POSITIVE_FLOW_RATE. */
160     POSITIVE_FLOW_RATE("positive flow rate (q: {0})"),
161 
162     /** NO_GRAVITY_FIELD_DATA_LOADED. */
163     NO_GRAVITY_FIELD_DATA_LOADED("no gravity field data loaded"),
164 
165     /** GRAVITY_FIELD_NORMALIZATION_UNDERFLOW. */
166     GRAVITY_FIELD_NORMALIZATION_UNDERFLOW("gravity field normalization underflow for degree {0} and order {1}"),
167 
168     /** NO_OCEAN_TIDE_DATA_LOADED. */
169     NO_OCEAN_TIDE_DATA_LOADED("no ocean tide data loaded"),
170 
171     /** OCEAN_TIDE_DATA_DEGREE_ORDER_LIMITS. */
172     OCEAN_TIDE_DATA_DEGREE_ORDER_LIMITS("ocean tide data file {0} limited to degree {1} and order {2}"),
173 
174     /** OCEAN_TIDE_LOAD_DEFORMATION_LIMITS. */
175     OCEAN_TIDE_LOAD_DEFORMATION_LIMITS("load deformation coefficients limited to degree {0}, cannot parse degree {1} term from file {2}"),
176 
177     /** POLAR_TRAJECTORY. */
178     POLAR_TRAJECTORY("polar trajectory (distance to polar axis: {0})"),
179 
180     /** UNEXPECTED_FILE_FORMAT_ERROR_FOR_LOADER. */
181     UNEXPECTED_FILE_FORMAT_ERROR_FOR_LOADER("unexpected format error for file {0} with loader {1}"),
182 
183     /** DUPLICATED_GRAVITY_FIELD_COEFFICIENT_IN_FILE. */
184     DUPLICATED_GRAVITY_FIELD_COEFFICIENT_IN_FILE("duplicated gravity field coefficient {0}({1}, {2}) in file {3}"),
185 
186     /** MISSING_GRAVITY_FIELD_COEFFICIENT_IN_FILE. */
187     MISSING_GRAVITY_FIELD_COEFFICIENT_IN_FILE("missing gravity field coefficient {0}({1}, {2}) in file {3}"),
188 
189     /** TOO_LARGE_DEGREE_FOR_GRAVITY_FIELD. */
190     TOO_LARGE_DEGREE_FOR_GRAVITY_FIELD("too large degree (n = {0}, potential maximal degree is {1})"),
191 
192     /** TOO_LARGE_ORDER_FOR_GRAVITY_FIELD. */
193     TOO_LARGE_ORDER_FOR_GRAVITY_FIELD("too large order (m = {0}, potential maximal order is {1})"),
194 
195     /** WRONG_DEGREE_OR_ORDER. */
196     WRONG_DEGREE_OR_ORDER("no term ({0}, {1}) in a {2}x{3} spherical harmonics decomposition"),
197 
198     /** SEVERAL_REFERENCE_DATES_IN_GRAVITY_FIELD. */
199     SEVERAL_REFERENCE_DATES_IN_GRAVITY_FIELD("several reference dates ({0} and {1} differ by {3,number,0.0##############E0} s) found in gravity field file {2}"),
200 
201     /** NO_TLE_FOR_OBJECT. */
202     NO_TLE_FOR_OBJECT("no TLE data available for object {0}"),
203 
204     /** NO_TLE_FOR_LAUNCH_YEAR_NUMBER_PIECE. */
205     NO_TLE_FOR_LAUNCH_YEAR_NUMBER_PIECE("no TLE data available for launch year {0}, launch number {1}, launch piece {2}"),
206 
207     /** NOT_TLE_LINES. */
208     NOT_TLE_LINES("lines {0} and {1} are not TLE lines:\n{0}: \"{2}\"\n{1}: \"{3}\""),
209 
210     /** MISSING_SECOND_TLE_LINE. */
211     MISSING_SECOND_TLE_LINE("expected a second TLE line after line {0}:\n{0}: \"{1}\""),
212 
213     /** TLE_LINES_DO_NOT_REFER_TO_SAME_OBJECT. */
214     TLE_LINES_DO_NOT_REFER_TO_SAME_OBJECT("TLE lines do not refer to the same object:\n{0}\n{1}"),
215 
216     /** TLE_INVALID_PARAMETER. */
217     TLE_INVALID_PARAMETER("invalid TLE parameter for object {0}: {1} = {2}"),
218 
219     /** TLE_CHECKSUM_ERROR. */
220     TLE_CHECKSUM_ERROR("wrong checksum of TLE line {0}, expected {1} but got {2} ({3})"),
221 
222     /** NO_TLE_DATA_AVAILABLE. */
223     NO_TLE_DATA_AVAILABLE("no TLE data available"),
224 
225     /** NOT_POSITIVE_SPACECRAFT_MASS. */
226     NOT_POSITIVE_SPACECRAFT_MASS("spacecraft mass is not positive: {0} kg"),
227 
228     /** TOO_LARGE_ECCENTRICITY_FOR_PROPAGATION_MODEL. */
229     TOO_LARGE_ECCENTRICITY_FOR_PROPAGATION_MODEL("too large eccentricity for propagation model: e = {0}"),
230 
231     /** NO_SOLAR_ACTIVITY_AT_DATE. */
232     NO_SOLAR_ACTIVITY_AT_DATE("no solar activity available at {0}, data available only in range [{1}, {2}]"),
233 
234     /** NON_EXISTENT_MONTH. */
235     NON_EXISTENT_MONTH("non-existent month {0}"),
236 
237     /** NON_EXISTENT_YEAR_MONTH_DAY. */
238     NON_EXISTENT_YEAR_MONTH_DAY("non-existent date {0}-{1}-{2}"),
239 
240     /** NON_EXISTENT_WEEK_DATE. */
241     NON_EXISTENT_WEEK_DATE("non-existent week date {0}-W{1}-{2}"),
242 
243     /** NON_EXISTENT_DATE. */
244     NON_EXISTENT_DATE("non-existent date {0}"),
245 
246     /** NON_EXISTENT_DAY_NUMBER_IN_YEAR. */
247     NON_EXISTENT_DAY_NUMBER_IN_YEAR("no day number {0} in year {1}"),
248 
249     /** NON_EXISTENT_HMS_TIME. */
250     NON_EXISTENT_HMS_TIME("non-existent time {0}:{1}:{2}"),
251 
252     /** NON_EXISTENT_TIME. */
253     NON_EXISTENT_TIME("non-existent time {0}"),
254 
255     /** OUT_OF_RANGE_SECONDS_NUMBER. */
256     OUT_OF_RANGE_SECONDS_NUMBER("out of range seconds number: {0}"),
257 
258     /** OUT_OF_RANGE_SECONDS_NUMBER_DETAIL. */
259     OUT_OF_RANGE_SECONDS_NUMBER_DETAIL("out of range seconds number: {0} is not in [{1}, {2}]"),
260 
261     /** ANGLE_TYPE_NOT_SUPPORTED. */
262     ANGLE_TYPE_NOT_SUPPORTED("angle type not supported, supported angles: {0}, {1} and {2}"),
263 
264     /** SATELLITE_COLLIDED_WITH_TARGET. */
265     SATELLITE_COLLIDED_WITH_TARGET("satellite collided with target"),
266 
267     /** ATTITUDE_POINTING_LAW_DOES_NOT_POINT_TO_GROUND. */
268     ATTITUDE_POINTING_LAW_DOES_NOT_POINT_TO_GROUND("attitude pointing law misses ground"),
269 
270     /** TOO_SHORT_TRANSITION_TIME_FOR_ATTITUDES_SWITCH. */
271     TOO_SHORT_TRANSITION_TIME_FOR_ATTITUDES_SWITCH("{0} seconds transition time for attitudes switch is too short, should be longer than {1} seconds"),
272 
273     /** ORBIT_AND_ATTITUDE_DATES_MISMATCH. */
274     ORBIT_AND_ATTITUDE_DATES_MISMATCH("orbit date ({0}) does not match attitude date ({1})"),
275 
276     /** FRAMES_MISMATCH. */
277     FRAMES_MISMATCH("frame {0} does not match frame {1}"),
278 
279     /** INITIAL_STATE_NOT_SPECIFIED_FOR_ORBIT_PROPAGATION. */
280     INITIAL_STATE_NOT_SPECIFIED_FOR_ORBIT_PROPAGATION("initial state not specified for orbit propagation"),
281 
282     /** EVENT_DATE_TOO_CLOSE. */
283     EVENT_DATE_TOO_CLOSE("target event date must be before {1} by {3,number,0.0##############E0} seconds or after {2} by {3,number,0.0##############E0} seconds, but target event date {0} is {4,number,0.0##############E0} seconds before {1} and {5,number,0.0##############E0} seconds after {2} so it cannot be added"),
284 
285     /** UNABLE_TO_READ_JPL_HEADER. */
286     UNABLE_TO_READ_JPL_HEADER("unable to read header record from JPL ephemerides binary file {0}"),
287 
288     /** INCONSISTENT_ASTRONOMICAL_UNIT_IN_FILES. */
289     INCONSISTENT_ASTRONOMICAL_UNIT_IN_FILES("inconsistent values of astronomical unit in JPL ephemerides files: ({0} and {1})"),
290 
291     /** INCONSISTENT_EARTH_MOON_RATIO_IN_FILES. */
292     INCONSISTENT_EARTH_MOON_RATIO_IN_FILES("inconsistent values of Earth/Moon mass ratio in JPL ephemerides files: ({0} and {1})"),
293 
294     /** NO_DATA_LOADED_FOR_CELESTIAL_BODY. */
295     NO_DATA_LOADED_FOR_CELESTIAL_BODY("no data loaded for celestial body {0}"),
296 
297     /** NOT_A_JPL_EPHEMERIDES_BINARY_FILE. */
298     NOT_A_JPL_EPHEMERIDES_BINARY_FILE("file {0} is not a JPL ephemerides binary file"),
299 
300     /** NOT_A_MARSHALL_SOLAR_ACTIVITY_FUTURE_ESTIMATION_FILE. */
301     NOT_A_MARSHALL_SOLAR_ACTIVITY_FUTURE_ESTIMATION_FILE("file {0} is not a Marshall Solar Activity Future Estimation (MSAFE) file"),
302 
303     /** NO_JPL_EPHEMERIDES_BINARY_FILES_FOUND. */
304     NO_JPL_EPHEMERIDES_BINARY_FILES_FOUND("no JPL ephemerides binary files found"),
305 
306     /** OUT_OF_RANGE_BODY_EPHEMERIDES_DATE. */
307     OUT_OF_RANGE_BODY_EPHEMERIDES_DATE("out of range date for {0} ephemerides: {1}"),
308 
309     /** OUT_OF_RANGE_DATE. */
310     OUT_OF_RANGE_DATE("out of range date: {0}, [{1}, {2}]"),
311 
312     /** OUT_OF_RANGE_EPHEMERIDES_DATE_BEFORE. */
313     OUT_OF_RANGE_EPHEMERIDES_DATE_BEFORE("out of range date for ephemerides: {0} is {3,number,0.0##############E0} s before [{1}, {2}]"),
314 
315     /** OUT_OF_RANGE_EPHEMERIDES_DATE_AFTER. */
316     OUT_OF_RANGE_EPHEMERIDES_DATE_AFTER("out of range date for ephemerides: {0} is {3,number,0.0##############E0} s after [{1}, {2}]"),
317 
318     /** UNEXPECTED_TWO_ELEVATION_VALUES_FOR_ONE_AZIMUTH. */
319     UNEXPECTED_TWO_ELEVATION_VALUES_FOR_ONE_AZIMUTH("unexpected two elevation values: {0} and {1}, for one azimuth: {2}"),
320 
321     /** UNSUPPORTED_PARAMETER_NAME. */
322     UNSUPPORTED_PARAMETER_NAME("unsupported parameter name {0}, supported names: {1}"),
323 
324     /** PARAMETER_WITH_SEVERAL_ESTIMATED_VALUES. */
325     PARAMETER_WITH_SEVERAL_ESTIMATED_VALUES("{0} parameter contains several span in its value TimeSpanMap, the {1} method must be called"),
326 
327     /** PARAMETER_PERIODS_HAS_ALREADY_BEEN_SET. */
328     PARAMETER_PERIODS_HAS_ALREADY_BEEN_SET("setPeriod was already called once on {0} parameter, another parameter should be created if the periods have to be changed"),
329 
330     /** TOO_SMALL_SCALE_FOR_PARAMETER. */
331     TOO_SMALL_SCALE_FOR_PARAMETER("scale factor for parameter {0} is too small: {1}"),
332 
333     /** UNKNOWN_ADDITIONAL_STATE. */
334     UNKNOWN_ADDITIONAL_STATE("unknown additional state \"{0}\""),
335 
336     /** UNKNOWN_MONTH. */
337     UNKNOWN_MONTH("unknown month \"{0}\""),
338 
339     /** SINGULAR_JACOBIAN_FOR_ORBIT_TYPE. */
340     SINGULAR_JACOBIAN_FOR_ORBIT_TYPE("Jacobian matrix for type {0} is singular with current orbit"),
341 
342     /** STATE_JACOBIAN_NOT_INITIALIZED. */
343     STATE_JACOBIAN_NOT_INITIALIZED("state Jacobian has not been initialized yet"),
344 
345     /** STATE_JACOBIAN_NOT_6X6. */
346     STATE_JACOBIAN_NOT_6X6("state Jacobian is a {0}x{1} matrix, it should be a 6x6 matrix"),
347 
348     /** STATE_AND_PARAMETERS_JACOBIANS_ROWS_MISMATCH. */
349     STATE_AND_PARAMETERS_JACOBIANS_ROWS_MISMATCH("state Jacobian has {0} rows but parameters Jacobian has {1} rows"),
350 
351     /** INITIAL_MATRIX_AND_PARAMETERS_NUMBER_MISMATCH. */
352     INITIAL_MATRIX_AND_PARAMETERS_NUMBER_MISMATCH("initial Jacobian matrix has {0} columns, but {1} parameters have been selected"),
353 
354     /** ORBIT_A_E_MISMATCH_WITH_CONIC_TYPE. */
355     ORBIT_A_E_MISMATCH_WITH_CONIC_TYPE("orbit should be either elliptic with a > 0 and e < 1 or hyperbolic with a < 0 and e > 1, a = {0}, e = {1}"),
356 
357     /** ORBIT_ANOMALY_OUT_OF_HYPERBOLIC_RANGE. */
358     ORBIT_ANOMALY_OUT_OF_HYPERBOLIC_RANGE("true anomaly {0} out of hyperbolic range (e = {1}, {2} < v < {3})"),
359 
360     /** HYPERBOLIC_ORBIT_NOT_HANDLED_AS. */
361     HYPERBOLIC_ORBIT_NOT_HANDLED_AS("hyperbolic orbits cannot be handled as {0} instances"),
362 
363     /** CCSDS_DATE_INVALID_PREAMBLE_FIELD. */
364     CCSDS_DATE_INVALID_PREAMBLE_FIELD("invalid preamble field in CCSDS date: {0}"),
365 
366     /** CCSDS_DATE_INVALID_LENGTH_TIME_FIELD. */
367     CCSDS_DATE_INVALID_LENGTH_TIME_FIELD("invalid time field length in CCSDS date: {0}, expected {1}"),
368 
369     /** CCSDS_DATE_MISSING_AGENCY_EPOCH. */
370     CCSDS_DATE_MISSING_AGENCY_EPOCH("missing agency epoch in CCSDS date"),
371 
372     /** CCSDS_MISSING_KEYWORD. */
373     CCSDS_MISSING_KEYWORD("missing mandatory key {0} in CCSDS file {1}"),
374 
375     /** CCSDS_KEYWORD_NOT_ALLOWED_IN_VERSION. */
376     CCSDS_KEYWORD_NOT_ALLOWED_IN_VERSION("key {0} is not allowed in format version {1}"),
377 
378     /** CCSDS_UNEXPECTED_KEYWORD. */
379     CCSDS_UNEXPECTED_KEYWORD("unexpected keyword in CCSDS line number {0} of file {1}:\n{2}"),
380 
381     /** CCSDS_UNKNOWN_GM. */
382     CCSDS_UNKNOWN_GM("the central body gravitational coefficient cannot be retrieved from the ODM"),
383 
384     /** CCSDS_UNKNOWN_SPACECRAFT_MASS. */
385     CCSDS_UNKNOWN_SPACECRAFT_MASS("there is no spacecraft mass associated with this ODM file"),
386 
387     /** CCSDS_UNKNOWN_CONVENTIONS. */
388     CCSDS_UNKNOWN_CONVENTIONS("no IERS conventions have been set before parsing"),
389 
390     /** CCSDS_INVALID_FRAME. */
391     CCSDS_INVALID_FRAME("frame {0} is not valid in this CCSDS file context"),
392 
393     /** CCSDS_DIFFERENT_LVLH_DEFINITION. */
394     CCSDS_DIFFERENT_LVLH_DEFINITION("this LVLH local orbital frame uses a different definition, please use LVLH_CCSDS instead"),
395 
396     /** CCSDS_INCONSISTENT_TIME_SYSTEMS. */
397     CCSDS_INCONSISTENT_TIME_SYSTEMS("inconsistent time systems: {0} ≠ {1}"),
398 
399     /** CCSDS_TIME_SYSTEM_NOT_IMPLEMENTED. */
400     CCSDS_TIME_SYSTEM_NOT_IMPLEMENTED("use of time system {0} in CCSDS files requires an additional ICD and is not implemented in Orekit"),
401 
402     /** CCSDS_TDM_KEYWORD_NOT_FOUND. */
403     CCSDS_TDM_KEYWORD_NOT_FOUND("No CCSDS TDM keyword was found at line {0} of file {1}:\n{2}"),
404 
405     /** CCSDS_TDM_MISSING_RANGE_UNITS_CONVERTER. */
406     CCSDS_TDM_MISSING_RANGE_UNITS_CONVERTER("no Range Units converter configured for parsing Tracking Data Message"),
407 
408     /** CCSDS_TIME_SYSTEM_NOT_READ_YET. */
409     CCSDS_TIME_SYSTEM_NOT_READ_YET("Time system should have already been set before line {0} of file {1}"),
410 
411     /** CCSDS_UNKNOWN_ATTITUDE_TYPE. */
412     CCSDS_UNKNOWN_ATTITUDE_TYPE("unknown attitude type {0}"),
413 
414     /** CCSDS_INCOMPLETE_DATA. */
415     CCSDS_INCOMPLETE_DATA("incomplete data"),
416 
417     /** CCSDS_INVALID_ROTATION_SEQUENCE. */
418     CCSDS_INVALID_ROTATION_SEQUENCE("invalid rotation sequence {0} at line {1} of file {2}"),
419 
420     /** CCSDS_UNSUPPORTED_ELEMENT_SET_TYPE. */
421     CCSDS_UNSUPPORTED_ELEMENT_SET_TYPE("element set type {0} ({1}) is not supported yet"),
422 
423     /** CCSDS_UNSUPPORTED_RETROGRADE_EQUINOCTIAL. */
424     CCSDS_UNSUPPORTED_RETROGRADE_EQUINOCTIAL("retrograde factor not supported in element set {0}"),
425 
426     /** CCSDS_MANEUVER_UNITS_WRONG_NB_COMPONENTS. */
427     CCSDS_MANEUVER_UNITS_WRONG_NB_COMPONENTS("wrong number of units for maneuver {0}"),
428 
429     /** CCSDS_MANEUVER_MISSING_TIME. */
430     CCSDS_MANEUVER_MISSING_TIME("missing time field for maneuver {0}"),
431 
432     /** CCSDS_INCONSISTENT_NUMBER_OF_ATTITUDE_STATES. */
433     CCSDS_INCONSISTENT_NUMBER_OF_ATTITUDE_STATES("attitude type {0} and rate type {1} calls for {2} states, got {3}"),
434 
435     /** CCSDS_INCOMPATIBLE_KEYS_BOTH_USED. */
436     CCSDS_INCOMPATIBLE_KEYS_BOTH_USED("incompatible keys {0} and {1} should not both be used"),
437 
438     /** CCSDS_SENSOR_INDEX_ALREADY_USED. */
439     CCSDS_SENSOR_INDEX_ALREADY_USED("sensor index {0} is already used"),
440 
441     /** CCSDS_MISSING_SENSOR_INDEX. */
442     CCSDS_MISSING_SENSOR_INDEX("missing sensor index {0}"),
443 
444     /** INCONSISTENT_NUMBER_OF_ELEMENTS. */
445     INCONSISTENT_NUMBER_OF_ELEMENTS("inconsistent number of elements: expected {0}, got {1}"),
446 
447     /** CANNOT_ESTIMATE_PRECESSION_WITHOUT_PROPER_DERIVATIVES. */
448     CANNOT_ESTIMATE_PRECESSION_WITHOUT_PROPER_DERIVATIVES("cannot estimate precession without proper derivatives"),
449 
450     /** ADDITIONAL_STATE_NAME_ALREADY_IN_USE. */
451     ADDITIONAL_STATE_NAME_ALREADY_IN_USE("name \"{0}\" is already used for an additional state"),
452 
453     /** NON_RESETABLE_STATE. */
454     NON_RESETABLE_STATE("reset state not allowed"),
455 
456     /** DSST_NEWCOMB_OPERATORS_COMPUTATION. */
457     DSST_NEWCOMB_OPERATORS_COMPUTATION("Cannot compute Newcomb operators for sigma > rho ({0} > {1})"),
458 
459     /** DSST_VMNS_COEFFICIENT_ERROR_MS. */
460     DSST_VMNS_COEFFICIENT_ERROR_MS("Cannot compute the Vmns coefficient with m > n ({0} > {1})"),
461 
462     /** DSST_SPR_SHADOW_INCONSISTENT. */
463     DSST_SPR_SHADOW_INCONSISTENT("inconsistent shadow computation: entry = {0} whereas exit = {1}"),
464 
465     /** DSST_ECC_NO_NUMERICAL_AVERAGING_METHOD. */
466     DSST_ECC_NO_NUMERICAL_AVERAGING_METHOD("The current orbit has an eccentricity ({0} > 0.5). DSST needs an unimplemented time dependent numerical method to compute the averaged rates"),
467 
468     /** SP3_UNSUPPORTED_VERSION. */
469     SP3_UNSUPPORTED_VERSION("unsupported sp3 file version \"{0}\""),
470 
471     /** SP3_INVALID_HEADER_ENTRY. */
472     SP3_INVALID_HEADER_ENTRY("invalid header entry {0} \"{1}\" in file {2} (format version {3})"),
473 
474     /** SP3_TOO_MANY_SATELLITES_FOR_VERSION. */
475     SP3_TOO_MANY_SATELLITES_FOR_VERSION("version \"{0}\" supports only up to {1} satellites, found {2} in file {3}"),
476 
477     /** SP3_NUMBER_OF_EPOCH_MISMATCH. */
478     SP3_NUMBER_OF_EPOCH_MISMATCH("found {0} epochs in file {1}, expected {2}"),
479 
480     /** SP3_INCOMPATIBLE_FILE_METADATA. */
481     SP3_INCOMPATIBLE_FILE_METADATA("cannot splice sp3 files with incompatible metadata"),
482 
483     /** SP3_INCOMPATIBLE_SATELLITE_MEDATADA. */
484     SP3_INCOMPATIBLE_SATELLITE_MEDATADA("cannot splice sp3 files with incompatible satellite metadata for satellite {0}"),
485 
486     /** FRAME_NOT_ALLOWED.
487      * @since 12.1
488      */
489     FRAME_NOT_ALLOWED("frame {0} not allowed here"),
490 
491     /** STK_INVALID_OR_UNSUPPORTED_COORDINATE_SYSTEM. */
492     STK_INVALID_OR_UNSUPPORTED_COORDINATE_SYSTEM("STK coordinate system \"{0}\" is invalid or not yet supported"),
493 
494     /** STK_UNMAPPED_COORDINATE_SYSTEM. */
495     STK_UNMAPPED_COORDINATE_SYSTEM("STK coordinate system \"{0}\" has not been mapped to an Orekit frame"),
496 
497     /** STK_UNEXPECTED_END_OF_FILE. */
498     STK_UNEXPECTED_END_OF_FILE("unexpected end of STK file (after line {0})"),
499 
500     /** CLOCK_FILE_UNSUPPORTED_VERSION. */
501     CLOCK_FILE_UNSUPPORTED_VERSION("unsupported clock file version {0}"),
502 
503     /** UNSUPPORTED_FILE_FORMAT_VERSION. */
504     UNSUPPORTED_FILE_FORMAT_VERSION("version {0} from file {1} is not supported, supported version: {2}"),
505 
506     /** NON_EXISTENT_GEOMAGNETIC_MODEL. */
507     NON_EXISTENT_GEOMAGNETIC_MODEL("non-existent geomagnetic model {0} for year {1}"),
508 
509     /** UNSUPPORTED_TIME_TRANSFORM. */
510     UNSUPPORTED_TIME_TRANSFORM("geomagnetic model {0} with epoch {1} does not support time transformation, no secular variation coefficients defined"),
511 
512     /** OUT_OF_RANGE_TIME_TRANSFORM. */
513     OUT_OF_RANGE_TIME_TRANSFORM("time transformation of geomagnetic model {0} with epoch {1} is outside its validity range: {2} != [{3}, {4}]"),
514 
515     /** NOT_ENOUGH_DATA. */
516     NOT_ENOUGH_DATA("not enough data (sample size = {0})"),
517 
518     /** NOT_ENOUGH_CACHED_NEIGHBORS. */
519     NOT_ENOUGH_CACHED_NEIGHBORS("too small number of cached neighbors: {0} (must be at least {1})"),
520 
521     /** NO_CACHED_ENTRIES. */
522     NO_CACHED_ENTRIES("no cached entries"),
523 
524     /** NON_CHRONOLOGICALLY_SORTED_ENTRIES. */
525     NON_CHRONOLOGICALLY_SORTED_ENTRIES("generated entries not sorted: {0} > {1} by {2,number,0.0##############E0} s"),
526 
527     /** NO_DATA_GENERATED. */
528     NO_DATA_GENERATED("no data generated around date: {0}"),
529 
530     /** UNABLE_TO_GENERATE_NEW_DATA_BEFORE. */
531     UNABLE_TO_GENERATE_NEW_DATA_BEFORE("unable to generate new data before {0}, but data is requested for {1} which is {2,number,0.0##############E0} s before"),
532 
533     /** UNABLE_TO_GENERATE_NEW_DATA_AFTER. */
534     UNABLE_TO_GENERATE_NEW_DATA_AFTER("unable to generate new data after {0}, but data is requested for {1} which is {2,number,0.0##############E0} s after"),
535 
536     /** UNABLE_TO_COMPUTE_HYPERBOLIC_ECCENTRIC_ANOMALY. */
537     UNABLE_TO_COMPUTE_HYPERBOLIC_ECCENTRIC_ANOMALY("unable to compute hyperbolic eccentric anomaly from the mean anomaly after {0} iterations"),
538 
539     /** UNABLE_TO_COMPUTE_ECCENTRIC_LONGITUDE_ARGUMENT. */
540     UNABLE_TO_COMPUTE_ECCENTRIC_LONGITUDE_ARGUMENT("unable to compute eccentric longitude argument from the mean one after {0} iterations"),
541 
542     /** UNABLE_TO_COMPUTE_ECCENTRIC_LATITUDE_ARGUMENT. */
543     UNABLE_TO_COMPUTE_ECCENTRIC_LATITUDE_ARGUMENT("unable to compute eccentric latitude argument from the mean one after {0} iterations"),
544 
545     /** UNABLE_TO_COMPUTE_DSST_MEAN_PARAMETERS. */
546     UNABLE_TO_COMPUTE_DSST_MEAN_PARAMETERS("unable to compute mean orbit from osculating orbit after {0} iterations"),
547 
548     /** OUT_OF_RANGE_DERIVATION_ORDER. */
549     OUT_OF_RANGE_DERIVATION_ORDER("derivation order {0} is out of range"),
550 
551     /** ORBIT_TYPE_NOT_ALLOWED. */
552     ORBIT_TYPE_NOT_ALLOWED("orbit type {0} not allowed here, allowed types: {1}"),
553 
554     /** NON_PSEUDO_INERTIAL_FRAME_NOT_SUITABLE_AS_REFERENCE_FOR_INERTIAL_FORCES. */
555     NON_PSEUDO_INERTIAL_FRAME_NOT_SUITABLE_AS_REFERENCE_FOR_INERTIAL_FORCES("non pseudo-inertial frame {0} is not suitable as reference for inertial forces"),
556 
557     /** METHOD_NOT_AVAILABLE_WITHOUT_CENTRAL_BODY. */
558     METHOD_NOT_AVAILABLE_WITHOUT_CENTRAL_BODY("method not available in the absence of a central body"),
559 
560     /** INCOMPATIBLE_FRAMES. */
561     INCOMPATIBLE_FRAMES("operation not available between frames {0} and {1}"),
562 
563     /** UNDEFINED_ORBIT. */
564     UNDEFINED_ORBIT("orbit not defined, state rather contains an absolute position-velocity-acceleration"),
565 
566     /** UNDEFINED_ABSOLUTE_PVCOORDINATES. */
567     UNDEFINED_ABSOLUTE_PVCOORDINATES("absolute position-velocity-acceleration not defined, state rather contains an orbit"),
568 
569     /** INERTIAL_FORCE_MODEL_MISSING. */
570     INERTIAL_FORCE_MODEL_MISSING("an inertial force model has to be used when propagating in non-inertial frame {0}"),
571 
572     /** NO_SEM_ALMANAC_AVAILABLE. */
573     NO_SEM_ALMANAC_AVAILABLE("no SEM almanac file found"),
574 
575     /** NOT_A_SUPPORTED_SEM_ALMANAC_FILE. */
576     NOT_A_SUPPORTED_SEM_ALMANAC_FILE("file {0} is not a supported SEM almanac file"),
577 
578     /** NO_YUMA_ALMANAC_AVAILABLE. */
579     NO_YUMA_ALMANAC_AVAILABLE("no Yuma almanac file found"),
580 
581     /** NOT_A_SUPPORTED_YUMA_ALMANAC_FILE. */
582     NOT_A_SUPPORTED_YUMA_ALMANAC_FILE("file {0} is not a supported Yuma almanac file"),
583 
584     /** NOT_ENOUGH_GNSS_FOR_DOP. */
585     NOT_ENOUGH_GNSS_FOR_DOP("only {0} GNSS orbits are provided while {1} are needed to compute the DOP"),
586 
587     /** NOT_ENOUGH_PROPAGATORS. */
588     NOT_ENOUGH_PROPAGATORS("Creating an aggregate propagator requires at least one constituent propagator, but none were provided."),
589 
590     /** NOT_ENOUGH_ATTITUDE_PROVIDERS. */
591     NOT_ENOUGH_ATTITUDE_PROVIDERS("Creating an aggregate attitude provider requires at least one constituent attitude provider, but none were provided."),
592 
593     /** NULL_ARGUMENT. */
594     NULL_ARGUMENT("argument {0} cannot be null"),
595 
596     /** VALUE_NOT_FOUND. */
597     VALUE_NOT_FOUND("value {0} not found in {1}"),
598 
599     /** KLOBUCHAR_ALPHA_BETA_NOT_LOADED. */
600     KLOBUCHAR_ALPHA_BETA_NOT_LOADED("Klobuchar coefficients α or β could not be loaded from {0}"),
601 
602     /** KLOBUCHAR_ALPHA_BETA_NOT_AVAILABLE_FOR_DATE. */
603     KLOBUCHAR_ALPHA_BETA_NOT_AVAILABLE_FOR_DATE("Klobuchar coefficients α or β not available for date {0}"),
604 
605     /** NO_KLOBUCHAR_ALPHA_BETA_IN_FILE. */
606     NO_KLOBUCHAR_ALPHA_BETA_IN_FILE("file {0} does not contain Klobuchar coefficients α or β"),
607 
608     /** NO_REFERENCE_DATE_FOR_PARAMETER. */
609     NO_REFERENCE_DATE_FOR_PARAMETER("no reference date set for parameter {0}"),
610 
611     /** STATION_NOT_FOUND. */
612     STATION_NOT_FOUND("station {0} not found, known stations: {1}"),
613 
614     /** UNKNOWN_SATELLITE_SYSTEM. */
615     UNKNOWN_SATELLITE_SYSTEM("unknown satellite system {0}"),
616 
617     /** UNKNOWN_TIME_SYSTEM. */
618     UNKNOWN_TIME_SYSTEM("unknown time system {0}"),
619 
620     /** UNKNOWN_UTC_ID. */
621     UNKNOWN_UTC_ID("unknown UTC Id {0}"),
622 
623     /** UNKNOWN_CLOCK_DATA_TYPE. */
624     UNKNOWN_CLOCK_DATA_TYPE("unknown clock data type {0}"),
625 
626     /** UNKNOWN_SATELLITE_ANTENNA_CODE. */
627     UNKNOWN_SATELLITE_ANTENNA_CODE("unknown satellite antenna code {0}"),
628 
629     /** UNSUPPORTED_FREQUENCY_FOR_ANTENNA. */
630     UNSUPPORTED_FREQUENCY_FOR_ANTENNA("frequency {0} is not supported by antenna {1}"),
631 
632     /** CANNOT_FIND_SATELLITE_IN_SYSTEM. */
633     CANNOT_FIND_SATELLITE_IN_SYSTEM("cannot find satellite {0} in satellite system {1}"),
634 
635     /** UNKNOWN_RINEX_FREQUENCY. */
636     UNKNOWN_RINEX_FREQUENCY("unknown RINEX frequency {0} in file {1}, line {2}"),
637 
638     /** MISMATCHED_FREQUENCIES. */
639     MISMATCHED_FREQUENCIES("mismatched frequencies in file {0}, line {1} (expected {2}, got {3})"),
640 
641     /** WRONG_PARSING_TYPE. */
642     WRONG_PARSING_TYPE("wrong parsing type for file {0}"),
643 
644     /** WRONG_COLUMNS_NUMBER. */
645     WRONG_COLUMNS_NUMBER("wrong number of columns in file {0}, line {1} (expected {2} columns, got {3} columns)"),
646 
647     /** UNSUPPORTED_FILE_FORMAT. */
648     UNSUPPORTED_FILE_FORMAT("unsupported format for file {0}"),
649 
650     /** INCOMPLETE_HEADER. */
651     INCOMPLETE_HEADER("incomplete header in file {0}"),
652 
653     /** INCONSISTENT_NUMBER_OF_SATS. */
654     INCONSISTENT_NUMBER_OF_SATS("inconsistent number of satellites in line {0}, file {1}: observation with {2} satellites and number of max satellites is {3}"),
655 
656     /** INCONSISTENT_SATELLITE_SYSTEM. */
657     INCONSISTENT_SATELLITE_SYSTEM("the satellite system {3} from line {0}, file {1} is not consistent with the Rinex Satellite System {2} in header"),
658 
659     /** NO_PROPAGATOR_CONFIGURED. */
660     NO_PROPAGATOR_CONFIGURED("no propagator configured"),
661 
662     /** DIMENSION_INCONSISTENT_WITH_PARAMETERS. */
663     DIMENSION_INCONSISTENT_WITH_PARAMETERS("dimension {0} is inconsistent with parameters list: {1}"),
664 
665     /** NOT_A_SUPPORTED_UNIX_COMPRESSED_FILE. */
666     NOT_A_SUPPORTED_UNIX_COMPRESSED_FILE("file {0} is not a supported Unix-compressed file"),
667 
668     /** UNEXPECTED_END_OF_FILE. */
669     UNEXPECTED_END_OF_FILE("unexpected end of file {0}"),
670 
671     /** CORRUPTED_FILE. */
672     CORRUPTED_FILE("file {0} is corrupted"),
673 
674     /** VIENNA_ACOEF_OR_ZENITH_DELAY_NOT_LOADED. */
675     VIENNA_ACOEF_OR_ZENITH_DELAY_NOT_LOADED("Vienna coefficients ah or aw or zh or zw could not be loaded from {0}"),
676 
677     /** VIENNA_ACOEF_OR_ZENITH_DELAY_NOT_AVAILABLE_FOR_DATE. */
678     VIENNA_ACOEF_OR_ZENITH_DELAY_NOT_AVAILABLE_FOR_DATE("Vienna coefficients ah or aw or zh or zw not available for date {0}"),
679 
680     /** NO_VIENNA_ACOEF_OR_ZENITH_DELAY_IN_FILE. */
681     NO_VIENNA_ACOEF_OR_ZENITH_DELAY_IN_FILE("file {0} does not contain Vienna coefficients ah, aw, zh or zw"),
682 
683     /** IRREGULAR_OR_INCOMPLETE_GRID. */
684     IRREGULAR_OR_INCOMPLETE_GRID("irregular or incomplete grid in file {0}"),
685 
686     /** INVALID_SATELLITE_SYSTEM. */
687     INVALID_SATELLITE_SYSTEM("invalid satellite system {0}"),
688 
689     /** NO_TEC_DATA_IN_FILES_FOR_DATE. */
690     NO_TEC_DATA_IN_FILES_FOR_DATE("IONEX files {0} does not contain TEC data for date {1}"),
691 
692     /** INCONSISTENT_NUMBER_OF_TEC_MAPS_IN_FILE. */
693     INCONSISTENT_NUMBER_OF_TEC_MAPS_IN_FILE("number of maps {0} is inconsistent with header specification: {1}"),
694 
695     /** NO_LATITUDE_LONGITUDE_BONDARIES_IN_IONEX_HEADER. */
696     NO_LATITUDE_LONGITUDE_BONDARIES_IN_IONEX_HEADER("file {0} does not contain latitude or longitude bondaries in its header section"),
697 
698     /** NO_EPOCH_IN_IONEX_HEADER. */
699     NO_EPOCH_IN_IONEX_HEADER("file {0} does not contain epoch of first or last map in its header section"),
700 
701     /** ITRF_VERSIONS_PREFIX_ONLY. */
702     ITRF_VERSIONS_PREFIX_ONLY("The first column of itrf-versions.conf is a plain prefix that is matched against the name of each loaded file. It should not contain any regular expression syntax or directory components, i.e. \"/\" or \"\\\". Actual value: \"{0}\"."),
703 
704     /** CANNOT_COMPUTE_AIMING_AT_SINGULAR_POINT. */
705     CANNOT_COMPUTE_AIMING_AT_SINGULAR_POINT("cannot compute aiming direction at singular point: latitude = {0}, longitude = {1}"),
706 
707     /** STEC_INTEGRATION_DID_NOT_CONVERGE. */
708     STEC_INTEGRATION_DID_NOT_CONVERGE("STEC integration did not converge"),
709 
710     /** MODIP_GRID_NOT_LOADED. */
711     MODIP_GRID_NOT_LOADED("MODIP grid not be loaded from {0}"),
712 
713     /** NEQUICK_F2_FM3_NOT_LOADED. */
714     NEQUICK_F2_FM3_NOT_LOADED("NeQuick coefficient f2 or fm3 not be loaded from {0}"),
715 
716     /** NOT_A_SUPPORTED_HATANAKA_COMPRESSED_FILE. */
717     NOT_A_SUPPORTED_HATANAKA_COMPRESSED_FILE("file {0} is not a supported Hatanaka-compressed file"),
718 
719     /** CANNOT_COMPUTE_LAGRANGIAN. */
720     CANNOT_COMPUTE_LAGRANGIAN("Cannot compute around {0}"),
721 
722     /** TRAJECTORY_NOT_CROSSING_XZPLANE. */
723     TRAJECTORY_NOT_CROSSING_XZPLANE("The trajectory does not cross XZ Plane, it will not result in a Halo Orbit"),
724 
725     /** MULTIPLE_SHOOTING_UNDERCONSTRAINED. */
726     MULTIPLE_SHOOTING_UNDERCONSTRAINED("The multiple shooting problem is underconstrained : {0} free variables, {1} constraints"),
727 
728     /** INVALID_MEASUREMENT_TYPES_FOR_COMBINATION_OF_MEASUREMENTS. */
729     INVALID_MEASUREMENT_TYPES_FOR_COMBINATION_OF_MEASUREMENTS("invalid measurement types {0} and {1} for the combination of measurements {2}"),
730 
731     /** INCOMPATIBLE_FREQUENCIES_FOR_COMBINATION_OF_MEASUREMENTS. */
732     INCOMPATIBLE_FREQUENCIES_FOR_COMBINATION_OF_MEASUREMENTS("frequencies {0} and {1} are incompatibles for the {2} combination"),
733 
734     /** NON_CHRONOLOGICAL_DATES_FOR_OBSERVATIONS. */
735     NON_CHRONOLOGICAL_DATES_FOR_OBSERVATIONS("observations are not in chronological order: {0} is {2,number,0.0##############E0} s after {1}"),
736 
737     /** INCONSISTENT_SAMPLING_DATE. */
738     INCONSISTENT_SAMPLING_DATE("inconsistent sampling date: expected {0} but got {1}"),
739 
740     /** EXCEPTIONAL_DATA_CONTEXT. */
741     EXCEPTIONAL_DATA_CONTEXT("Use of the ExceptionalDataContext detected. This is typically used to detect developer errors."),
742 
743     /** NON_DIFFERENT_DATES_FOR_OBSERVATIONS. */
744     NON_DIFFERENT_DATES_FOR_OBSERVATIONS("Observations must have different dates: {0}, {1} ({3,number,0.0##############E0} s from first observation), and {2} ({4,number,0.0##############E0} s from first observation, {5,number,0.0##############E0} s from second observation)"),
745 
746     /** NON_COPLANAR_POINTS. */
747     NON_COPLANAR_POINTS("observations are not in the same plane"),
748 
749     /** INVALID_PARAMETER_RANGE. */
750     INVALID_PARAMETER_RANGE("invalid parameter {0}: {1} not in range [{2}, {3}]"),
751 
752     /** PARAMETER_NOT_SET. */
753     PARAMETER_NOT_SET("The parameter {0} should not be null in {1}"),
754 
755     /** FUNCTION_NOT_IMPLEMENTED. */
756     FUNCTION_NOT_IMPLEMENTED("{0} is not implemented"),
757 
758     /** INVALID_TYPE_FOR_FUNCTION. */
759     INVALID_TYPE_FOR_FUNCTION("Impossible to execute {0} with {1} set to {2}"),
760 
761     /** NO_DATA_IN_FILE. */
762     NO_DATA_IN_FILE("No data could be parsed from file {0}"),
763 
764     /** CPF_UNEXPECTED_END_OF_FILE. */
765     CPF_UNEXPECTED_END_OF_FILE("Unexpected end of CPF file (after line {0})"),
766 
767     /** UNEXPECTED_FORMAT_FOR_ILRS_FILE. */
768     UNEXPECTED_FORMAT_FOR_ILRS_FILE("Unexpected file format. Must be {0} but is {1}"),
769 
770     /** CRD_UNEXPECTED_END_OF_FILE. */
771     CRD_UNEXPECTED_END_OF_FILE("Unexpected end of CRD file (after line {0})"),
772 
773     /** INVALID_RANGE_INDICATOR_IN_CRD_FILE. */
774     INVALID_RANGE_INDICATOR_IN_CRD_FILE("Invalid range indicator {0} in CRD file header"),
775 
776     /** END_OF_ENCODED_MESSAGE. */
777     END_OF_ENCODED_MESSAGE("end of encoded message reached"),
778 
779     /** TOO_LARGE_DATA_TYPE. */
780     TOO_LARGE_DATA_TYPE("too large data type ({0} bits)"),
781 
782     /** UNKNOWN_ENCODED_MESSAGE_NUMBER. */
783     UNKNOWN_ENCODED_MESSAGE_NUMBER("unknown encoded message number {0}"),
784 
785     /** UNKNOWN_AUTHENTICATION_METHOD. */
786     UNKNOWN_AUTHENTICATION_METHOD("unknown authentication method: {0}"),
787 
788     /** UNKNOWN_CARRIER_PHASE_CODE. */
789     UNKNOWN_CARRIER_PHASE_CODE("unknown carrier phase code: {0}"),
790 
791     /** UNKNOWN_DATA_FORMAT. */
792     UNKNOWN_DATA_FORMAT("unknown data format: {0}"),
793 
794     /** UNKNOWN_NAVIGATION_SYSTEM. */
795     UNKNOWN_NAVIGATION_SYSTEM("unknown navigation system: {0}"),
796 
797     /** STREAM_REQUIRES_NMEA_FIX. */
798     STREAM_REQUIRES_NMEA_FIX("data stream {0} requires a NMEA fix data"),
799 
800     /** FAILED_AUTHENTICATION. */
801     FAILED_AUTHENTICATION("failed authentication for mountpoint {0}"),
802 
803     /** CONNECTION_ERROR. */
804     CONNECTION_ERROR("error connecting to {0}: {1}"),
805 
806     /** UNEXPECTED_CONTENT_TYPE. */
807     UNEXPECTED_CONTENT_TYPE("unexpected content type {0}"),
808 
809     /** CANNOT_PARSE_GNSS_DATA. */
810     CANNOT_PARSE_GNSS_DATA("cannot parse GNSS data from {0}"),
811 
812     /** INVALID_GNSS_DATA. */
813     INVALID_GNSS_DATA("invalid GNSS data: {0}"),
814 
815     /** GNSS_PARITY_ERROR. */
816     GNSS_PARITY_ERROR("GNSS parity error on word {0}"),
817 
818     /** UNKNOWN_HOST. */
819     UNKNOWN_HOST("unknown host {0}"),
820 
821     /** SOURCETABLE_PARSE_ERROR. */
822     SOURCETABLE_PARSE_ERROR("error parsing sourcetable line {0} from {1}: {2}"),
823 
824     /** CANNOT_PARSE_SOURCETABLE. */
825     CANNOT_PARSE_SOURCETABLE("cannot parse sourcetable from {0}"),
826 
827     /** MOUNPOINT_ALREADY_CONNECTED. */
828     MOUNPOINT_ALREADY_CONNECTED("mount point {0} is already connected"),
829 
830     /** MISSING_HEADER. */
831     MISSING_HEADER("missing header from {0}: {1}"),
832 
833     /** NOT_VALID_INTERNATIONAL_DESIGNATOR. */
834     NOT_VALID_INTERNATIONAL_DESIGNATOR("{0} is not a valid international designator"),
835 
836     /** UNINITIALIZED_VALUE_FOR_KEY. */
837     UNINITIALIZED_VALUE_FOR_KEY("value for key {0} has not been initialized"),
838 
839     /** UNKNOWN_UNIT. */
840     UNKNOWN_UNIT("unknown unit {0}"),
841 
842     /** INCOMPATIBLE_UNITS. */
843     INCOMPATIBLE_UNITS("units {0} and {1} are not compatible"),
844 
845     /** MISSING_VELOCITY. */
846     MISSING_VELOCITY("missing velocity data"),
847 
848     /** ATTEMPT_TO_GENERATE_MALFORMED_FILE. */
849     ATTEMPT_TO_GENERATE_MALFORMED_FILE("attempt to generate file {0} with a formatting error"),
850 
851     /** FIND_ROOT. */
852     FIND_ROOT("{0} failed to find root between {1} (g={2,number,0.0##############E0}) and {3} (g={4,number,0.0##############E0})\nLast iteration at {5} (g={6,number,0.0##############E0})"),
853 
854     /** MISSING_STATION_DATA_FOR_EPOCH. */
855     MISSING_STATION_DATA_FOR_EPOCH("missing station data for epoch {0}"),
856 
857     /** INCONSISTENT_SELECTION. */
858     INCONSISTENT_SELECTION("inconsistent parameters selection between pairs {0}/{1} and {2}/{3}"),
859 
860     /** NO_UNSCENTED_TRANSFORM_CONFIGURED. */
861     NO_UNSCENTED_TRANSFORM_CONFIGURED("no unscented transform configured"),
862 
863     /** NOT_STRICTLY_POSITIVE. */
864     NOT_STRICTLY_POSITIVE("value is not strictly positive: {0}"),
865 
866     /** UNSUPPORTED_TRANSFORM. */
867     UNSUPPORTED_TRANSFORM("transform from {0} to {1} is not implemented"),
868 
869     /** WRONG_ORBIT_PARAMETERS_TYPE. */
870     WRONG_ORBIT_PARAMETERS_TYPE("orbital parameters type: {0} is different from expected orbital type : {1}"),
871 
872     /** WRONG_NB_COMPONENTS. */
873     WRONG_NB_COMPONENTS("{0} expects {1} elements, got {2}"),
874 
875     /** CANNOT_CHANGE_COVARIANCE_TYPE_IF_DEFINED_IN_LOF. */
876     CANNOT_CHANGE_COVARIANCE_TYPE_IF_DEFINED_IN_LOF("cannot change covariance type if defined in a local orbital frame"),
877 
878     /** CANNOT_CHANGE_COVARIANCE_TYPE_IF_DEFINED_IN_NON_INERTIAL_FRAME. */
879     CANNOT_CHANGE_COVARIANCE_TYPE_IF_DEFINED_IN_NON_INERTIAL_FRAME("cannot change covariance type if defined in a non pseudo-inertial reference frame"),
880 
881     /** DIFFERENT_TIME_OF_CLOSEST_APPROACH. */
882     DIFFERENT_TIME_OF_CLOSEST_APPROACH("primary collision object time of closest approach is different from the secondary collision object's one"),
883 
884     /** DATES_MISMATCH. */
885     DATES_MISMATCH("first date {0} does not match second date {1}"),
886 
887     /** WRONG ELEMENTS FOR AVERAGING THEORY. */
888     WRONG_ELEMENTS_FOR_AVERAGING_THEORY("unexpected type of orbital elements for required averaging theory"),
889 
890     /** ORBITS_MUS_MISMATCH. */
891     ORBITS_MUS_MISMATCH("first orbit mu {0} does not match second orbit mu {1}"),
892 
893     /** DIFFERENT_STATE_DEFINITION. */
894     DIFFERENT_STATE_DEFINITION("one state is defined using an orbit while the other is defined using an absolute position-velocity-acceleration"),
895 
896     /** STATE_AND_COVARIANCE_DATES_MISMATCH. */
897     STATE_AND_COVARIANCE_DATES_MISMATCH("state date {0} does not match its covariance date {1}"),
898 
899     /** NO_INTERPOLATOR_FOR_STATE_DEFINITION. */
900     NO_INTERPOLATOR_FOR_STATE_DEFINITION("creating a spacecraft state interpolator requires at least one orbit interpolator or an absolute position-velocity-acceleration interpolator"),
901 
902     /** WRONG_INTERPOLATOR_DEFINED_FOR_STATE_INTERPOLATION. */
903     WRONG_INTERPOLATOR_DEFINED_FOR_STATE_INTERPOLATION("wrong interpolator defined for this spacecraft state type (orbit or absolute PV)"),
904 
905     /** MULTIPLE_INTERPOLATOR_USED. */
906     MULTIPLE_INTERPOLATOR_USED("multiple interpolators are used so they may use different numbers of interpolation points"),
907 
908     /** HEADER_NOT_WRITTEN. */
909     HEADER_NOT_WRITTEN("header for file {0} has not been written yet"),
910 
911     /** HEADER_ALREADY_WRITTEN. */
912     HEADER_ALREADY_WRITTEN("header for file {0} has already been written"),
913 
914     /** CANNOT_START_PROPAGATION_FROM_INFINITY. */
915     CANNOT_START_PROPAGATION_FROM_INFINITY("Cannot start the propagation from an infinitely far date"),
916 
917     /** TOO_LONG_TIME_GAP_BETWEEN_DATA_POINTS. */
918     TOO_LONG_TIME_GAP_BETWEEN_DATA_POINTS("Too long time gap between data points: {0} s"),
919 
920     /** INVALID_SATELLITE_ID. */
921     INVALID_SATELLITE_ID("invalid satellite id {0}"),
922 
923     /** WRONG_EOP_INTERPOLATION_DEGREE. */
924     WRONG_EOP_INTERPOLATION_DEGREE("EOP interpolation degree must be of the form 4k-1, got {0}"),
925 
926     /** WALKER_INCONSISTENT_PLANES. */
927     WALKER_INCONSISTENT_PLANES("number of planes {0} is inconsistent with number of satellites {1} in Walker constellation"),
928 
929     /** INFINITE_NRMSISE00_DENSITY. */
930     INFINITE_NRLMSISE00_DENSITY("Infinite value appears during computation of atmospheric density in NRLMSISE00 model");
931 
932     /** Base name of the resource bundle in classpath. */
933     private static final String RESOURCE_BASE_NAME = "assets/org/orekit/localization/OrekitMessages";
934 
935     /** Source English format. */
936     private final String sourceFormat;
937 
938     /**
939      * Simple constructor.
940      * @param sourceFormat source English format to use when no localized version is
941      *                     available
942      */
943     OrekitMessages(final String sourceFormat) {
944         this.sourceFormat = sourceFormat;
945     }
946 
947     /** {@inheritDoc} */
948     public String getSourceString() {
949         return sourceFormat;
950     }
951 
952     /** {@inheritDoc} */
953     public String getLocalizedString(final Locale locale) {
954         try {
955             final ResourceBundle bundle = ResourceBundle.getBundle(RESOURCE_BASE_NAME, locale, new UTF8Control());
956             if (bundle.getLocale().getLanguage().equals(locale.getLanguage())) {
957                 final String translated = bundle.getString(name());
958                 if (!(translated.isEmpty() || translated.toLowerCase().contains("missing translation"))) {
959                     // the value of the resource is the translated format
960                     return translated;
961                 }
962             }
963 
964         } catch (MissingResourceException mre) {
965             // do nothing here
966         }
967 
968         // either the locale is not supported or the resource is not translated or
969         // it is unknown: don't translate and fall back to using the source format
970         return sourceFormat;
971 
972     }
973 }