com.google.gson.internal.Primitives Java Examples

The following examples show how to use com.google.gson.internal.Primitives. 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: ParameterizedTypeFixtures.java    From gson with Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("unchecked")
@Override public MyParameterizedType<T> deserialize(JsonElement json, Type typeOfT,
    JsonDeserializationContext context) throws JsonParseException {
  Type genericClass = ((ParameterizedType) typeOfT).getActualTypeArguments()[0];
  Class<?> rawType = $Gson$Types.getRawType(genericClass);
  String className = rawType.getSimpleName();
  JsonElement jsonElement = json.getAsJsonObject().get(className);

  T value;
  if (genericClass == Integer.class) {
    value = (T) Integer.valueOf(jsonElement.getAsInt());
  } else if (genericClass == String.class) {
    value = (T) jsonElement.getAsString();
  } else {
    value = (T) jsonElement;
  }

  if (Primitives.isPrimitive(genericClass)) {
    PrimitiveTypeAdapter typeAdapter = new PrimitiveTypeAdapter();
    value = (T) typeAdapter.adaptType(value, rawType);
  }
  return new MyParameterizedType<T>(value);
}
 
Example #2
Source File: ParameterizedTypeFixtures.java    From gson with Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("unchecked")
public static<T> String getExpectedJson(MyParameterizedType<T> obj) {
  Class<T> clazz = (Class<T>) obj.value.getClass();
  boolean addQuotes = !clazz.isArray() && !Primitives.unwrap(clazz).isPrimitive();
  StringBuilder sb = new StringBuilder("{\"");
  sb.append(obj.value.getClass().getSimpleName()).append("\":");
  if (addQuotes) {
    sb.append("\"");
  }
  sb.append(obj.value.toString());
  if (addQuotes) {
    sb.append("\"");
  }
  sb.append("}");
  return sb.toString();
}
 
Example #3
Source File: GsonBuilder.java    From letv with Apache License 2.0 6 votes vote down vote up
public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter) {
    boolean z = (typeAdapter instanceof JsonSerializer) || (typeAdapter instanceof JsonDeserializer) || (typeAdapter instanceof InstanceCreator) || (typeAdapter instanceof TypeAdapter);
    C$Gson$Preconditions.checkArgument(z);
    if (Primitives.isPrimitive(type) || Primitives.isWrapperType(type)) {
        throw new IllegalArgumentException("Cannot register type adapters for " + type);
    }
    if (typeAdapter instanceof InstanceCreator) {
        this.instanceCreators.put(type, (InstanceCreator) typeAdapter);
    }
    if ((typeAdapter instanceof JsonSerializer) || (typeAdapter instanceof JsonDeserializer)) {
        this.factories.add(TreeTypeAdapter.newFactoryWithMatchRawType(TypeToken.get(type), typeAdapter));
    }
    if (typeAdapter instanceof TypeAdapter) {
        this.factories.add(TypeAdapters.newFactory(TypeToken.get(type), (TypeAdapter) typeAdapter));
    }
    return this;
}
 
Example #4
Source File: StorageEntityUtil.java    From attic-aurora with Apache License 2.0 5 votes vote down vote up
private static void validateField(
    String name,
    Object object,
    Field field,
    Set<Field> ignoredFields) {

  try {
    field.setAccessible(true);
    String fullName = name + "." + field.getName();
    Object fieldValue = field.get(object);
    boolean mustBeSet = !ignoredFields.contains(field);
    if (mustBeSet) {
      assertNotNull(fullName + " is null", fieldValue);
    }
    if (fieldValue != null) {
      if (Primitives.isWrapperType(fieldValue.getClass())) {
        // Special-case the mutable hash code field.
        if (mustBeSet && !fullName.endsWith("cachedHashCode")) {
          assertNotEquals(
              "Primitive value must not be default: " + fullName,
              Defaults.defaultValue(Primitives.unwrap(fieldValue.getClass())),
              fieldValue);
        }
      } else {
        assertFullyPopulated(fullName, fieldValue, ignoredFields);
      }
    }
  } catch (IllegalAccessException e) {
    throw Throwables.propagate(e);
  }
}
 
