package org.aksw.jena_sparql_api.beans.model;
import java.util.Map.Entry;
import java.util.Set;
public abstract class MapOpsBase<T, K, V>
implements MapOps
{
// TODO Use the class information to validate arguments
protected Class<T> entityClass;
protected Class<K> keyClass;
protected Class<V> valueClass;
public MapOpsBase(Class<?> entityClass, Class<K> keyClass, Class<V> valueClass) {
this.keyClass = keyClass;
this.valueClass = valueClass;
}
public Class<?> getAssociatedClass() {
return entityClass;
}
public Class<K> getKeyClass() {
return keyClass;
}
public Class<V> getValueClass() {
return valueClass;
}
@SuppressWarnings("unchecked")
@Override
public void put(Object entity, Object key, Object value) {
$put((T)entity, (K)key, (V)value);
}
@SuppressWarnings("unchecked")
@Override
public boolean containsKey(Object entity, Object key) {
return $containsKey((T)entity, key);
}
@SuppressWarnings("unchecked")
@Override
public Object get(Object entity, Object key) {
return $get((T)entity, key);
}
@SuppressWarnings("unchecked")
@Override
public void remove(Object entity, Object key) {
$remove((T)entity, key);
}
@SuppressWarnings("unchecked")
@Override
public void clear(Object entity) {
$clear((T)entity);
}
@SuppressWarnings("unchecked")
@Override
public Set<? extends Object> keySet(Object entity) {
return $keySet((T)entity);
}
@SuppressWarnings("unchecked")
@Override
public Set<? extends Entry<? super K, ? super V>> entrySet(Object entity) {
return $entrySet((T)entity);
}
@SuppressWarnings("unchecked")
@Override
public int size(Object entity) {
return $size((T)entity);
}
public abstract boolean $containsKey(T entity, Object key);
public abstract V $get(T entity, Object key);
public abstract void $remove(T entity, Object key);
public abstract void $clear(T entity);
public abstract void $put(T entity, K key, V value);
public abstract Set<? super K> $keySet(T entity);
public abstract Set<? extends Entry<? super K, ? super V>> $entrySet(T entity);
public abstract int $size(T entity);
}