Remove possibility of NULL for properties with fundamental types

It is not supported by GObject.
This commit is contained in:
Gergely Polonkai 2016-03-17 17:02:08 +01:00 committed by Gergely Polonkai
parent 34b0bea889
commit 5254776d4f
7 changed files with 36 additions and 40 deletions

View File

@ -464,39 +464,30 @@ namespace Matrix {
} }
public class EventContext : JsonCompact { public class EventContext : JsonCompact {
public int? before_limit { get; set; default = null; } public int before_limit { get; set; default = -1; }
public int? after_limit { get; set; default = null; } public int after_limit { get; set; default = -1; }
public bool? include_profile { get; set; default = null; } public bool include_profile { get; set; default = false; }
public override Json.Node? public override Json.Node?
get_json_node() get_json_node()
throws Matrix.Error throws Matrix.Error
{ {
if ((before_limit == null)
&& (after_limit == null)
&& (include_profile == null))
{
return null;
}
var builder = new Json.Builder(); var builder = new Json.Builder();
builder.begin_object(); builder.begin_object();
if (before_limit != null) { if (before_limit >= 0) {
builder.set_member_name("before_limit"); builder.set_member_name("before_limit");
builder.add_int_value(before_limit); builder.add_int_value(before_limit);
} }
if (after_limit != null) { if (after_limit >= 0) {
builder.set_member_name("after_limit"); builder.set_member_name("after_limit");
builder.add_int_value(after_limit); builder.add_int_value(after_limit);
} }
if (include_profile != null) {
builder.set_member_name("include_profile"); builder.set_member_name("include_profile");
builder.add_boolean_value(include_profile); builder.add_boolean_value(include_profile);
}
builder.end_object(); builder.end_object();
@ -505,14 +496,15 @@ namespace Matrix {
} }
public class SearchGrouping : JsonCompact { public class SearchGrouping : JsonCompact {
public SearchGroupBy? key { get; set; default = null; } public SearchGroupBy key { get; set; default = SearchGroupBy.UNKNOWN; }
public override Json.Node? public override Json.Node?
get_json_node() get_json_node()
throws Matrix.Error throws Matrix.Error
{ {
if (key == null) { if (key == SearchGroupBy.UNKNOWN) {
return null; throw new Matrix.Error.INCOMPLETE(
"Won't generate SearchGrouping without a valid key");
} }
var builder = new Json.Builder(); var builder = new Json.Builder();
@ -567,7 +559,7 @@ namespace Matrix {
public SearchOrder order_by { get; set; default = SearchOrder.RECENT; } public SearchOrder order_by { get; set; default = SearchOrder.RECENT; }
public SearchKey[] keys { get; set; } public SearchKey[] keys { get; set; }
public EventContext? event_context { get; set; default = null; } public EventContext? event_context { get; set; default = null; }
public bool? include_state { get; set; default = false; } public bool include_state { get; set; default = false; }
public string? filter_id { get; set; default = null; } public string? filter_id { get; set; default = null; }
public Filter? filter { get; set; default = null; } public Filter? filter { get; set; default = null; }
public string search_term { get; set; } public string search_term { get; set; }
@ -620,10 +612,8 @@ namespace Matrix {
builder.add_value(node); builder.add_value(node);
} }
if (include_state != null) {
builder.set_member_name("include_state"); builder.set_member_name("include_state");
builder.add_boolean_value(include_state); builder.add_boolean_value(include_state);
}
if ((filter != null) if ((filter != null)
&& ((node = filter.get_json_node()) != null)) { && ((node = filter.get_json_node()) != null)) {

View File

@ -23,7 +23,7 @@ public class Matrix.Event.CallAnswer : Matrix.Event.Call {
/** /**
* The type of session description. * The type of session description.
*/ */
public CallAnswerType? answer_type { get; set; default = null; } public CallAnswerType answer_type { get; set; default = CallAnswerType.UNKNOWN; }
/** /**
* The SDP text of the session description. * The SDP text of the session description.
@ -70,9 +70,9 @@ public class Matrix.Event.CallAnswer : Matrix.Event.Call {
to_json(Json.Node json_data) to_json(Json.Node json_data)
throws Matrix.Error throws Matrix.Error
{ {
if (_answer_type == null) { if (_answer_type == CallAnswerType.UNKNOWN) {
throw new Matrix.Error.INCOMPLETE( throw new Matrix.Error.INCOMPLETE(
"Won't generate a m.call.answer event without answer.type"); "Won't generate a m.call.answer event without a valid answer.type");
} }
if (_answer_sdp == null) { if (_answer_sdp == null) {

View File

@ -28,7 +28,7 @@ public abstract class Matrix.Event.Call : Matrix.Event.Room {
/** /**
* The version of the VoIP specification this message adheres to. * The version of the VoIP specification this message adheres to.
*/ */
public int? version { get; set; default = null; } public int version { get; set; default = -1; }
protected override void protected override void
from_json(Json.Node json_data) from_json(Json.Node json_data)
@ -62,7 +62,7 @@ public abstract class Matrix.Event.Call : Matrix.Event.Room {
"Won't generate a m.call.hangup event without call_id"); "Won't generate a m.call.hangup event without call_id");
} }
if (_version == null) { if (_version < 0) {
throw new Matrix.Error.INCOMPLETE( throw new Matrix.Error.INCOMPLETE(
"Won't generate a m.call.hangup event without version"); "Won't generate a m.call.hangup event without version");
} }

View File

@ -24,7 +24,7 @@ public class Matrix.Event.CallInvite : Matrix.Event.Call {
/** /**
* The type of session description. * The type of session description.
*/ */
public CallOfferType? offer_type { get; set; default = null; } public CallOfferType offer_type { get; set; default = CallOfferType.UNKNOWN; }
/** /**
* The SDP text of the session description. * The SDP text of the session description.
*/ */
@ -36,7 +36,7 @@ public class Matrix.Event.CallInvite : Matrix.Event.Call {
* should also no longer show the call as awaiting an answer in * should also no longer show the call as awaiting an answer in
* the UI. * the UI.
*/ */
public int? lifetime { get; set; default = null; } public int lifetime { get; set; default = -1; }
protected override void protected override void
from_json(Json.Node json_data) from_json(Json.Node json_data)
@ -84,9 +84,9 @@ public class Matrix.Event.CallInvite : Matrix.Event.Call {
to_json(Json.Node json_data) to_json(Json.Node json_data)
throws Matrix.Error throws Matrix.Error
{ {
if (_offer_type == null) { if (_offer_type == CallOfferType.UNKNOWN) {
throw new Matrix.Error.INCOMPLETE( throw new Matrix.Error.INCOMPLETE(
"Won't generate a m.call.invite without offer.type"); "Won't generate a m.call.invite without a valid offer.type");
} }
if (_sdp == null) { if (_sdp == null) {
@ -94,7 +94,7 @@ public class Matrix.Event.CallInvite : Matrix.Event.Call {
"Won't generate a m.call.invite without offer.sdp"); "Won't generate a m.call.invite without offer.sdp");
} }
if (_lifetime == null) { if (_lifetime < 0) {
throw new Matrix.Error.INCOMPLETE( throw new Matrix.Error.INCOMPLETE(
"Won't generate a m.call.invite without lifetime"); "Won't generate a m.call.invite without lifetime");
} }

View File

@ -35,8 +35,10 @@ public class Matrix.Event.Presence : Matrix.Event.Base {
/** /**
* The last time since this used performed some action, in * The last time since this used performed some action, in
* milliseconds. * milliseconds.
*
* This wont get into the generated event JSON if negative.
*/ */
public ulong? last_active_ago { get; set; } public long last_active_ago { get; set; default = -1; }
/** /**
* The user's ID. * The user's ID.
@ -81,7 +83,7 @@ public class Matrix.Event.Presence : Matrix.Event.Base {
} }
if ((node = content_root.get_member("last_active_ago")) != null) { if ((node = content_root.get_member("last_active_ago")) != null) {
_last_active_ago = (ulong)node.get_int(); _last_active_ago = (long)node.get_int();
} }
if ((node = content_root.get_member("avatar_url")) != null) { if ((node = content_root.get_member("avatar_url")) != null) {
@ -142,7 +144,7 @@ public class Matrix.Event.Presence : Matrix.Event.Base {
_g_enum_value_to_nick(typeof(Presence), _g_enum_value_to_nick(typeof(Presence),
_presence)); _presence));
if (last_active_ago != null) { if (last_active_ago >= 0) {
content_root.set_int_member("last_active_ago", last_active_ago); content_root.set_int_member("last_active_ago", last_active_ago);
} }

View File

@ -41,8 +41,11 @@ public abstract class Matrix.Event.Room : Matrix.Event.Base {
/** /**
* The time, in milliseconds, that has elapsed since the event was * The time, in milliseconds, that has elapsed since the event was
* sent. This is part of the unsigned event data. * sent. This is part of the unsigned event data.
*
* This value will be omitted from the generated event JSON if
* less than zero.
*/ */
public ulong? age { get; set; default = null; } public long age { get; set; default = 0; }
/** /**
* The reason this event was redacted, if it was redacted. * The reason this event was redacted, if it was redacted.
@ -119,7 +122,7 @@ public abstract class Matrix.Event.Room : Matrix.Event.Base {
var unsigned_obj = new Json.Object(); var unsigned_obj = new Json.Object();
if (age != null) { if (age >= 0) {
unsigned_obj.set_int_member("age", _age); unsigned_obj.set_int_member("age", _age);
} }

View File

@ -267,8 +267,9 @@ namespace Matrix {
} }
public enum SearchGroupBy { public enum SearchGroupBy {
UNKNOWN,
ROOM_ID, ROOM_ID,
SENDER SENDER;
} }
public enum HistoryVisibility { public enum HistoryVisibility {