Example #5
Source File: EasySave.java    From Easy-Save with MIT License 5 votes vote down vote up
/**
 * Retrieving only one object
 * @param key - Like saving preferences, this String is a key to save and get specific data
 * @param objectModel - Base Class that you want to recover. For example String.class, or MyObject.class
 * @return the saved object, or {@code null} if the object does not exists
 */
public <T> T retrieveModel(String key, Class<T> objectModel) {
    String modelString = EasySaveUtil.retrieveData(key, context);
    Object model = null;
    try {
        model = new Gson().fromJson(modelString, objectModel);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return Primitives.wrap(objectModel).cast(model);
}
 
Example #6
Source File: FieldAttributeModel.java    From che with Eclipse Public License 2.0 5 votes vote down vote up
/**
 * Build a new field model based on the name and Java type
 *
 * @param fieldName the name of the field
 * @param type the Java raw type that will allow further analyzes
 * @param declarationClass
 */
public FieldAttributeModel(String fieldName, Type type, Class declarationClass) {
  this.fieldName = fieldName;
  this.type = type;
  this.typeName = convertType(type);
  this.dtsType = convertTypeForDTS(declarationClass, type);
  this.declarationClass = declarationClass;

  if (typeName.startsWith("Array<") || typeName.startsWith("Map<")) {
    this.needInitialize = true;
  }

  if (this.type instanceof ParameterizedType) {
    ParameterizedType parameterizedType = (ParameterizedType) this.type;
    Type rawType = parameterizedType.getRawType();
    analyzeParametrizedType(parameterizedType, rawType);
  } else if (Primitives.isPrimitive(this.type)
      || Primitives.isWrapperType(this.type)
      || String.class.equals(this.type)) {
    this.isPrimitive = true;
  } else if (this.type instanceof Class && ((Class) this.type).isAnnotationPresent(DTO.class)) {
    this.isDto = true;
    dtoImpl = this.type.getTypeName() + "Impl";
  } else if (this.type instanceof Class && ((Class) this.type).isEnum()) {
    this.isEnum = true;
  }
}
 
Example #7
Source File: Gson.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public Object fromJson(Reader reader, Class class1)
{
    JsonReader jsonreader = new JsonReader(reader);
    Object obj = fromJson(jsonreader, ((Type) (class1)));
    a(obj, jsonreader);
    return Primitives.wrap(class1).cast(obj);
}
 
Example #8
Source File: ReflectiveTypeAdapterFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
private j a(Gson gson, Field field, String s, TypeToken typetoken, boolean flag, boolean flag1)
{
    return new i(this, s, flag, flag1, gson, typetoken, field, Primitives.isPrimitive(typetoken.getRawType()));
}
 
Example #9
Source File: Gson.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public Object fromJson(String s, Class class1)
{
    Object obj = fromJson(s, ((Type) (class1)));
    return Primitives.wrap(class1).cast(obj);
}
 
Example #10
Source File: Gson.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public Object fromJson(JsonElement jsonelement, Class class1)
{
    Object obj = fromJson(jsonelement, ((Type) (class1)));
    return Primitives.wrap(class1).cast(obj);
}
 
Example #11
Source File: Resource.java    From zeppelin with Apache License 2.0 4 votes vote down vote up
public <T> T get(Class<T> clazz) {
  return Primitives.wrap(clazz).cast(r);
}
 
Example #12
Source File: Gson.java    From letv with Apache License 2.0 4 votes vote down vote up
public <T> T fromJson(JsonElement json, Class<T> classOfT) throws JsonSyntaxException {
    return Primitives.wrap(classOfT).cast(fromJson(json, (Type) classOfT));
}
 
Example #13
Source File: Gson.java    From letv with Apache License 2.0 4 votes vote down vote up
public <T> T fromJson(Reader json, Class<T> classOfT) throws JsonSyntaxException, JsonIOException {
    JsonReader jsonReader = new JsonReader(json);
    Object object = fromJson(jsonReader, (Type) classOfT);
    assertFullConsumption(object, jsonReader);
    return Primitives.wrap(classOfT).cast(object);
}
 
Example #14
Source File: Gson.java    From letv with Apache License 2.0 4 votes vote down vote up
public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
    return Primitives.wrap(classOfT).cast(fromJson(json, (Type) classOfT));
}
 
