code: public static boolean isPrimitive(Object value) {
  		TypeCode typeCode = TypeConverter.toTypeCode(value);
  		return typeCode == TypeCode.String || typeCode == TypeCode.Enum || typeCode == TypeCode.Boolean
  				|| typeCode == TypeCode.Integer || typeCode == TypeCode.Long || typeCode == TypeCode.Float
  				|| typeCode == TypeCode.Double || typeCode == TypeCode.DateTime || typeCode == TypeCode.Duration;
  	}
docs: Checks if value has primitive type.
  
  Primitive types are: numbers, strings, booleans, date and time. Complex
  (non-primitive types are): objects, maps and arrays
  
  @param value a value to check
  @return true if the value has primitive type and false if value type is
  complex.
  
  @see TypeConverter#toTypeCode(Object)
  @see TypeCode