All Downloads are FREE. Search and download functionalities are using the official Maven repository.

basis.form.JsonVariantFactory.scala Maven / Gradle / Ivy

//      ____              ___
//     / __ | ___  ____  /__/___      A library of building blocks
//    / __  / __ |/ ___|/  / ___|
//   / /_/ / /_/ /\__ \/  /\__ \      (c) 2012-2015 Chris Sachs
//  |_____/\_____\____/__/\____/      http://basis.reify.it

package basis.form

import basis._
import basis.collections._
import basis.text._

private[form] final class JsonVariantFactory[V <: JsonVariant](val variant: V) extends JsonFactory {
  import variant._

  override type JsonValue     = AnyForm
  override type JsonObject    = ObjectForm
  override type JsonArray     = SeqForm
  override type JsonString    = TextForm
  override type JsonNumber    = NumberForm
  override type JsonBoolean   = BoolForm
  override type JsonNull      = NullForm
  override type JsonUndefined = NoForm

  override def JsonObjectValue(json: JsonObject): JsonValue = variant.JsonObjectValue(json)
  override def JsonArrayValue(json: JsonArray): JsonValue   = variant.JsonArrayValue(json)
  override def JsonStringValue(json: JsonString): JsonValue = variant.JsonStringValue(json)

  override def JsonObjectBuilder: Builder[(String, JsonValue)] with State[JsonObject] = variant.JsonObjectBuilder
  override def JsonArrayBuilder: Builder[JsonValue] with State[JsonArray]             = variant.JsonArrayBuilder
  override def JsonStringBuilder: StringBuilder with State[JsonString]                = variant.JsonStringBuilder

  override def JsonString(value: String): JsonString  = variant.JsonString(value)
  override def JsonNumber(value: String): JsonNumber  = variant.JsonNumber(value)
  override def JsonInteger(value: String): JsonNumber = variant.JsonNumber(value)
  override def JsonTrue: JsonBoolean                  = variant.JsonTrue
  override def JsonFalse: JsonBoolean                 = variant.JsonFalse
  override def JsonNull: JsonNull                     = variant.JsonNull
  override def JsonUndefined: JsonUndefined           = variant.JsonUndefined

  override def JsonNew(identifier: String, arguments: JsonArray): JsonValue = variant.JsonNew(identifier, arguments)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy