1 /* Copyright 2002-2019 CS Systèmes d'Information 2 * Licensed to CS Systèmes d'Information (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.utils; 18 19 import org.orekit.time.AbsoluteDate; 20 21 22 /** Interface for observing parameters changes. 23 * @see ParameterDriver 24 * @author Luc Maisonobe 25 * @since 8.0 26 */ 27 public interface ParameterObserver { 28 29 /** Notify that a parameter value has been changed. 30 * @param previousValue previous value 31 * @param driver parameter driver that has been changed 32 */ 33 void valueChanged(double previousValue, ParameterDriver driver); 34 35 /** Notify that a parameter reference date has been changed. 36 * <p> 37 * The default implementation does nothing 38 * </p> 39 * @param previousReferenceDate previous date (null if it is the first time 40 * the reference date is changed) 41 * @param driver parameter driver that has been changed 42 * @since 9.0 43 */ 44 default void referenceDateChanged(final AbsoluteDate previousReferenceDate, final ParameterDriver driver) { 45 // nothing by default 46 } 47 48 /** Notify that a parameter name has been changed. 49 * <p> 50 * The default implementation does nothing 51 * </p> 52 * @param previousName previous name 53 * @param driver parameter driver that has been changed 54 * @since 9.0 55 */ 56 default void nameChanged(final String previousName, final ParameterDriver driver) { 57 // nothing by default 58 } 59 60 /** Notify that a parameter selection status has been changed. 61 * <p> 62 * The default implementation does nothing 63 * </p> 64 * @param previousSelection previous selection 65 * @param driver parameter driver that has been changed 66 * @since 9.0 67 */ 68 default void selectionChanged(final boolean previousSelection, final ParameterDriver driver) { 69 // nothing by default 70 } 71 72 /** Notify that a parameter reference value has been changed. 73 * <p> 74 * The default implementation does nothing 75 * </p> 76 * @param previousReferenceValue previous reference value 77 * @param driver parameter driver that has been changed 78 * @since 9.0 79 */ 80 default void referenceValueChanged(final double previousReferenceValue, final ParameterDriver driver) { 81 // nothing by default 82 } 83 84 /** Notify that a parameter minimum value has been changed. 85 * <p> 86 * The default implementation does nothing 87 * </p> 88 * @param previousMinValue previous minimum value 89 * @param driver parameter driver that has been changed 90 * @since 9.0 91 */ 92 default void minValueChanged(final double previousMinValue, final ParameterDriver driver) { 93 // nothing by default 94 } 95 96 /** Notify that a parameter maximum value has been changed. 97 * <p> 98 * The default implementation does nothing 99 * </p> 100 * @param previousMaxValue previous maximum value 101 * @param driver parameter driver that has been changed 102 * @since 9.0 103 */ 104 default void maxValueChanged(final double previousMaxValue, final ParameterDriver driver) { 105 // nothing by default 106 } 107 108 /** Notify that a parameter scale has been changed. 109 * <p> 110 * The default implementation does nothing 111 * </p> 112 * @param previousScale previous scale 113 * @param driver parameter driver that has been changed 114 * @since 9.0 115 */ 116 default void scaleChanged(final double previousScale, final ParameterDriver driver) { 117 // nothing by default 118 } 119 120 }