Class ProxyQuantityFactory<Q extends javax.measure.Quantity<Q>>

  • Type Parameters:
    Q - The type of the quantity.
    All Implemented Interfaces:
    javax.measure.spi.QuantityFactory<Q>
    Direct Known Subclasses:
    ProxyQuantityFactory.Default

    public abstract class ProxyQuantityFactory<Q extends javax.measure.Quantity<Q>>
    extends java.lang.Object
    implements javax.measure.spi.QuantityFactory<Q>
    A factory producing simple quantities instances (tuples Number/Unit). This implementation of QuantityFactory uses the DynamicProxy features of Java reflection API.

    For example:
    Quantity m = ProxyQuantityFactory.getInstance(Mass.class).create(23.0, KILOGRAM); // 23.0 kg
    Quantity
    Since:
    1.0
    Version:
    1.1, $Date: 2018-03-04 $
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  ProxyQuantityFactory.Default<Q extends javax.measure.Quantity<Q>>
      The default factory implementation.
      private static class  ProxyQuantityFactory.GenericHandler<Q extends javax.measure.Quantity<Q>>
      The method invocation handler for implementation backed by any kind of Number.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.Map<java.lang.Class,​ProxyQuantityFactory> INSTANCES
      Holds the current instances.
      private static java.util.logging.Level LOG_LEVEL  
      private static java.util.logging.Logger logger  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static <Q extends javax.measure.Quantity<Q>>
      ProxyQuantityFactory<Q>
      getInstance​(java.lang.Class<Q> type)
      Returns the default instance for the specified quantity type.
      abstract javax.measure.Unit<Q> getSystemUnit()
      Returns the metric unit for quantities produced by this factory or null if unknown.
      protected static <Q extends javax.measure.Quantity<Q>>
      void
      setInstance​(java.lang.Class<Q> type, ProxyQuantityFactory<Q> factory)
      Overrides the default implementation of the factory for the specified quantity type.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.measure.spi.QuantityFactory

        create
    • Field Detail

      • INSTANCES

        private static final java.util.Map<java.lang.Class,​ProxyQuantityFactory> INSTANCES
        Holds the current instances.
      • logger

        private static final java.util.logging.Logger logger
      • LOG_LEVEL

        private static final java.util.logging.Level LOG_LEVEL
    • Constructor Detail

      • ProxyQuantityFactory

        public ProxyQuantityFactory()
    • Method Detail

      • getInstance

        public static <Q extends javax.measure.Quantity<Q>> ProxyQuantityFactory<Q> getInstance​(java.lang.Class<Q> type)
        Returns the default instance for the specified quantity type.
        Type Parameters:
        Q - The type of the quantity
        Parameters:
        type - the quantity type
        Returns:
        the quantity factory for the specified type
      • setInstance

        protected static <Q extends javax.measure.Quantity<Q>> void setInstance​(java.lang.Class<Q> type,
                                                                                ProxyQuantityFactory<Q> factory)
        Overrides the default implementation of the factory for the specified quantity type.
        Type Parameters:
        Q - The type of the quantity
        Parameters:
        type - the quantity type
        factory - the quantity factory
      • getSystemUnit

        public abstract javax.measure.Unit<Q> getSystemUnit()
        Returns the metric unit for quantities produced by this factory or null if unknown.
        Specified by:
        getSystemUnit in interface javax.measure.spi.QuantityFactory<Q extends javax.measure.Quantity<Q>>
        Returns:
        the metric units for this factory quantities.