public abstract class NamespaceBehaviour<K,V, N extends IdentifierNamespace<K, V>> implements Identifiable<Class<N>>{
public enum StorageNodeType {
- Global,
- SourceLocalSpecial,
- StatementLocal
+ GLOBAL,
+ SOURCE_LOCAL_SPECIAL,
+ STATEMENT_LOCAL,
}
public interface Registry {
-
- abstract <K, V, N extends IdentifierNamespace<K, V>> NamespaceBehaviour<K, V, N> getNamespaceBehaviour(Class<N> type);
-
+ <K, V, N extends IdentifierNamespace<K, V>> NamespaceBehaviour<K, V, N> getNamespaceBehaviour(Class<N> type);
}
public interface NamespaceStorageNode {
private final Class<N> identifier;
-
protected NamespaceBehaviour(Class<N> identifier) {
this.identifier = Preconditions.checkNotNull(identifier);
}
* Creates global namespace behaviour for supplied namespace type.
*
* Global behaviour stores and loads all values from root {@link NamespaceStorageNode}
- * with type of {@link StorageNodeType#Global}.
+ * with type of {@link StorageNodeType#GLOBAL}.
*
* @param identifier Namespace identifier.
* @return global namespace behaviour for supplied namespace type.
*/
public static @Nonnull <K,V, N extends IdentifierNamespace<K, V>> NamespaceBehaviour<K,V,N> global(Class<N> identifier) {
- return new StorageSpecific<>(identifier, StorageNodeType.Global);
+ return new StorageSpecific<>(identifier, StorageNodeType.GLOBAL);
}
/**
*
* Source-local namespace behaviour stores and loads all values from closest
* {@link NamespaceStorageNode} ancestor with type of
- * {@link StorageNodeType#SourceLocalSpecial}.
+ * {@link StorageNodeType#SOURCE_LOCAL_SPECIAL}.
*
* @param identifier Namespace identifier.
* @return source-local namespace behaviour for supplied namespace type.
*/
public static <K,V, N extends IdentifierNamespace<K, V>> NamespaceBehaviour<K,V,N> sourceLocal(Class<N> identifier) {
- return new StorageSpecific<>(identifier, StorageNodeType.SourceLocalSpecial);
+ return new StorageSpecific<>(identifier, StorageNodeType.SOURCE_LOCAL_SPECIAL);
}
/**
public abstract V getFrom(NamespaceStorageNode storage, K key);
public abstract void addTo(NamespaceStorageNode storage,K key,V value);
-
@Override
public Class<N> getIdentifier() {
return identifier;
}
}
-
}