List of usage examples for com.google.common.reflect TypeToken isPrimitive
public final boolean isPrimitive()
From source file:com.microsoft.rest.Validator.java
/** * Validates a user provided required parameter to be not null. * An {@link IllegalArgumentException} is thrown if a property fails the validation. * * @param parameter the parameter to validate * @throws IllegalArgumentException thrown when the Validator determines the argument is invalid *//* w w w .j a v a 2 s. co m*/ public static void validate(Object parameter) throws IllegalArgumentException { // Validation of top level payload is done outside if (parameter == null) { return; } Class parameterType = parameter.getClass(); TypeToken<?> parameterToken = TypeToken.of(parameterType); if (Primitives.isWrapperType(parameterType)) { parameterToken = parameterToken.unwrap(); } if (parameterToken.isPrimitive() || parameterType.isEnum() || parameterToken.isAssignableFrom(LocalDate.class) || parameterToken.isAssignableFrom(DateTime.class) || parameterToken.isAssignableFrom(String.class) || parameterToken.isAssignableFrom(DateTimeRfc1123.class) || parameterToken.isAssignableFrom(Period.class)) { return; } for (Class<?> c : parameterToken.getTypes().classes().rawTypes()) { // Ignore checks for Object type. if (c.isAssignableFrom(Object.class)) { continue; } for (Field field : c.getDeclaredFields()) { field.setAccessible(true); JsonProperty annotation = field.getAnnotation(JsonProperty.class); Object property; try { property = field.get(parameter); } catch (IllegalAccessException e) { throw new IllegalArgumentException(e.getMessage(), e); } if (property == null) { if (annotation != null && annotation.required()) { throw new IllegalArgumentException(field.getName() + " is required and cannot be null."); } } else { try { Class<?> propertyType = property.getClass(); if (TypeToken.of(List.class).isAssignableFrom(propertyType)) { List<?> items = (List<?>) property; for (Object item : items) { Validator.validate(item); } } else if (TypeToken.of(Map.class).isAssignableFrom(propertyType)) { Map<?, ?> entries = (Map<?, ?>) property; for (Map.Entry<?, ?> entry : entries.entrySet()) { Validator.validate(entry.getKey()); Validator.validate(entry.getValue()); } } else if (parameterType != propertyType) { Validator.validate(property); } } catch (IllegalArgumentException ex) { if (ex.getCause() == null) { // Build property chain throw new IllegalArgumentException(field.getName() + "." + ex.getMessage()); } else { throw ex; } } } } } }
From source file:org.apache.cassandra.cql3.functions.JavaBasedUDFunction.java
private static String composeMethod(TypeToken<?> type) { return (type.isPrimitive()) ? ("super.compose_" + type.getRawType().getName()) : "super.compose"; }
From source file:net.femtoparsec.binding.property.BeanPropertyHelper.java
/** * * @param resultTypeToken the type token to check * @param requestedResult the requested casting type * @return true requestedResult can be used for a {@link net.femtoparsec.binding.PathProperty} that has as <code>resultTypToken</code> as last type token in his property path. *//*from w ww . j a va 2 s . c o m*/ public static boolean isValidRequestedResult(TypeToken<?> resultTypeToken, Class<?> requestedResult) { //we need to check if the resultTypeToken can be cast (converted) to the requestResult final Class<?> resultRawType = resultTypeToken.getRawType(); if (requestedResult.isPrimitive()) { return requestedResult == resultRawType; } else if (resultTypeToken.isPrimitive()) { return isBoxer(resultRawType, requestedResult); } else { return requestedResult.isAssignableFrom(resultRawType); } }
From source file:com.theoriginalbit.peripheral.converter.TypeConverter.java
/** * {@inheritDoc}/*from w w w . ja va 2 s . co m*/ */ @Override public Object toJava(Object obj, Type expected) throws TypeConversionException { if (obj == null) { final TypeToken<?> type = TypeToken.of(expected); if (!type.isPrimitive()) { throw new TypeConversionException("expected %s, got nil", type); } return null; } for (IGenericJavaTypeConverter converter : inbound) { Object response = converter.toJava(this, obj, expected); if (response != null) return response; } throw new TypeConversionException("expected %s, got %s", TypeToken.of(expected).getRawType().getSimpleName().toLowerCase(), obj.getClass().getSimpleName().toLowerCase()); }
From source file:com.datastax.driver.core.TypeCodec.java
protected TypeCodec(DataType cqlType, TypeToken<T> javaType) { checkNotNull(cqlType, "cqlType cannot be null"); checkNotNull(javaType, "javaType cannot be null"); checkArgument(!javaType.isPrimitive(), "Cannot create a codec for a primitive Java type (%s), please use the wrapper type instead", javaType);//from www . ja v a2 s . c om this.cqlType = cqlType; this.javaType = javaType; }