diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemPrototype.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemPrototype.kt index f8545a45..cbc5a7df 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemPrototype.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ArmorItemPrototype.kt @@ -1,15 +1,10 @@ package ru.dbotthepony.kstarbound.defs.item import com.google.common.collect.ImmutableList -import ru.dbotthepony.kstarbound.Starbound import ru.dbotthepony.kstarbound.defs.DirectAssetReference import ru.dbotthepony.kstarbound.defs.util.enrollMap -import ru.dbotthepony.kstarbound.io.json.builder.BuilderAdapter import ru.dbotthepony.kstarbound.io.json.builder.JsonBuilder import ru.dbotthepony.kstarbound.io.json.builder.JsonIgnoreProperty -import ru.dbotthepony.kstarbound.io.json.util.asJsonObject -import ru.dbotthepony.kstarbound.io.json.util.asList -import ru.dbotthepony.kstarbound.io.json.neverNull import ru.dbotthepony.kstarbound.util.NotNullVar @JsonBuilder diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/LazyTypeProvider.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/LazyTypeProvider.kt deleted file mode 100644 index 1b79210c..00000000 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/LazyTypeProvider.kt +++ /dev/null @@ -1,18 +0,0 @@ -package ru.dbotthepony.kstarbound.io.json.util - -import com.google.gson.TypeAdapter -import com.google.gson.stream.JsonReader -import com.google.gson.stream.JsonWriter -import ru.dbotthepony.kstarbound.Starbound - -class LazyTypeProvider(private val bound: Class, private val resolver: (Class) -> TypeAdapter = Starbound::getTypeAdapter) : TypeAdapter() { - private val resolved by lazy { resolver(bound) } - - override fun write(out: JsonWriter, value: T) { - resolved.write(out, value) - } - - override fun read(`in`: JsonReader): T { - return resolved.read(`in`) - } -} diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/ListAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/ListAdapter.kt deleted file mode 100644 index 248aa581..00000000 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/ListAdapter.kt +++ /dev/null @@ -1,51 +0,0 @@ -package ru.dbotthepony.kstarbound.io.json.util - -import com.google.common.collect.ImmutableList -import com.google.gson.JsonSyntaxException -import com.google.gson.TypeAdapter -import com.google.gson.stream.JsonReader -import com.google.gson.stream.JsonToken -import com.google.gson.stream.JsonWriter - -fun TypeAdapter.asList(valueTransformer: (T) -> T = { it }): TypeAdapter> { - return ListAdapter(this, valueTransformer = valueTransformer) -} - -class ListAdapter(val elementAdapter: TypeAdapter, val valueTransformer: (T) -> T = { it }) : TypeAdapter>() { - constructor(type: Class, valueTransformer: (T) -> T = { it }) : this(LazyTypeProvider(type), valueTransformer = valueTransformer) - - override fun write(out: JsonWriter, value: List) { - if (value.size == 1) { - elementAdapter.write(out, value[0]) - return - } - - out.beginArray() - - for (v in value) { - elementAdapter.write(out, v) - } - - out.endArray() - } - - override fun read(reader: JsonReader): List { - if (reader.peek() != JsonToken.BEGIN_ARRAY) { - // не массив, возможно упрощение структуры "a": [value] -> "a": value - return ImmutableList.of(elementAdapter.read(reader) ?: throw JsonSyntaxException("List does not accept nulls")) - } - - reader.beginArray() - - val builder = ImmutableList.builder() - - while (reader.peek() != JsonToken.END_ARRAY) { - val readObject = elementAdapter.read(reader) ?: throw JsonSyntaxException("List does not accept nulls") - builder.add(valueTransformer(readObject)) - } - - reader.endArray() - - return builder.build() - } -} diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/MapAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/MapAdapter.kt deleted file mode 100644 index c6871fd8..00000000 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/MapAdapter.kt +++ /dev/null @@ -1,40 +0,0 @@ -package ru.dbotthepony.kstarbound.io.json.util - -import com.google.common.collect.ImmutableMap -import com.google.gson.TypeAdapter -import com.google.gson.stream.JsonReader -import com.google.gson.stream.JsonToken -import com.google.gson.stream.JsonWriter - -class MapAdapter(val keyAdapter: TypeAdapter, val valueAdapter: TypeAdapter) : TypeAdapter>() { - constructor(keyType: Class, valueType: Class) : this(LazyTypeProvider(keyType), LazyTypeProvider(valueType)) - - override fun write(out: JsonWriter, value: Map) { - out.beginArray() - - for ((k, v) in value) { - out.beginArray() - keyAdapter.write(out, k) - valueAdapter.write(out, v) - out.endArray() - } - - out.endArray() - } - - override fun read(reader: JsonReader): Map { - reader.beginArray() - - val builder = ImmutableMap.builder() - - while (reader.peek() != JsonToken.END_ARRAY) { - reader.beginArray() - builder.put(keyAdapter.read(reader), valueAdapter.read(reader)) - reader.endArray() - } - - reader.endArray() - - return builder.build() - } -} diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/String2ObjectAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/String2ObjectAdapter.kt deleted file mode 100644 index 54914adc..00000000 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/util/String2ObjectAdapter.kt +++ /dev/null @@ -1,41 +0,0 @@ -package ru.dbotthepony.kstarbound.io.json.util - -import com.google.common.collect.ImmutableMap -import com.google.gson.TypeAdapter -import com.google.gson.stream.JsonReader -import com.google.gson.stream.JsonToken -import com.google.gson.stream.JsonWriter -import ru.dbotthepony.kstarbound.Starbound - -fun TypeAdapter.asJsonObject(valueTransformer: (T) -> T = { it }): TypeAdapter> { - return String2ObjectAdapter(this, valueTransformer = valueTransformer) -} - -class String2ObjectAdapter(val adapter: TypeAdapter, val valueTransformer: (T) -> T = { it }) : TypeAdapter>() { - constructor(type: Class, valueTransformer: (T) -> T = { it }) : this(LazyTypeProvider(type), valueTransformer = valueTransformer) - - override fun write(out: JsonWriter, value: Map) { - out.beginObject() - - for ((k, v) in value) { - out.name(k) - adapter.write(out, v) - } - - out.endObject() - } - - override fun read(reader: JsonReader): Map { - val builder = ImmutableMap.builder() - - reader.beginObject() - - while (reader.peek() != JsonToken.END_OBJECT) { - builder.put(Starbound.STRING_INTERNER.intern(reader.nextName()), valueTransformer(adapter.read(reader))) - } - - reader.endObject() - - return builder.build() - } -}