| /* |
| * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // Oracle - initial API and implementation |
| // |
| package org.eclipse.persistence.jpa.jpql; |
| |
| /** |
| * @version 2.4 |
| * @since 2.4 |
| * @author Pascal Filion |
| */ |
| public interface ITypeHelper { |
| |
| /** |
| * Retrieves the;@link IType} for;@link BigDecimal}. |
| * |
| * @return The external form of the <code>BigDecimal</code> class |
| */ |
| Object bigDecimal(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link BigInteger}. |
| * |
| * @return The external form of the <code>BigInteger</code> class |
| */ |
| Object bigInteger(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Boolean}. |
| * |
| * @return The external form of the <code>Boolean</code> class |
| */ |
| Object booleanType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Byte}. |
| * |
| * @return The external form of the <code>Byte</code> class |
| */ |
| Object byteType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Character}. |
| * |
| * @return The external form of the <code>Character</code> class |
| */ |
| Object characterType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Collection}. |
| * |
| * @return The external form of the <code>Collection</code> class |
| */ |
| Object collectionType(); |
| |
| /** |
| * Converts the given;@link IType}, if it's representing a primitive type, into the class of the |
| * same type. |
| * |
| * @param type Type to possibly convert from the primitive into the class |
| * @return The given;@link IType} if it's not a primitive type otherwise the primitive type will |
| * have been converted into the class of that primitive |
| */ |
| Object convertPrimitive(Object type); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Date}. |
| * |
| * @return The external form of the <code>Date</code> class |
| */ |
| Object dateType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Double}. |
| * |
| * @return The external form of the <code>Double</code> class |
| */ |
| Object doubleType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Enum}. |
| * |
| * @return The external form of the <code>Enum</code> class |
| */ |
| Object enumType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Float}. |
| * |
| * @return The external form of the <code>Float</code> class |
| */ |
| Object floatType(); |
| |
| /** |
| * Returns the;@link IType} of the given Java type. |
| * |
| * @param type The Java type for which its external form will be returned |
| * @return The;@link IType} representing the given Java type |
| */ |
| Object getType(Class<?> type); |
| |
| /** |
| * Retrieves the external class for the given fully qualified class name. |
| * |
| * @param typeName The fully qualified class name of the class to retrieve |
| * @return The external form of the class to retrieve |
| */ |
| Object getType(String typeName); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Integer}. |
| * |
| * @return The external form of the <code>Integer</code> class |
| */ |
| Object integerType(); |
| |
| /** |
| * Determines whether the given;@link IType} is a;@link Boolean}. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} is a;@link Boolean}; <code>false</code> |
| * otherwise |
| */ |
| boolean isBooleanType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} is an instance of;@link Collection}. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} is an instance of;@link Collection}; |
| * <code>false</code> otherwise |
| */ |
| boolean isCollectionType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} is a;@link Date},;@link Timestamp} or |
| *;@link Calendar}. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} is a;@link Date},;@link Timestamp} or |
| *;@link Calendar} |
| */ |
| boolean isDateType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} is an instance of;@link Enum}. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} is an instance of;@link Enum}; |
| * <code>false</code> otherwise |
| */ |
| boolean isEnumType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} is an instance of a floating type, which is either |
| * <code>Float</code>, <code>Double</code>, float or double. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} is a floating type; <code>false</code> |
| * otherwise |
| */ |
| boolean isFloatingType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} is an instance of a floating type, which is either |
| * <code>Integer</code>, <code>Long</code>, int or float. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} is a integral type; <code>false</code> |
| * otherwise |
| */ |
| boolean isIntegralType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} is an instance of;@link Map}. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} is an instance of;@link Map}; |
| * <code>false</code> otherwise |
| */ |
| boolean isMapType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} is an instance of;@link Numeric}. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} is an instance of;@link Numeric}; |
| * <code>false</code> otherwise |
| */ |
| boolean isNumericType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} is the external form of;@link Object}. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} is the external form of;@link Object} |
| */ |
| boolean isObjectType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} represents a primitive type. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} represents a primitive; <code>false</code> |
| * otherwise |
| */ |
| boolean isPrimitiveType(Object type); |
| |
| /** |
| * Determines whether the given;@link IType} represents the <code>String</code> class. |
| * |
| * @param type The type to check it's assignability |
| * @return <code>true</code> if the given;@link IType} represents the <code>String</code> class; |
| * <code>false</code> otherwise |
| */ |
| boolean isStringType(Object type); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Long}. |
| * |
| * @return The external form of the <code>Long</code> class |
| */ |
| Object longType(); |
| |
| /** |
| * Converts the given;@link IType}, if it's the primitive long, into the <code>Long</code> type. |
| * |
| * @param type The;@link IType} to possibly convert |
| * @return The given type if it's not the primitive long or the;@link IType} for the class |
| * <code>Long</code> |
| */ |
| Object longType(Object type); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Map}. |
| * |
| * @return The external form of the <code>Map</code> class |
| */ |
| Object mapType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Number}. |
| * |
| * @return The external form of the <code>Number</code> class |
| */ |
| Object numberType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Object}. |
| * |
| * @return The external form of the <code>Object</code> class |
| */ |
| Object objectType(); |
| |
| /** |
| * Returns the;@link Object } for the;@link IType} representing the <code>Object</code> |
| * class. |
| * |
| * @return The;@link Object } of the <code>Object</code> class |
| */ |
| Object objectTypeDeclaration(); |
| |
| /** |
| * Retrieves the;@link IType} for the primitive boolean. |
| * |
| * @return The external form of the primitive boolean |
| */ |
| Object primitiveBoolean(); |
| |
| /** |
| * Retrieves the;@link IType} for the primitive byte. |
| * |
| * @return The external form of the primitive byte |
| */ |
| Object primitiveByte(); |
| |
| /** |
| * Retrieves the;@link IType} for the primitive char. |
| * |
| * @return The external form of the primitive char |
| */ |
| Object primitiveChar(); |
| |
| /** |
| * Retrieves the;@link IType} for the primitive double. |
| * |
| * @return The external form of the primitive double |
| */ |
| Object primitiveDouble(); |
| |
| /** |
| * Retrieves the;@link IType} for the primitive float. |
| * |
| * @return The external form of the primitive float |
| */ |
| Object primitiveFloat(); |
| |
| /** |
| * Retrieves the;@link IType} for the primitive int. |
| * |
| * @return The external form of the primitive int |
| */ |
| Object primitiveInteger(); |
| |
| /** |
| * Retrieves the;@link IType} for the primitive long. |
| * |
| * @return The external form of the primitive long |
| */ |
| Object primitiveLong(); |
| |
| /** |
| * Retrieves the;@link IType} for the primitive short. |
| * |
| * @return The external form of the primitive short |
| */ |
| Object primitiveShort(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Short}. |
| * |
| * @return The external form of the <code>Short</code> class |
| */ |
| Object shortType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link String}. |
| * |
| * @return The external form of the <code>String</code> class |
| */ |
| Object stringType(); |
| |
| /** |
| * Retrieves the;@link IType} for;@link Timestamp}. |
| * |
| * @return The external form of the <code>Timestamp</code> class |
| */ |
| Object timestampType(); |
| |
| /** |
| * Converts the given;@link IType}, if it's the primitive boolean, into the <code>Boolean</code> |
| * type. |
| * |
| * @param type The;@link IType} to possibly convert |
| * @return The given type if it's not the primitive boolean or the;@link IType} for the class |
| * <code>Boolean</code> |
| */ |
| Object toBooleanType(Object type); |
| |
| /** |
| * Converts the given;@link IType}, if it's the primitive byte, into the <code>Byte</code> |
| * type. |
| * |
| * @param type The;@link IType} to possibly convert |
| * @return The given type if it's not the primitive byte or the;@link IType} for the class |
| * <code>Byte</code> |
| */ |
| Object toByteType(Object type); |
| |
| /** |
| * Converts the given;@link IType}, if it's the primitive double, into the <code>Double</code> |
| * type. |
| * |
| * @param type The;@link IType} to possibly convert |
| * @return The given type if it's not the primitive double or the;@link IType} for the class |
| * <code>Double</code> |
| */ |
| Object toDoubleType(Object type); |
| |
| /** |
| * Converts the given;@link IType}, if it's the primitive float, into the <code>Float</code> |
| * type. |
| * |
| * @param type The;@link IType} to possibly convert |
| * @return The given type if it's not the primitive float or the;@link IType} for the class |
| * <code>Float</code> |
| */ |
| Object toFloatType(Object type); |
| |
| /** |
| * Converts the given;@link IType}, if it's the primitive int, into the <code>Integer</code> |
| * type. |
| * |
| * @param type The;@link IType} to possibly convert |
| * @return The given type if it's not the primitive int or the;@link IType} for the class |
| * <code>Integer</code> |
| */ |
| Object toIntegerType(Object type); |
| |
| /** |
| * Converts the given;@link IType}, if it's the primitive short, into the <code>Short</code> |
| * type. |
| * |
| * @param type The;@link IType} to possibly convert |
| * @return The given type if it's not the primitive short or the;@link IType} for the class |
| * <code>Short</code> |
| */ |
| Object toShortType(Object type); |
| |
| /** |
| * Retrieves the;@link IType} that represents an unknown type. |
| * |
| * @return The external form of an unknown type |
| */ |
| Object unknownType(); |
| |
| /** |
| * Returns the;@link Object } for the;@link IType} representing an unknown type. |
| * |
| * @return The;@link Object } of the unknown type |
| */ |
| Object unknownTypeDeclaration(); |
| } |