
com.blazebit.query.impl.metamodel.MetamodelImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of blaze-query-core-impl Show documentation
Show all versions of blaze-query-core-impl Show documentation
A multi-platform querying library
/*
* SPDX-License-Identifier: Apache-2.0
* Copyright Blazebit
*/
package com.blazebit.query.impl.metamodel;
import java.util.HashSet;
import java.util.Set;
import com.blazebit.query.impl.SchemaObjectTypeImpl;
import com.blazebit.query.metamodel.Metamodel;
import com.blazebit.query.metamodel.SchemaObjectType;
import com.google.common.collect.ImmutableMap;
/**
* @author Christian Beikov
* @since 1.0.0
*/
public class MetamodelImpl implements Metamodel {
private final ImmutableMap> schemaObjects;
public MetamodelImpl(ImmutableMap> schemaObjects) {
this.schemaObjects = schemaObjects;
}
@Override
public SchemaObjectTypeImpl find(String qualifiedName) {
//noinspection unchecked
return (SchemaObjectTypeImpl) schemaObjects.get( qualifiedName );
}
@Override
public SchemaObjectTypeImpl get(String qualifiedName) {
SchemaObjectTypeImpl> schemaObjectType = schemaObjects.get( qualifiedName );
if ( schemaObjectType == null ) {
throw new IllegalArgumentException( "No schema object type found for " + qualifiedName );
}
//noinspection unchecked
return (SchemaObjectTypeImpl) schemaObjectType;
}
@Override
public SchemaObjectTypeImpl find(Class schemaObjectType) {
//noinspection unchecked
return (SchemaObjectTypeImpl) schemaObjects.get( schemaObjectType.getCanonicalName() );
}
@Override
public SchemaObjectTypeImpl get(Class schemaObjectTypeClass) {
SchemaObjectTypeImpl> schemaObjectType = schemaObjects.get( schemaObjectTypeClass.getCanonicalName() );
if ( schemaObjectType == null ) {
throw new IllegalArgumentException(
"No schema object type found for " + schemaObjectTypeClass.getCanonicalName() );
}
//noinspection unchecked
return (SchemaObjectTypeImpl) schemaObjectType;
}
@Override
public Set> types() {
return new HashSet<>( schemaObjects.values() );
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy