package org.aksw.jena_sparql_api.mapper.jpa.metamodel;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.persistence.metamodel.EmbeddableType;
import javax.persistence.metamodel.EntityType;
import javax.persistence.metamodel.ManagedType;
import javax.persistence.metamodel.Metamodel;
public class MetamodelImpl
implements Metamodel
{
protected Map<Class<?>, ManagedType<?>> managedTypes;
protected Map<Class<?>, EntityType<?>> entities;
protected Map<Class<?>, EmbeddableType<?>> embeddables;
@Override
public Set<ManagedType<?>> getManagedTypes() {
Set<ManagedType<?>> result = new HashSet<>(managedTypes.values());
return result;
}
@Override
public Set<EntityType<?>> getEntities() {
Set<EntityType<?>> result = new HashSet<>(entities.values());
return result;
}
@Override
public Set<EmbeddableType<?>> getEmbeddables() {
Set<EmbeddableType<?>> result = new HashSet<>(embeddables.values());
return result;
}
@Override
public <X> EntityType<X> entity(Class<X> cls) {
@SuppressWarnings("unchecked")
EntityType<X> result = (EntityType<X>)entities.get(cls);
return result;
}
@Override
public <X> ManagedType<X> managedType(Class<X> cls) {
@SuppressWarnings("unchecked")
ManagedType<X> result = (EntityType<X>)entities.get(cls);
return result;
}
@Override
public <X> EmbeddableType<X> embeddable(Class<X> cls) {
@SuppressWarnings("unchecked")
EmbeddableType<X> result = (EmbeddableType<X>)entities.get(cls);
return result;
}
}