X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fcom%2Fgoogle%2Fgson%2Finternal%2Fbind%2FArrayTypeAdapter.java;fp=src%2Fcom%2Fgoogle%2Fgson%2Finternal%2Fbind%2FArrayTypeAdapter.java;h=0000000000000000000000000000000000000000;hb=5c86ae2f45d293408d98a291e826948052d207bc;hp=55d7e309521fa1d01053492d20a052d9a7f67d31;hpb=5cf4714f0675349ed599707e024cf0e70fe114b2;p=unical.git diff --git a/src/com/google/gson/internal/bind/ArrayTypeAdapter.java b/src/com/google/gson/internal/bind/ArrayTypeAdapter.java deleted file mode 100644 index 55d7e30..0000000 --- a/src/com/google/gson/internal/bind/ArrayTypeAdapter.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.gson.internal.bind; - -import java.io.IOException; -import java.lang.reflect.Array; -import java.lang.reflect.GenericArrayType; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.List; - -import com.google.gson.Gson; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.internal.$Gson$Types; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonToken; -import com.google.gson.stream.JsonWriter; - -/** - * Adapt an array of objects. - */ -public final class ArrayTypeAdapter extends TypeAdapter { - public static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() { - @SuppressWarnings({"unchecked", "rawtypes"}) - public TypeAdapter create(Gson gson, TypeToken typeToken) { - Type type = typeToken.getType(); - if (!(type instanceof GenericArrayType || type instanceof Class && ((Class) type).isArray())) { - return null; - } - - Type componentType = $Gson$Types.getArrayComponentType(type); - TypeAdapter componentTypeAdapter = gson.getAdapter(TypeToken.get(componentType)); - return new ArrayTypeAdapter( - gson, componentTypeAdapter, $Gson$Types.getRawType(componentType)); - } - }; - - private final Class componentType; - private final TypeAdapter componentTypeAdapter; - - public ArrayTypeAdapter(Gson context, TypeAdapter componentTypeAdapter, Class componentType) { - this.componentTypeAdapter = - new TypeAdapterRuntimeTypeWrapper(context, componentTypeAdapter, componentType); - this.componentType = componentType; - } - - public Object read(JsonReader in) throws IOException { - if (in.peek() == JsonToken.NULL) { - in.nextNull(); - return null; - } - - List list = new ArrayList(); - in.beginArray(); - while (in.hasNext()) { - E instance = componentTypeAdapter.read(in); - list.add(instance); - } - in.endArray(); - Object array = Array.newInstance(componentType, list.size()); - for (int i = 0; i < list.size(); i++) { - Array.set(array, i, list.get(i)); - } - return array; - } - - @SuppressWarnings("unchecked") - @Override public void write(JsonWriter out, Object array) throws IOException { - if (array == null) { - out.nullValue(); - return; - } - - out.beginArray(); - for (int i = 0, length = Array.getLength(array); i < length; i++) { - E value = (E) Array.get(array, i); - componentTypeAdapter.write(out, value); - } - out.endArray(); - } -}