From 765c2605cd0abf2b4431051142f09e2676584222 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 16 Apr 2017 15:11:00 +0200 Subject: qlite: cleanup, fix nullity issues --- qlite/src/statement_builder.vala | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'qlite/src/statement_builder.vala') diff --git a/qlite/src/statement_builder.vala b/qlite/src/statement_builder.vala index 11efb0de..6097a9cc 100644 --- a/qlite/src/statement_builder.vala +++ b/qlite/src/statement_builder.vala @@ -11,25 +11,32 @@ public abstract class StatementBuilder { internal abstract Statement prepare() throws DatabaseError; - internal class Field { + internal abstract class AbstractField { public T value; public Column? column; - public Field(Column? column, T value) { - this.column = column; + public AbstractField(T value) { this.value = value; } - internal virtual void bind(Statement stmt, int index) { - if (column != null) { - column.bind(stmt, index, value); - } + internal abstract void bind(Statement stmt, int index); + } + + internal class Field : AbstractField { + public Field(Column column, T value) { + base(value); + this.column = column; + } + + internal override void bind(Statement stmt, int index) { + ((!)column).bind(stmt, index, value); } } - internal class NullField : Field { - public NullField(Column? column) { - base(column, null); + internal class NullField : AbstractField { + public NullField(Column column) { + base(null); + this.column = column; } internal override void bind(Statement stmt, int index) { @@ -37,9 +44,9 @@ public abstract class StatementBuilder { } } - internal class StringField : Field { + internal class StringField : AbstractField { public StringField(string value) { - base(null, value); + base(value); } internal override void bind(Statement stmt, int index) { -- cgit v1.2.3-54-g00ecf