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.files.ccsds.definitions;
18
19 import java.util.regex.Pattern;
20
21 /** Facade in front of several probability of collision methods in CCSDS messages.
22 * @author Bryan Cazabonne
23 * @since 11.2
24 */
25 public class PocMethodFacade {
26
27 /** Pattern for POC method names. */
28 private static final Pattern PATTERN = Pattern.compile("-");
29
30 /** Name of the method. */
31 private final String name;
32
33 /** Method type (may be null). */
34 private final PocMethodType type;
35
36 /** Simple constructor.
37 * @param name name of the method
38 * @param type method type (may be null)
39 */
40 public PocMethodFacade(final String name, final PocMethodType type) {
41 this.name = name;
42 this.type = type;
43 }
44
45 /** Get the name of the method.
46 * @return name of the method
47 */
48 public String getName() {
49 return name;
50 }
51
52 /** Get the method type.
53 * @return method type
54 */
55 public PocMethodType getType() {
56 return type;
57 }
58
59 /** Parse a string from CDM.
60 * @param s string to parse
61 * @return PoC method facade
62 */
63 public static PocMethodFacade parse(final String s) {
64 PocMethodType type;
65 try {
66 type = PocMethodType.valueOf(PATTERN.matcher(s).replaceAll("_"));
67 } catch (IllegalArgumentException iae) {
68 type = null;
69 }
70 return new PocMethodFacade(s, type);
71 }
72
73 }