private GsonBuilder registerTypeHierarchyAdapter( Class<?> baseType, Object typeAdapter, boolean isSystem) { $Gson$Preconditions.checkArgument( typeAdapter instanceof JsonSerializer<?> || typeAdapter instanceof JsonDeserializer<?> || typeAdapter instanceof InstanceCreator<?>); if (typeAdapter instanceof InstanceCreator<?>) { registerInstanceCreatorForTypeHierarchy(baseType, (InstanceCreator<?>) typeAdapter, isSystem); } if (typeAdapter instanceof JsonSerializer<?>) { registerSerializerForTypeHierarchy(baseType, (JsonSerializer<?>) typeAdapter, isSystem); } if (typeAdapter instanceof JsonDeserializer<?>) { registerDeserializerForTypeHierarchy(baseType, (JsonDeserializer<?>) typeAdapter, isSystem); } return this; }