1 package org.djutils.decoderdumper; 2 3 /** 4 * <p> 5 * Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br> 6 * BSD-style license. See <a href="https://opentrafficsim.org/node/13">OpenTrafficSim License</a>. 7 * <p> 8 * @version $Revision$, $LastChangedDate$, by $Author$, initial version Jan 3, 2019 <br> 9 * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a> 10 * @author <a href="https://www.tudelft.nl/staff/p.knoppers/">Peter Knoppers</a> 11 * @author <a href="https://www.transport.citg.tudelft.nl">Wouter Schakel</a> 12 */ 13 public class FixedString implements Decoder 14 { 15 /** 16 * The String that will be returned by <code>getResult</code> on each invocation of getResult after at least one call to 17 * append. 18 */ 19 private final String fixedResult; 20 21 /** Remember if the append method was ever called. */ 22 private boolean appendWasCalled = false; 23 24 /** 25 * Construct a Decoder that returns a fixed result in the <code>getResult</code> method. 26 * @param fixedResult String; the String that the <code>getResult</code> method will return on each invocation 27 */ 28 public FixedString(final String fixedResult) 29 { 30 this.fixedResult = fixedResult; 31 } 32 33 /** {@inheritDoc} */ 34 @Override 35 public String getResult() 36 { 37 if (this.appendWasCalled) 38 { 39 this.appendWasCalled = false; 40 return this.fixedResult; 41 } 42 return ""; 43 } 44 45 /** {@inheritDoc} */ 46 @Override 47 public int getMaximumWidth() 48 { 49 return this.fixedResult.length(); 50 } 51 52 /** {@inheritDoc} */ 53 @Override 54 public boolean append(int address, byte theByte) 55 { 56 this.appendWasCalled = true; 57 return false; 58 } 59 60 /** {@inheritDoc} */ 61 @Override 62 public boolean ignoreForIdenticalOutputCheck() 63 { 64 return false; 65 } 66 67 /** {@inheritDoc} */ 68 @Override 69 public String toString() 70 { 71 return "FixedString [fixedResult=" + this.fixedResult + ", appendWasCalled=" + this.appendWasCalled + "]"; 72 } 73 74 }