org.hibernate.type.PrimitiveType Java Examples

The following examples show how to use org.hibernate.type.PrimitiveType. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Array.java    From lams with GNU General Public License v2.0 6 votes vote down vote up
public Class getElementClass() throws MappingException {
	if ( elementClassName == null ) {
		org.hibernate.type.Type elementType = getElement().getType();
		return isPrimitiveArray()
				? ( (PrimitiveType) elementType ).getPrimitiveClass()
				: elementType.getReturnedClass();
	}
	else {
		try {
			return getMetadata().getMetadataBuildingOptions()
					.getServiceRegistry()
					.getService( ClassLoaderService.class )
					.classForName( elementClassName );
		}
		catch (ClassLoadingException e) {
			throw new MappingException( e );
		}
	}
}
 
Example #2
Source File: Array.java    From cacheonix-core with GNU Lesser General Public License v2.1 6 votes vote down vote up
public Class getElementClass() throws MappingException {
	if (elementClassName==null) {
		org.hibernate.type.Type elementType = getElement().getType();
		return isPrimitiveArray() ?
			( (PrimitiveType) elementType ).getPrimitiveClass() :
			elementType.getReturnedClass();
	}
	else {
		try {
			return ReflectHelper.classForName(elementClassName);
		}
		catch (ClassNotFoundException cnfe) {
			throw new MappingException(cnfe);
		}
	}
}
 
Example #3
Source File: ReflectHelper.java    From cacheonix-core with GNU Lesser General Public License v2.1 6 votes vote down vote up
public static Constructor getConstructor(Class clazz, Type[] types) throws PropertyNotFoundException {
	final Constructor[] candidates = clazz.getConstructors();
	for ( int i=0; i<candidates.length; i++ ) {
		final Constructor constructor = candidates[i];
		final Class[] params = constructor.getParameterTypes();
		if ( params.length==types.length ) {
			boolean found = true;
			for ( int j=0; j<params.length; j++ ) {
				final boolean ok = params[j].isAssignableFrom( types[j].getReturnedClass() ) || (
					types[j] instanceof PrimitiveType &&
					params[j] == ( (PrimitiveType) types[j] ).getPrimitiveClass()
				);
				if (!ok) {
					found = false;
					break;
				}
			}
			if (found) {
				if ( !isPublic(clazz, constructor) ) constructor.setAccessible(true);
				return constructor;
			}
		}
	}
	throw new PropertyNotFoundException( "no appropriate constructor in class: " + clazz.getName() );
}
 
Example #4
Source File: ReflectHelper.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Retrieve a constructor for the given class, with arguments matching the specified Hibernate mapping
 * {@link Type types}.
 *
 * @param clazz The class needing instantiation
 * @param types The types representing the required ctor param signature
 * @return The matching constructor.
 * @throws PropertyNotFoundException Indicates we could not locate an appropriate constructor (todo : again with PropertyNotFoundException???)
 */
public static Constructor getConstructor(Class clazz, Type[] types) throws PropertyNotFoundException {
	final Constructor[] candidates = clazz.getConstructors();
	Constructor constructor = null;
	int numberOfMatchingConstructors = 0;
	for ( final Constructor candidate : candidates ) {
		final Class[] params = candidate.getParameterTypes();
		if ( params.length == types.length ) {
			boolean found = true;
			for ( int j = 0; j < params.length; j++ ) {
				final boolean ok = types[j] == null || params[j].isAssignableFrom( types[j].getReturnedClass() ) || (
						types[j] instanceof PrimitiveType &&
								params[j] == ( (PrimitiveType) types[j] ).getPrimitiveClass()
				);
				if ( !ok ) {
					found = false;
					break;
				}
			}
			if ( found ) {
				numberOfMatchingConstructors ++;
				ensureAccessibility( candidate );
				constructor = candidate;
			}
		}
	}

	if ( numberOfMatchingConstructors == 1 ) {
		return constructor;
	}
	throw new PropertyNotFoundException( "no appropriate constructor in class: " + clazz.getName() );

}
 
Example #5
Source File: ConstructorNode.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
private String formatMissingContructorExceptionMessage(String className) {
	String[] params = new String[constructorArgumentTypes.length];
	for ( int j = 0; j < constructorArgumentTypes.length; j++ ) {
		params[j] = constructorArgumentTypes[j] instanceof PrimitiveType
				? ( (PrimitiveType) constructorArgumentTypes[j] ).getPrimitiveClass().getName()
				: constructorArgumentTypes[j].getReturnedClass().getName();
	}
	String formattedList = params.length == 0 ? "no arguments constructor" : String.join( ", ", params );
	return String.format(
			"Unable to locate appropriate constructor on class [%s]. Expected arguments are: %s",
			className, formattedList
	);
}