1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF 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 18 package org.apache.commons.math.ode.sampling; 19 20 21 /** 22 * This class is a step handler that does nothing. 23 24 * <p>This class is provided as a convenience for users who are only 25 * interested in the final state of an integration and not in the 26 * intermediate steps. Its handleStep method does nothing.</p> 27 * 28 * <p>Since this class has no internal state, it is implemented using 29 * the Singleton design pattern. This means that only one instance is 30 * ever created, which can be retrieved using the getInstance 31 * method. This explains why there is no public constructor.</p> 32 * 33 * @see StepHandler 34 * @version $Revision: 786881 $ $Date: 2009-06-20 14:53:08 -0400 (Sat, 20 Jun 2009) $ 35 * @since 1.2 36 */ 37 38 public class DummyStepHandler implements StepHandler { 39 40 /** Private constructor. 41 * The constructor is private to prevent users from creating 42 * instances (Singleton design-pattern). 43 */ 44 private DummyStepHandler() { 45 } 46 47 /** Get the only instance. 48 * @return the only instance 49 */ 50 public static DummyStepHandler getInstance() { 51 return instance; 52 } 53 54 /** Determines whether this handler needs dense output. 55 * Since this handler does nothing, it does not require dense output. 56 * @return always false 57 */ 58 public boolean requiresDenseOutput() { 59 return false; 60 } 61 62 /** Reset the step handler. 63 * Initialize the internal data as required before the first step is 64 * handled. 65 */ 66 public void reset() { 67 } 68 69 /** 70 * Handle the last accepted step. 71 * This method does nothing in this class. 72 * @param interpolator interpolator for the last accepted step. For 73 * efficiency purposes, the various integrators reuse the same 74 * object on each call, so if the instance wants to keep it across 75 * all calls (for example to provide at the end of the integration a 76 * continuous model valid throughout the integration range), it 77 * should build a local copy using the clone method and store this 78 * copy. 79 * @param isLast true if the step is the last one 80 */ 81 public void handleStep(final StepInterpolator interpolator, final boolean isLast) { 82 } 83 84 /** The only instance. */ 85 private static final DummyStepHandler instance = new DummyStepHandler(); 86 87 }