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 }