package org.archstudio.bna.keys; import org.eclipse.jdt.annotation.Nullable; import com.google.common.base.Function; import com.google.common.collect.Lists; abstract class AbstractThingMetakey<N, K extends IThingKey<?>, V> extends AbstractThingKey<V> implements IThingMetakey<N, K, V> { protected final N name; protected final K key; protected AbstractThingMetakey(N name, K key, @Nullable Function<V, V> cloneFunction, boolean nullable) { super(Lists.newArrayList(key, name), cloneFunction, nullable); this.name = name; this.key = key; } @Override public N getName() { return name; } @Override public K getKey() { return key; } }