Interface MetaParam.Lookup

  • All Known Subinterfaces:
    EntryView.ReadEntryView<K,​V>, EntryView.ReadWriteEntryView<K,​V>
    Enclosing interface:
    MetaParam<T>

    public static interface MetaParam.Lookup
    Provides metadata parameter lookup capabilities using Class as lookup key.

    When the MetaParam type is generic, e.g. MetaParam.MetaEntryVersion, passing the correct Class information so that the return of findMetaParam(java.lang.Class<T>) is of the expected type can be a bit tricky. MetaEntryVersion#type() offers an easy way to retrieve the expected MetaParam type from findMetaParam(java.lang.Class<T>) at the expense of some type safety:

    
         Class<MetaEntryVersion<Long>> type = MetaEntryVersion.type();
         Optional<MetaEntryVersion<Long>> metaVersion =
              metaParamLookup.findMetaParam(type);
     
    In the future, the API might be adjusted to provide additional lookup methods where this situation is improved. Also, if the MetaParam type is not generic, e.g. MetaParam.MetaLifespan, the problem is avoided altogether:
    
         Optional<MetaLifespan<Long>> metaLifespan =
              metaParamLookup.findMetaParam(MetaLifespan.class);
     

    A user that queries meta parameters can never assume that the meta parameter will always exist because some of them depends on the cache usage.

    Since:
    8.0
    • Method Detail

      • findMetaParam

        <T extends MetaParamOptional<T> findMetaParam​(Class<T> type)
        Returns a non-empty Optional instance containing a metadata parameter instance that can be assigned to the type Class passed in, or an empty Optional if no metadata can be assigned to that type.
        Type Parameters:
        T - metadata parameter type