Class AsExtensions


  • public class AsExtensions
    extends java.lang.Object
    An extension to be used with Lombok in order to provide "as" support to classes that don't implement the As interface. The typical usage is to retrofit legacy code. FIXME: this class doesn't cache - every as*() call instantiates new objects.
    Author:
    Fabrizio Giudici
    • Constructor Summary

      Constructors 
      Constructor Description
      AsExtensions()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <T> T as​(java.lang.Object datum, As.Type<? extends T> type)  
      static <T> T as​(java.lang.Object datum, java.lang.Class<T> roleType)  
      static <T> java.util.Collection<T> asMany​(java.lang.Object datum, As.Type<? extends T> type)  
      static <T> java.util.Collection<T> asMany​(java.lang.Object datum, java.lang.Class<? extends T> type)  
      static <T> java.util.Optional<T> maybeAs​(java.lang.Object datum, As.Type<? extends T> type)  
      static <T> java.util.Optional<T> maybeAs​(java.lang.Object datum, java.lang.Class<? extends T> type)  
      • Methods inherited from class java.lang.Object

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

      • AsExtensions

        public AsExtensions()
    • Method Detail

      • as

        @Nonnull
        public static <T> T as​(@Nonnull
                               java.lang.Object datum,
                               @Nonnull
                               java.lang.Class<T> roleType)
      • maybeAs

        @Nonnull
        public static <T> java.util.Optional<T> maybeAs​(@Nonnull
                                                        java.lang.Object datum,
                                                        @Nonnull
                                                        java.lang.Class<? extends T> type)
      • asMany

        @Nonnull
        public static <T> java.util.Collection<T> asMany​(@Nonnull
                                                         java.lang.Object datum,
                                                         @Nonnull
                                                         java.lang.Class<? extends T> type)
      • as

        @Nonnull
        public static <T> T as​(@Nonnull
                               java.lang.Object datum,
                               @Nonnull
                               As.Type<? extends T> type)
      • maybeAs

        @Nonnull
        public static <T> java.util.Optional<T> maybeAs​(@Nonnull
                                                        java.lang.Object datum,
                                                        @Nonnull
                                                        As.Type<? extends T> type)
      • asMany

        @Nonnull
        public static <T> java.util.Collection<T> asMany​(@Nonnull
                                                         java.lang.Object datum,
                                                         @Nonnull
                                                         As.Type<? extends T> type)