package org.archstudio.bna.keys;
import org.archstudio.bna.logics.coordinating.DynamicStickPointLogic;
/**
* Describes a key that captures metadata about another key's data: K is the other key, N is the name of the metadata
* for that other key's data, and V is the metadata type. Logics use this to capture extra data about specific
* properties and to relate that data to the property.
* <p>
*
* <p>
* As an example, the {@link DynamicStickPointLogic#getStickyModeKey(IThingKey)} uses this type of key to capture the
* desired sticky mode for the provided point key.
*
* @param <N>
* The name of the metadata being captured
* @param <K>
* The other key for which metadata is being captured
* @param <V>
* The type of the metadata value
*/
public interface IThingMetakey<N, K extends IThingKey<?>, V> extends IThingKey<V> {
N getName();
K getKey();
}