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())); } }
/** * Returns the symbol. * * @return string */ public function getSymbol() { return $this->unit->getSymbol(); }