| /* |
| * Copyright (c) 1998, 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 from Oracle TopLink |
| package org.eclipse.persistence.internal.jpa.parsing; |
| |
| import org.eclipse.persistence.mappings.querykeys.QueryKey; |
| |
| /** |
| * INTERNAL |
| * <p><b>Purpose</b>: Specify type helper methods. |
| */ |
| public interface TypeHelper { |
| |
| /** Returns the name of the specified type. */ |
| public String getTypeName(Object type); |
| |
| /** Returns the class object of the specified type. */ |
| public Class getJavaClass(Object type); |
| |
| /** Returns a type representation for the specified type name or null if |
| * there is no such type. */ |
| public Object resolveTypeName(String typeName); |
| |
| /** Returns the type of the attribute with the specified name in the |
| * specified owner class. */ |
| public Object resolveAttribute(Object ownerClass, String attribute); |
| |
| /** |
| * Returns a query key associated with the name of the attribute |
| */ |
| public QueryKey resolveQueryKey(Object ownerClass, String attribute); |
| |
| /** Returns the type of the map key for the mapping on ownerClass named attribute |
| * Returns null if that mapping does not exist or does not contain a map key |
| */ |
| public Object resolveMapKey(Object ownerClass, String attribute); |
| |
| /** Returns the type of the class corresponding to the specified abstract |
| * schema type. */ |
| public Object resolveSchema(String schemaName); |
| |
| /** Returns the enum constant if the specified type denotes an enum type |
| * and the specified constant denotes a constant of the enum type. */ |
| public Object resolveEnumConstant(Object enumType, String constant); |
| |
| /** Returns the type representation of class Object.*/ |
| public Object getObjectType(); |
| |
| /** Returns the boolean type representation.*/ |
| public Object getBooleanType(); |
| |
| /** Returns the char type representation.*/ |
| public Object getCharType(); |
| |
| /** Returns the char type representation.*/ |
| public Object getSQLDateType(); |
| |
| /** Returns the char type representation.*/ |
| public Object getTimeType(); |
| |
| /** Returns the char type representation.*/ |
| public Object getTimestampType(); |
| |
| /** Returns the int type representation.*/ |
| public Object getIntType(); |
| |
| /** Returns the long type representation.*/ |
| public Object getLongType(); |
| |
| /** Returns the type representation of class Long.*/ |
| public Object getLongClassType(); |
| |
| /** Returns the type representation of class Map.Entry.*/ |
| public Object getMapEntryType(); |
| |
| /** Returns the float type representation.*/ |
| public Object getFloatType(); |
| |
| /** Returns the double type representation.*/ |
| public Object getDoubleType(); |
| |
| /** Returns the type representation of class Double.*/ |
| public Object getDoubleClassType(); |
| |
| /** Returns the type representation oc class String.*/ |
| public Object getStringType(); |
| |
| /** Returns the type representation of class BigInteger.*/ |
| public Object getBigIntegerType(); |
| |
| /** Returns the type representation of class BigDecimal.*/ |
| public Object getBigDecimalType(); |
| |
| /** Returns true if the specified type denotes an enum type. */ |
| public boolean isEnumType(Object type); |
| |
| /** Returns true if the specified type represents an |
| * integral type (or wrapper), a floating point type (or wrapper), |
| * BigInteger or BigDecimal. */ |
| public boolean isNumericType(Object type); |
| |
| /** Returns true if the specified type represents an |
| * integral type or a wrapper class of an integral type. */ |
| public boolean isIntegralType(Object type); |
| |
| /** Returns true if the specified type represents an floating point type |
| * or a wrapper class of an floating point type. */ |
| public boolean isFloatingPointType(Object type); |
| |
| /** Returns true if the specified type represents java.lang.String. */ |
| public boolean isStringType(Object type); |
| |
| /** Returns true if the specified type represents java.math.BigInteger. */ |
| public boolean isBigIntegerType(Object type); |
| |
| /** Returns true if the specified type represents java.math.BigDecimal. */ |
| public boolean isBigDecimalType(Object type); |
| |
| /** Returns true if the specified type denotes an orderable type. */ |
| public boolean isOrderableType(Object type); |
| |
| /** Returns true if the specified type denotes an entity class. */ |
| public boolean isEntityClass(Object type); |
| |
| /** Returns true if the specified type denotes an embedded class. */ |
| public boolean isEmbeddable(Object type); |
| |
| /** Returns true if the specified type denotes an embedded attribute. */ |
| public boolean isEmbeddedAttribute(Object ownerClass, String attribute); |
| |
| /** Returns true if the specified type denotes a simple state attribute. */ |
| public boolean isSimpleStateAttribute(Object ownerClass, String attribute); |
| |
| /** Returns true if the specified attribute denotes a single valued |
| * or collection valued relationship attribute. |
| */ |
| public boolean isRelationship(Object ownerClass, String attribute); |
| |
| /** Returns true if the specified attribute denotes a single valued |
| * relationship attribute. |
| */ |
| public boolean isSingleValuedRelationship( |
| Object ownerClass, String attribute); |
| |
| /** Returns true if the specified attribute denotes a collection valued |
| * relationship attribute. |
| */ |
| public boolean isCollectionValuedRelationship( |
| Object ownerClass, String attribute); |
| |
| /** Returns true if left is assignable from right. */ |
| public boolean isAssignableFrom(Object left, Object right); |
| |
| /** Binary numeric promotion as specified in the JLS, extended by |
| * wrapper classes, BigDecimal and BigInteger. */ |
| public Object extendedBinaryNumericPromotion(Object left, Object right); |
| } |