Class Covariants


  • public final class Covariants
    extends java.lang.Object
    Utility methods used by classes related to the covariance mechanism
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.Class<?> contravariantOf​(java.lang.Class<?> dimension)  
      static <C> java.lang.Class<C> coordinateClassFor​(java.lang.Class<? extends Covariant<C>> covariantClass)  
      static <C,​CC extends Covariant<C>>
      Instantiator<C,​CC>
      instantiatorFor​(java.lang.Class<CC> covariantClass)
      Retrieves an instantiator, which can create instances of the given covariant class from the bare coordinate instances.
      static boolean isCoContraPair​(java.lang.Class<?> leftDimension, java.lang.Class<?> rightDimension)  
      static boolean isContravariant​(java.lang.Class<?> dimension)  
      static boolean isCovariant​(java.lang.Class<?> dimension)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • instantiatorFor

        public static <C,​CC extends Covariant<C>> Instantiator<C,​CC> instantiatorFor​(java.lang.Class<CC> covariantClass)
        Retrieves an instantiator, which can create instances of the given covariant class from the bare coordinate instances. The type of the coordinate class (constructor argument for the covariant class) is taken from the generic argument of the passed in class. The returned instantiator is re usable and thread safe.
        Parameters:
        covariantClass - the type of objects that shall be instantated
        Returns:
        an instantiator to create instances of the given covariant class
      • coordinateClassFor

        public static <C> java.lang.Class<C> coordinateClassFor​(java.lang.Class<? extends Covariant<C>> covariantClass)
      • isCovariant

        public static boolean isCovariant​(java.lang.Class<?> dimension)
      • isContravariant

        public static boolean isContravariant​(java.lang.Class<?> dimension)
      • contravariantOf

        public static java.lang.Class<?> contravariantOf​(java.lang.Class<?> dimension)
      • isCoContraPair

        public static boolean isCoContraPair​(java.lang.Class<?> leftDimension,
                                             java.lang.Class<?> rightDimension)