1 /* Copyright 2002-2022 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 }