Example #15
Source File: Gson.java    From gson with Apache License 2.0 3 votes vote down vote up
/**
 * This method deserializes the Json read from the specified reader into an object of the
 * specified class. It is not suitable to use if the specified class is a generic type since it
 * will not have the generic type information because of the Type Erasure feature of Java.
 * Therefore, this method should not be used if the desired type is a generic type. Note that
 * this method works fine if the any of the fields of the specified object are generics, just the
 * object itself should not be a generic type. For the cases when the object is of generic type,
 * invoke {@link #fromJson(Reader, Type)}. If you have the Json in a String form instead of a
 * {@link Reader}, use {@link #fromJson(String, Class)} instead.
 *
 * @param <T> the type of the desired object
 * @param json the reader producing the Json from which the object is to be deserialized.
 * @param classOfT the class of T
 * @return an object of type T from the string. Returns {@code null} if {@code json} is at EOF.
 * @throws JsonIOException if there was a problem reading from the Reader
 * @throws JsonSyntaxException if json is not a valid representation for an object of type
 * @since 1.2
 */
public <T> T fromJson(Reader json, Class<T> classOfT) throws JsonSyntaxException, JsonIOException {
  JsonReader jsonReader = newJsonReader(json);
  Object object = fromJson(jsonReader, classOfT);
  assertFullConsumption(object, jsonReader);
  return Primitives.wrap(classOfT).cast(object);
}
 
Example #16
Source File: Gson.java    From framework with GNU Affero General Public License v3.0 3 votes vote down vote up
/**
 * This method deserializes the Json read from the specified reader into an object of the
 * specified class. It is not suitable to use if the specified class is a generic type since it
 * will not have the generic type information because of the Type Erasure feature of Java.
 * Therefore, this method should not be used if the desired type is a generic type. Note that
 * this method works fine if the any of the fields of the specified object are generics, just the
 * object itself should not be a generic type. For the cases when the object is of generic type,
 * invoke {@link #fromJson(Reader, Type)}. If you have the Json in a String form instead of a
 * {@link Reader}, use {@link #fromJson(String, Class)} instead.
 *
 * @param <T> the type of the desired object
 * @param json the reader producing the Json from which the object is to be deserialized.
 * @param classOfT the class of T
 * @return an object of type T from the string. Returns {@code null} if {@code json} is at EOF.
 * @throws JsonIOException if there was a problem reading from the Reader
 * @throws JsonSyntaxException if json is not a valid representation for an object of type
 * @since 1.2
 */
public <T> T fromJson(Reader json, Class<T> classOfT) throws JsonSyntaxException, JsonIOException {
  JsonReader jsonReader = new JsonReader(json);
  Object object = fromJson(jsonReader, classOfT);
  assertFullConsumption(object, jsonReader);
  return Primitives.wrap(classOfT).cast(object);
}
 
Example #17
Source File: Gson.java    From gson with Apache License 2.0 2 votes vote down vote up
/**
 * This method deserializes the specified Json into an object of the specified class. It is not
 * suitable to use if the specified class is a generic type since it will not have the generic
 * type information because of the Type Erasure feature of Java. Therefore, this method should not
 * be used if the desired type is a generic type. Note that this method works fine if the any of
 * the fields of the specified object are generics, just the object itself should not be a
 * generic type. For the cases when the object is of generic type, invoke
 * {@link #fromJson(String, Type)}. If you have the Json in a {@link Reader} instead of
 * a String, use {@link #fromJson(Reader, Class)} instead.
 *
 * @param <T> the type of the desired object
 * @param json the string from which the object is to be deserialized
 * @param classOfT the class of T
 * @return an object of type T from the string. Returns {@code null} if {@code json} is {@code null}
 * or if {@code json} is empty.
 * @throws JsonSyntaxException if json is not a valid representation for an object of type
 * classOfT
 */
