# Is the documentation empty?
fun is_empty: Bool do return content.is_empty
- redef fun to_json do return content.to_json
- redef fun append_json(b) do content.append_json(b)
+ redef fun serialize_to(v) do content.serialize_to v
+ redef fun accept_json_serializer(v) do content.serialize_to v
end
# A `Jsonable` array of strings.
return "{file_part}{line_start},{column_start}--{line_end},{column_end}"
end
- redef fun to_json do return to_s.to_json
+ redef fun serialize_to(v) do to_s.serialize_to v
+ redef fun accept_json_serializer(v) do to_s.serialize_to v
end
redef class User
super Jsonable
- redef fun to_json do return serialize_to_json(plain=true)
end
# Information about an authenticated used stored on the server to be given to the client.
# Github page url.
var html_url: nullable String is writable
-
- redef fun to_json do return serialize_to_json
end
# A Github user
redef class ISODate
super Jsonable
serialize
-
- redef fun to_json do return serialize_to_json
end
# JsonDeserializer specific for Github objects.
# Repo where this event occured.
var repo: Repo is writable
-
- redef fun to_json do return serialize_to_json
end
# Triggered when a commit comment is created.
json["message"] = message.to_json
end
- redef fun to_json do
- return json.to_json
- end
+ redef fun serialize_to(v) do json.serialize_to v
redef fun to_s do return "[{name}] {super}"
end
end
redef class JsonParseError
+ serialize
# Location of the error in source
var location: nullable Location = null
-
- # Get the JSON representation of `self`.
- #
- # ~~~
- # var err = new JsonParseError("foo", new Position(1, 2, 3, 4, 5, 6))
- # assert err.to_json == "Parsing error: foo"
- # ~~~
- redef fun to_json do
- var l = location
- var m = message
- return if l == null then "Parsing error: {m}" else "Parsing error at {l}: {m}"
- end
-
- redef fun to_s do return to_json
end
class NeoError
super Error
super Jsonable
+ serialize
# The name of the error.
#
# Used to programmatically distinguish this kind of error from others.
- var name: String
-
- redef fun to_json do
- return "\{\"error\":{name.to_json},\"message\":{message.to_json}\}"
- end
+ var name: String is serialize_as "error"
redef fun to_s do return "[{name}] {super}"
end
end
end
- redef fun to_json do return to_json_by_append
-
- # Append the JSON representation of `self` to the specified buffer.
- #
- # For a description of the format, see `JsonGraphStore`.
- #
- # SEE: `to_json`
- redef fun append_json(b) do
- b.append "\{\"nodes\":["
- append_entities_json(nodes, b)
- b.append "],\"edges\":["
- append_entities_json(edges, b)
- b.append "]\}"
+ redef fun accept_json_serializer(v) do
+ v.stream.write "\{\"nodes\":["
+ append_entities_json(nodes, v)
+ v.stream.write "],\"edges\":["
+ append_entities_json(edges, v)
+ v.stream.write "]\}"
end
# Encode `self` in JSON.
#
# For a description of the format, see `JsonGraphStore`.
- #
- # SEE: `append_json`
- private fun append_entities_json(entities: Collection[NeoEntity],
- b: Buffer) do
+ private fun append_entities_json(entities: Collection[NeoEntity], v: JsonSerializer) do
var i = entities.iterator
if i.is_ok then
- i.item.append_json_for(self, b)
+ i.item.append_json_for(self, v)
i.next
for entity in i do
- b.add ','
- entity.append_json_for(self, b)
+ v.stream.write ","
+ entity.append_json_for(self, v)
end
end
end
redef class NeoEntity
# Append the JSON representation of the entity to the specified buffer.
- fun append_json_for(graph: NeoGraph, buffer: Buffer) is abstract
+ fun append_json_for(graph: NeoGraph, v: JsonSerializer) is abstract
end
# Make `NeoNode` `Jsonable`.
properties.add_all(json_properties)
end
- redef fun to_json do return to_json_by_append
-
- # Append the JSON representation of the node to the specified buffer.
- #
- # SEE: `JsonGraph`
- redef fun append_json(b) do
- b.append "\{\"labels\":["
+ redef fun accept_json_serializer(v) do
+ v.stream.write "\{\"labels\":["
var i = labels.iterator
if i.is_ok then
- i.item.append_json(b)
+ i.item.serialize_to v
i.next
for lab in i do
- b.add ','
- lab.append_json(b)
+ v.stream.write ","
+ lab.serialize_to v
end
end
- b.append "],\"properties\":"
- properties.append_json(b)
- b.add '}'
+ v.stream.write "],\"properties\":"
+ properties.serialize_to v
+ v.stream.write "}"
end
redef fun to_s do return to_json
# Append the JSON representation of the node to the specified buffer.
- redef fun append_json_for(graph, buffer) do
- append_json(buffer)
+ redef fun append_json_for(graph, v) do
+ accept_json_serializer v
end
end
# Append the JSON representation of the relationship to the specified buffer.
#
# Use the IDs specfied by `graph.nodes`.
- redef fun append_json_for(graph, buffer) do
- buffer.append "\{\"type\":"
- rel_type.as(not null).append_json(buffer)
- buffer.append ",\"properties\":"
- properties.append_json(buffer)
- buffer.append ",\"from\":"
- graph.nodes.id_of(from).append_json(buffer)
- buffer.append ",\"to\":"
- graph.nodes.id_of(to).append_json(buffer)
- buffer.append "}"
+ redef fun append_json_for(graph, v) do
+ v.stream.write "\{\"type\":"
+ rel_type.as(not null).serialize_to(v)
+ v.stream.write ",\"properties\":"
+ properties.serialize_to(v)
+ v.stream.write ",\"from\":"
+ graph.nodes.id_of(from).serialize_to(v)
+ v.stream.write ",\"to\":"
+ graph.nodes.id_of(to).serialize_to(v)
+ v.stream.write "}"
end
end
# redef fun to_s do return title
# redef fun ==(o) do return o isa SELF and id == o.id
# redef fun hash do return id.hash
-# redef fun to_json do return serialize_to_json
# end
#
# # We then need to subclass the `MongoRepository` to provide Book specific services.
redef fun hash do return id.hash
redef fun to_s do return id
- redef fun to_json do return serialize_to_json
end
# JsonObject can be used as a `RepositoryQuery`.
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
# Returns the validation result as a pretty formated string
fun to_pretty_string: String do
var buffer = new Buffer
tpl.add buffer
buffer.append "var nitdocQuickSearchRawList="
- table.append_json buffer
+ buffer.append table.to_json
buffer.append ";"
return tpl
end
# A QuickSearch result.
private class QuickSearchResult
super Jsonable
+ serialize
# The text of the link.
var txt: String
# The destination of the link.
var url: String
-
- redef fun to_json do
- return "\{\"txt\":{txt.to_json},\"url\":{url.to_json}\}"
- end
end
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
# Return `self` as a JsonObject with references.
#
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
end
redef class Location
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
end
redef class MVisibility
super Jsonable
- redef fun to_json do return to_s.to_json
+ redef fun serialize_to(v) do to_s.serialize_to(v)
end
redef class MPackage
redef class Person
super Jsonable
- redef fun to_json do
- var obj = new JsonObject
- obj["name"] = name
- obj["email"] = email
- obj["page"] = page
- obj["hash"] = (email or else "").md5.to_lower
- return obj.to_json
+ redef fun core_serialize_to(v) do
+ v.serialize_attribute("name", name)
+ v.serialize_attribute("email", email)
+ v.serialize_attribute("page", page)
+ v.serialize_attribute("hash", (email or else "").md5.to_lower)
end
end
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
end
# Rating value of a MEntity
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
end
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
end
redef class Metric
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
end
redef class IntMetric
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
end
# Fullname representation that can be used to build decorated links
class Namespace
super Array[nullable NSEntity]
super NSEntity
+ serialize
redef fun to_s do return self.join("")
- redef fun to_json do return (new JsonArray.from(self)).to_json
+ redef fun serialize_to(v) do to_a.serialize_to(v)
end
# Something that goes in a Namespace
# an infinite loop.
class NSRef
super NSEntity
+ serialize
# The mentity to link to/
var mentity: MEntity
- redef fun to_json do
+ redef fun serialize_to(v) do
var obj = new JsonObject
obj["web_url"] = mentity.web_url
obj["api_url"] = mentity.api_url
obj["name"] = mentity.name
- return obj.to_json
+ obj.serialize_to(v)
end
end
return obj
end
- redef fun to_json do return json.to_json
+ redef fun serialize_to(v) do json.serialize_to(v)
end