Packages

• package
Definition Classes
root
• package

The Scala API for Quantities, Units of Measure and Dimensional Analysis

Squants

The Scala API for Quantities, Units of Measure and Dimensional Analysis

Overview

Squants is a framework of data types and a domain specific language (DSL) for representing Quantities, their Units of Measure, and their Dimensional relationships. The API supports typesafe dimensional analysis, improved domain models and more. All types are immutable and thread-safe.

Typedefs and implicits for common usages

Definition Classes
root
Version

0.1

Since

0.1

• package

Definition Classes
squants
Since

0.1

• package

Definition Classes
squants
Since

0.1

• package
Definition Classes
squants
• package

Squants Market API

Squants Market API

Market Types are similar but not quite the same as other quantities in the library.

The primary type, squants.market.Money, is derived from Quantity, and its Units of Measure are Currencies. However, because the conversion multipliers between units can not be predefined, many of the behaviors have been overridden and augmented to realize correct behavior.

squants.market.Prices represent a Ratio between Money and some other Quantity. Prices can be created from ratios of Money and a Quantity

```val money: Money = USD(10)
val length: Length = Meters(1)
val price: Price[Length] = money / length```

Multiplying a Price * Quantity will yield Money amount that represents the cost of the quantity

`val cost: Money = price * Meters(3.8)`

and multiplying Price * Money will yield the corresponding Quantity amount

```val budget: Money = USD(250)
val quote: Length = price * budget```

squants.market.CurrencyExchangeRates represent conversion rates between currencies. Use them to explicitly convert Money values in one currency to values in another.

squants.market.MoneyContext provide the implicit context necessary to perform cross-currency operations on Money values with conversions automatically applied.

Some binary math operations will work on Moneys of like Currency with no MoneyContext in scope. Attempts to perform these operations on Moneys of dissimilar currencies will throw an exception at runtime.

Other operations, including direct conversions to other currencies, require a MoneyContext and will not compile without it. However, there is no compile time check to determine if the correct exchange rates will be available at runtime. Operation requiring conversion without the required rates available will throw a NoSuchExchangeRateException at runtime.

The defaultMoneyContext uses the USD as the default and provides a list of ~20 common currencies, and NO exchange rates. If your application requires something different you should initialize your own implicit MoneyContext

Definition Classes
squants
Since

0.1

• package

Definition Classes
squants
Since

0.1

• package

Definition Classes
squants
Since

0.1

• package

Definition Classes
squants
Since

0.1

• package

Definition Classes
squants
Since

0.1

• package

Definition Classes
squants
Since

0.1

• package

Definition Classes
squants
Since

0.1

• package

Definition Classes
squants
Since

0.1

• AbstractQuantityNumeric
• BaseDimension
• BinarySystem
• Dimension
• Dimensionless
• DimensionlessConversions
• DimensionlessUnit
• DoubleVector
• Dozen
• Each
• Gross
• LikeRatio
• MetricSystem
• Percent
• PrimaryUnit
• Quantity
• QuantityParseException
• QuantityRange
• QuantityVector
• Ratio
• SVector
• Score
• SiBaseUnit
• SiUnit
• SquantifiedBigDecimal
• SquantifiedDouble
• SquantifiedLong
• UnitConverter
• UnitOfMeasure
o

squants

Gross 

object Gross extends DimensionlessUnit

Represents a unit of gross (144)

Source
Dimensionless.scala
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. Gross
2. DimensionlessUnit
3. UnitConverter
4. UnitOfMeasure
5. Serializable
6. Serializable
7. AnyRef
8. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

Value Members

1. final def !=(arg0: Any)
Definition Classes
AnyRef → Any
2. final def ##(): Int
Definition Classes
AnyRef → Any
3. final def ==(arg0: Any)
Definition Classes
AnyRef → Any
4. def apply[A](n: A)(implicit num: Numeric[A])

Factory method for creating instances of a Quantity in this UnitOfMeasure

Factory method for creating instances of a Quantity in this UnitOfMeasure

n

N - the Quantity's value in terms of this UnitOfMeasure

Definition Classes
DimensionlessUnitUnitOfMeasure
5. final def asInstanceOf[T0]: T0
Definition Classes
Any
6. def clone()
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( ... )
7. val conversionFactor
Definition Classes
GrossUnitConverter
8. final def convertFrom[N](n: N)(implicit num: Numeric[N])

Applies the converterFrom method to a value

Applies the converterFrom method to a value

N

Type

n

N value in terms of this Unit

num

Numeric[N]

Definition Classes
UnitOfMeasure
9. final def convertTo[N](n: N)(implicit num: Numeric[N])

Applies the converterTo method to a value

Applies the converterTo method to a value

N

Type

n

N value in terms of teh ValueUnit

num

Numeric[N]

Definition Classes
UnitOfMeasure
10. def converterFrom: (Double) ⇒ Double

Implements the converterFrom method as a simple product of the value and the multiplier

Implements the converterFrom method as a simple product of the value and the multiplier

Attributes
protected
Definition Classes
UnitConverter
11. def converterTo: (Double) ⇒ Double

Implements the converterTo method as a simple quotient of the value and the multiplier

Implements the converterTo method as a simple quotient of the value and the multiplier

Attributes
protected
Definition Classes
UnitConverter
12. final def eq(arg0: AnyRef)
Definition Classes
AnyRef
13. def equals(arg0: Any)
Definition Classes
AnyRef → Any
14. def finalize(): Unit
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )
15. final def getClass(): Class[_]
Definition Classes
AnyRef → Any
16. def hashCode(): Int
Definition Classes
AnyRef → Any
17. final def isInstanceOf[T0]
Definition Classes
Any
18. final def ne(arg0: AnyRef)
Definition Classes
AnyRef
19. final def notify(): Unit
Definition Classes
AnyRef
20. final def notifyAll(): Unit
Definition Classes
AnyRef
21. val symbol: String
Definition Classes
GrossUnitOfMeasure
22. final def synchronized[T0](arg0: ⇒ T0): T0
Definition Classes
AnyRef
23. def toString(): String
Definition Classes
AnyRef → Any
24. def unapply(): Some[Double]

Extractor method for getting the Numeric value of a Quantity in this UnitOfMeasure

Extractor method for getting the Numeric value of a Quantity in this UnitOfMeasure

q

A - The Quantity being matched

Definition Classes
UnitOfMeasure
25. final def wait(): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
26. final def wait(arg0: Long, arg1: Int): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
27. final def wait(arg0: Long): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )