1 /* Copyright 2002-2025 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.estimation.measurements.gnss;
18
19 import org.orekit.gnss.SatelliteSystem;
20
21 /** Factory for predefined combination of measurements.
22 * <p>
23 * This is a utility class, so its constructor is private.
24 * </p>
25 * @author Bryan Cazabonne
26 * @since 10.1
27 */
28 public class MeasurementCombinationFactory {
29
30 /** Private constructor.
31 * <p>This class is a utility class, it should neither have a public
32 * nor a default constructor. This private constructor prevents
33 * the compiler from generating one automatically.</p>
34 */
35 private MeasurementCombinationFactory() {
36 }
37
38 /**
39 * Get the Wide-Lane combination of measurements.
40 * @param system satellite system
41 * @return Wide-Lane combination
42 */
43 public static WideLaneCombination getWideLaneCombination(final SatelliteSystem system) {
44 return new WideLaneCombination(system);
45 }
46
47 /**
48 * Get the Narrow-Lane combination of measurements.
49 * @param system satellite system
50 * @return Narrow-Lane combination
51 */
52 public static NarrowLaneCombination getNarrowLaneCombination(final SatelliteSystem system) {
53 return new NarrowLaneCombination(system);
54 }
55
56 /**
57 * Get the Ionosphere-Free combination of measurements.
58 * @param system satellite system
59 * @return Ionosphere-Lane combination
60 */
61 public static IonosphereFreeCombination getIonosphereFreeCombination(final SatelliteSystem system) {
62 return new IonosphereFreeCombination(system);
63 }
64
65 /**
66 * Get the Geometry-Free combination of measurements.
67 * @param system satellite system
68 * @return Geometry-Free combination
69 */
70 public static GeometryFreeCombination getGeometryFreeCombination(final SatelliteSystem system) {
71 return new GeometryFreeCombination(system);
72 }
73
74 /**
75 * Get the Melbourne-Wübbena combination of measurements.
76 * @param system satellite system
77 * @return Melbourne-Wübbena combination
78 */
79 public static MelbourneWubbenaCombination getMelbourneWubbenaCombination(final SatelliteSystem system) {
80 return new MelbourneWubbenaCombination(system);
81 }
82
83 /**
84 * Get the phase minus code combination of measurements.
85 * @param system satellite system
86 * @return phase minus code combination
87 */
88 public static PhaseMinusCodeCombination getPhaseMinusCodeCombination(final SatelliteSystem system) {
89 return new PhaseMinusCodeCombination(system);
90 }
91
92 /**
93 * Get the GRAPHIC combination of measurements.
94 * @param system satellite system
95 * @return phase minus code combination
96 */
97 public static GRAPHICCombination getGRAPHICCombination(final SatelliteSystem system) {
98 return new GRAPHICCombination(system);
99 }
100
101 }