All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.blazebit.query.metamodel.Metamodel Maven / Gradle / Ivy

There is a newer version: 1.0.6
Show newest version
/*
 * SPDX-License-Identifier: Apache-2.0
 * Copyright Blazebit
 */
package com.blazebit.query.metamodel;

import java.util.Set;

/**
 * The metamodel of schema object types.
 *
 * @author Christian Beikov
 * @since 1.0.0
 */
public interface Metamodel {

	/**
	 * Returns the {@link SchemaObjectType} for the given class, or {@code null} if not found.
	 *
	 * @param qualifiedName The name for which to find the schema object type
	 * @param  The schema object type
	 * @return The {@link SchemaObjectType} for the given class, or {@code null} if not found
	 */
	 SchemaObjectType find(String qualifiedName);

	/**
	 * Returns the {@link SchemaObjectType} for the given class.
	 * Throws an {@link IllegalArgumentException} if the qualified name is not known.
	 *
	 * @param qualifiedName The name for which to find the schema object type
	 * @param  The schema object type
	 * @return The {@link SchemaObjectType} for the given class
	 * @throws IllegalArgumentException if the schema object type is not known
	 */
	 SchemaObjectType get(String qualifiedName);

	/**
	 * Returns the {@link SchemaObjectType} for the given class, or {@code null} if not found.
	 *
	 * @param schemaObjectType The schema object type class
	 * @param  The schema object type
	 * @return The {@link SchemaObjectType} for the given class, or {@code null} if not found
	 */
	 SchemaObjectType find(Class schemaObjectType);

	/**
	 * Returns the {@link SchemaObjectType} for the given class.
	 * Throws an {@link IllegalArgumentException} if the class is not known.
	 *
	 * @param schemaObjectType The schema object type class
	 * @param  The schema object type
	 * @return The {@link SchemaObjectType} for the given class
	 * @throws IllegalArgumentException if the schema object type is not known
	 */
	 SchemaObjectType get(Class schemaObjectType);

	/**
	 * Returns the schema object types.
	 *
	 * @return The schema object types
	 */
	Set> types();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy