Example #1
0
 public function equals(Unit $that)
 {
     if ($this == $that) {
         return true;
     }
     if (!$that instanceof self) {
         return false;
     }
     return $this->symbol == $that->getSymbol();
 }
 /**
  * Build a measure with the given value and the given unit.
  *
  * @param float $value
  * @param Unit  $unit
  *
  * @return Measure
  */
 public static function build($value, Unit $unit)
 {
     switch ($unit->getQuantity()) {
         case Acceleration::class:
             return new AccelerationMeasure($value, $unit);
         case AmountOfSubstance::class:
             return new AmountOfSubstanceMeasure($value, $unit);
         case Angle::class:
             return new AngleMeasure($value, $unit);
         case Area::class:
             return new AreaMeasure($value, $unit);
         case CatalyticActivity::class:
             return new CatalyticActivityMeasure($value, $unit);
         case Constant::class:
             return new ConstantMeasure($value, $unit);
         case DataAmount::class:
             return new DataAmountMeasure($value, $unit);
         case DataRate::class:
             return new DataRateMeasure($value, $unit);
         case Dimensionless::class:
             return new DimensionlessMeasure($value, $unit);
         case Duration::class:
             return new DurationMeasure($value, $unit);
         case DynamicViscosity::class:
             return new DynamicViscosityMeasure($value, $unit);
         case ElectricCapacitance::class:
             return new ElectricCapacitanceMeasure($value, $unit);
         case ElectricCharge::class:
             return new ElectricChargeMeasure($value, $unit);
         case ElectricConductance::class:
             return new ElectricConductanceMeasure($value, $unit);
         case ElectricCurrent::class:
             return new ElectricCurrentMeasure($value, $unit);
         case ElectricInductance::class:
             return new ElectricInductanceMeasure($value, $unit);
         case ElectricPotential::class:
             return new ElectricPotentialMeasure($value, $unit);
         case ElectricResistance::class:
             return new ElectricResistanceMeasure($value, $unit);
         case Energy::class:
             return new EnergyMeasure($value, $unit);
         case Force::class:
             return new ForceMeasure($value, $unit);
         case Frequency::class:
             return new FrequencyMeasure($value, $unit);
         case Illuminance::class:
             return new IlluminanceMeasure($value, $unit);
         case KinematicViscosity::class:
             return new KinematicViscosityMeasure($value, $unit);
         case Length::class:
             return new LengthMeasure($value, $unit);
         case Level::class:
             return new LevelMeasure($value, $unit);
         case LuminousFlux::class:
             return new LuminousFluxMeasure($value, $unit);
         case LuminousIntensity::class:
             return new LuminousIntensityMeasure($value, $unit);
         case MagneticFlux::class:
             return new MagneticFluxMeasure($value, $unit);
         case MagneticFluxDensity::class:
             return new MagneticFluxDensityMeasure($value, $unit);
         case Mass::class:
             return new MassMeasure($value, $unit);
         case Power::class:
             return new PowerMeasure($value, $unit);
         case Pressure::class:
             return new PressureMeasure($value, $unit);
         case RadiationDoseAbsorbed::class:
             return new RadiationDoseAbsorbedMeasure($value, $unit);
         case RadiationDoseEffective::class:
             return new RadiationDoseEffectiveMeasure($value, $unit);
         case RadioactiveActivity::class:
             return new RadioactiveActivityMeasure($value, $unit);
         case Ratio::class:
             return new RatioMeasure($value, $unit);
         case SolidAngle::class:
             return new SolidAngleMeasure($value, $unit);
         case Temperature::class:
             return new TemperatureMeasure($value, $unit);
         case Velocity::class:
             return new VelocityMeasure($value, $unit);
         case Volume::class:
             return new VolumeMeasure($value, $unit);
         default:
             throw new \InvalidArgumentException(sprintf('Unknown quantity "%s" for unit "%s".', get_class($unit->getQuantity()), $unit->getSymbol()));
     }
 }
Example #3
0
 /**
  * Returns the symbol.
  *
  * @return string
  */
 public function getSymbol()
 {
     return $this->unit->getSymbol();
 }