View Javadoc
1   package org.djunits.demo.website;
2   
3   import org.djunits.unit.LengthUnit;
4   import org.djunits.unit.LinearUnit;
5   import org.djunits.unit.DurationUnit;
6   import org.djunits.unit.unitsystem.UnitSystem;
7   
8   /**
9    * Example from the website to test if the code on the website is correct
10   * <p>
11   * Copyright (c) 2013-2017 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
12   * BSD-style license. See <a href="http://djunits.org/docs/license.html">DJUNITS License</a>.
13   * </p>
14   * $LastChangedDate: 2015-07-24 02:58:59 +0200 (Fri, 24 Jul 2015) $, @version $Revision: 1147 $, by $Author: averbraeck $,
15   * initial version Oct 16, 2016 <br>
16   * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
17   * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
18   * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a>
19   */
20  @SuppressWarnings({"javadoc"})
21  public class JerkUnit extends LinearUnit<JerkUnit>
22  { 
23      private final LengthUnit lengthUnit;
24      private final DurationUnit durationUnit;
25      public static final JerkUnit SI;
26      public static final JerkUnit M_PER_S3;
27      public static final JerkUnit CM_PER_S3;
28      public static final JerkUnit FT_PER_S3;
29      public static final JerkUnit JERK;
30      
31      static 
32      {
33        SI = new JerkUnit(LengthUnit.METER, DurationUnit.SECOND, 
34          "meter per cubed second", "m/s^3", UnitSystem.SI_BASE); 
35        M_PER_S3 = SI;
36        CM_PER_S3 = new JerkUnit(LengthUnit.CENTIMETER, DurationUnit.SECOND, 
37          "centimeter per cubed second", "cm/s^3", UnitSystem.SI_BASE); 
38        FT_PER_S3 = new JerkUnit(LengthUnit.FOOT, DurationUnit.SECOND, 
39          "foot per cubed second", "ft/s^3", UnitSystem.IMPERIAL);
40        JERK = new JerkUnit("jerk", "jerk", UnitSystem.OTHER, SI, 0.3048);
41      }
42      
43      public JerkUnit(final LengthUnit lengthUnit, final DurationUnit durationUnit, final String name,
44              final String abbreviation, final UnitSystem unitSystem)
45     {
46       super(name, abbreviation, unitSystem, SI, lengthUnit.getScaleFactor()
47               / Math.pow(durationUnit.getScaleFactor(), 3.0), false);
48       this.lengthUnit = lengthUnit;
49       this.durationUnit = durationUnit;
50     }
51  
52      public JerkUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
53             final JerkUnit referenceUnit, final double conversionFactorToReferenceUnit)
54     {
55       super(name, abbreviation, unitSystem, referenceUnit, conversionFactorToReferenceUnit,
56               false);
57       this.lengthUnit = referenceUnit.getLengthUnit();
58       this.durationUnit = referenceUnit.getDurationUnit();
59     }
60      
61      public final LengthUnit getLengthUnit() { return this.lengthUnit; }
62      public final DurationUnit getDurationUnit() { return this.durationUnit; }
63  
64      @Override
65      public final JerkUnit getStandardUnit() { return SI; }
66  
67      @Override
68      public final String getSICoefficientsString() { return "m/s3"; }
69  }
70