public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
  Object object = fromJson(json, (Type) classOfT);
  return Primitives.wrap(classOfT).cast(object);
}
 
Example #18
Source File: Gson.java    From gson with Apache License 2.0 2 votes vote down vote up
/**
 * This method deserializes the Json read from the specified parse tree into an object of the
 * specified type. It is not suitable to use if the specified class is a generic type since it
 * will not have the generic type information because of the Type Erasure feature of Java.
 * Therefore, this method should not be used if the desired type is a generic type. Note that
 * this method works fine if the any of the fields of the specified object are generics, just the
 * object itself should not be a generic type. For the cases when the object is of generic type,
 * invoke {@link #fromJson(JsonElement, Type)}.
 * @param <T> the type of the desired object
 * @param json the root of the parse tree of {@link JsonElement}s from which the object is to
 * be deserialized
 * @param classOfT The class of T
 * @return an object of type T from the json. Returns {@code null} if {@code json} is {@code null}
 * or if {@code json} is empty.
 * @throws JsonSyntaxException if json is not a valid representation for an object of type typeOfT
 * @since 1.3
 */
public <T> T fromJson(JsonElement json, Class<T> classOfT) throws JsonSyntaxException {
  Object object = fromJson(json, (Type) classOfT);
  return Primitives.wrap(classOfT).cast(object);
}
 
Example #19
Source File: Gson.java    From framework with GNU Affero General Public License v3.0 2 votes vote down vote up
/**
 * This method deserializes the specified Json into an object of the specified class. It is not
 * suitable to use if the specified class is a generic type since it will not have the generic
 * type information because of the Type Erasure feature of Java. Therefore, this method should not
 * be used if the desired type is a generic type. Note that this method works fine if the any of
 * the fields of the specified object are generics, just the object itself should not be a
 * generic type. For the cases when the object is of generic type, invoke
 * {@link #fromJson(String, Type)}. If you have the Json in a {@link Reader} instead of
 * a String, use {@link #fromJson(Reader, Class)} instead.
 *
 * @param <T> the type of the desired object
 * @param json the string from which the object is to be deserialized
 * @param classOfT the class of T
 * @return an object of type T from the string. Returns {@code null} if {@code json} is {@code null}.
 * @throws JsonSyntaxException if json is not a valid representation for an object of type
 * classOfT
 */
public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
  Object object = fromJson(json, (Type) classOfT);
  return Primitives.wrap(classOfT).cast(object);
}
 
Example #20
Source File: Gson.java    From framework with GNU Affero General Public License v3.0 2 votes vote down vote up
/**
 * This method deserializes the Json read from the specified parse tree into an object of the
 * specified type. It is not suitable to use if the specified class is a generic type since it
 * will not have the generic type information because of the Type Erasure feature of Java.
 * Therefore, this method should not be used if the desired type is a generic type. Note that
 * this method works fine if the any of the fields of the specified object are generics, just the
 * object itself should not be a generic type. For the cases when the object is of generic type,
 * invoke {@link #fromJson(JsonElement, Type)}.
 * @param <T> the type of the desired object
 * @param json the root of the parse tree of {@link JsonElement}s from which the object is to
 * be deserialized
 * @param classOfT The class of T
 * @return an object of type T from the json. Returns {@code null} if {@code json} is {@code null}.
 * @throws JsonSyntaxException if json is not a valid representation for an object of type typeOfT
 * @since 1.3
 */
public <T> T fromJson(JsonElement json, Class<T> classOfT) throws JsonSyntaxException {
  Object object = fromJson(json, (Type) classOfT);
  return Primitives.wrap(classOfT).cast(object);
}