Class StaticTableMetadata

    • Method Detail

      • customMetadataObject

        public <T> Optional<T> customMetadataObject​(String key,
                                                    Class<? extends T> objectClass)
        Description copied from interface: TableMetadata
        Returns a custom metadata object. These objects are used by extensions to the library, therefore the type of object stored is flexible and does not need to be known by the interface.
        Specified by:
        customMetadataObject in interface TableMetadata
        Type Parameters:
        T - The flexible type for the object being returned. The compiler will typically infer this.
        Parameters:
        key - A unique key for the metadata object. This namespace is shared by all extensions, so it is recommended best practice to qualify it with the name of your extension.
        objectClass - The java class that the object will be cast to before returning. An exception will be thrown if the stored object cannot be cast to this class.
        Returns:
        An optional containing custom metadata object or empty if the object was not found.
      • indexPartitionKeys

        public List<String> indexPartitionKeys​(String indexName)
        Description copied from interface: TableMetadata
        Returns the attribute names of all the composite partition keys for an index.
        Specified by:
        indexPartitionKeys in interface TableMetadata
        Parameters:
        indexName - The name of the index.
        Returns:
        A list of attribute names representing the composite partition keys for this index.
      • indexSortKeys

        public List<String> indexSortKeys​(String indexName)
        Description copied from interface: TableMetadata
        Returns the attribute names of all the composite sort keys for an index.
        Specified by:
        indexSortKeys in interface TableMetadata
        Parameters:
        indexName - The name of the index.
        Returns:
        A list of attribute names representing the composite sort keys for this index.
      • indexKeys

        public Collection<String> indexKeys​(String indexName)
        Description copied from interface: TableMetadata
        Returns all the names of attributes associated with the keys of a specified index.
        Specified by:
        indexKeys in interface TableMetadata
        Parameters:
        indexName - The name of the index.
        Returns:
        A collection of all key attribute names for that index.
      • allKeys

        public Collection<String> allKeys()
        Description copied from interface: TableMetadata
        Returns all the names of attributes associated with any index (primary or secondary) known for this table. Additionally any additional attributes that are deemed to be 'key-like' in how they should be treated will also be returned. An example of a 'key-like' attribute that is not actually a key is one tagged as a 'version' attribute when using the versioned record extension.
        Specified by:
        allKeys in interface TableMetadata
        Returns:
        A collection of all key attribute names for the table.
      • customMetadata

        public Map<String,​Object> customMetadata()
        Description copied from interface: TableMetadata
        Returns all custom metadata for this table. These entries are used by extensions to the library, therefore the value type of each metadata object stored in the map is not known and is provided as Object.

        This method should not be used to inspect individual custom metadata objects, instead use TableMetadata.customMetadataObject(String, Class) ()} as that will perform a type-safety check on the retrieved object.

        Specified by:
        customMetadata in interface TableMetadata
        Returns:
        A map of all the custom metadata for this table.
      • keyAttributes

        public Collection<KeyAttributeMetadata> keyAttributes()
        Description copied from interface: TableMetadata
        Returns metadata about all the known 'key' attributes for this table, such as primary and secondary index keys, or any other attribute that forms part of the structure of the table.
        Specified by:
        keyAttributes in interface TableMetadata
        Returns:
        A collection of KeyAttributeMetadata containing information about the keys.
      • scalarAttributeType

        public Optional<ScalarAttributeType> scalarAttributeType​(String keyAttribute)
        Description copied from interface: TableMetadata
        Returns the DynamoDb scalar attribute type associated with a key attribute if one is applicable.
        Specified by:
        scalarAttributeType in interface TableMetadata
        Parameters:
        keyAttribute - The key attribute name to return the scalar attribute type of.
        Returns:
        Optional ScalarAttributeType of the attribute, or empty if attribute is a non-scalar type.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object