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.
      • indexPartitionKey

        public String indexPartitionKey​(String indexName)
        Description copied from interface: TableMetadata
        Returns the attribute name of the partition key for an index.
        Specified by:
        indexPartitionKey in interface TableMetadata
        Parameters:
        indexName - The name of the index.
        Returns:
        The attribute name representing the partition key for this index.
      • indexSortKey

        public Optional<String> indexSortKey​(String indexName)
        Description copied from interface: TableMetadata
        Returns the attribute name of the sort key for an index.
        Specified by:
        indexSortKey in interface TableMetadata
        Parameters:
        indexName - The name of the index.
        Returns:
        Optional of the attribute name representing the sort key for this index; empty if the index does not have a sort key.
      • 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