/* TQuotYear.java - year of quotation,
* SQL operations with the table 'quot_year' in SQLite Android
* Wiktionary parsed database.
*
* Copyright (c) 2011-2012 Andrew Krizhanovsky <andrew.krizhanovsky at gmail.com>
* Distributed under EPL/LGPL/GPL/AL/BSD multi-license.
*/
package wikokit.base.wikt.sql.quote;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
/** Year of quotation and
* operations with the table 'quot_year' in MySQL Wiktionary parsed database. */
public class TQuotYear {
/** Inique identifier of the year(s). */
private int id;
/** Start date of a writing book with the quote. */
private int from;
/** End date of a writing book with the quote,
* if quote contains only one date, then to = from. */
private int to;
public TQuotYear(int _id,int _from,int _to)
{
id = _id;
from = _from;
to = _to;
}
public TQuotYear(int _id,int _from)
{
id = _id;
from = _from;
to = _from;
}
/** Gets unique ID from database */
public int getID() {
return id;
}
/** Gets start date of a writing book with the quote. */
public int getFrom() {
return from;
}
/** Gets finish date of a writing book with the quote. */
public int getTo() {
return to;
}
/** Inserts record into the table 'quot_year'.<br><br>
* INSERT INTO quot_year (`from`,`to`) VALUES (1956,1956);
*
* @param _from start date of a writing book with the quote
* @param _to finish date of a writing book with the quote
* @return inserted record, or null if the insertion failed
*/
/*public static TQuotYear insert (Connect connect,int _from) {
return insert(connect, _from, _from);
}*/
/** Inserts record into the table 'quot_year'.<br><br>
* INSERT INTO quot_year (`from`,`to`) VALUES (1956,1988);
*
* @param _from start date of a writing book with the quote
* @param _to finish date of a writing book with the quote
* @return inserted record, or null if the insertion failed
*/
/*public static TQuotYear insert (Connect connect,int _from,int _to) {
if(-1 == _from || -1 == _to) // it means that there is no info about years
return null;
if(_from < 0 || _to < 0 || _from > _to) {
System.out.println("Warning (TQuotYear.insert()):: invalid years: from='"+_from+"', to='"+_to+"'.");
return null;
}
StringBuilder str_sql = new StringBuilder();
str_sql.append("INSERT INTO quot_year (`from`,`to`) VALUES (");
str_sql.append(_from);
str_sql.append(",");
str_sql.append(_to);
str_sql.append(")");
TQuotYear result = null;
try
{
Statement s = connect.conn.createStatement ();
try {
s.executeUpdate (str_sql.toString());
} finally {
s.close();
}
s = connect.conn.createStatement ();
try {
ResultSet rs = s.executeQuery ("SELECT LAST_INSERT_ID() as id");
try {
if (rs.next ())
result = new TQuotYear(rs.getInt("id"), _from, _to);
} finally {
rs.close();
}
} finally {
s.close();
}
}catch(SQLException ex) {
System.err.println("SQLException (TQuotYear.insert):: _from="+_from+"; _to="+_to+"; sql='" + str_sql.toString() + "' error=" + ex.getMessage());
}
return result;
}*/
/** Selects row from the table 'quot_year' by ID.<br><br>
*
* SELECT `from`,`to` FROM quot_year WHERE id=1
*
* @return null if data is absent
*/
public static TQuotYear getByID (SQLiteDatabase db,int _id) {
TQuotYear quot_year = null;
if(_id <= 0)
return null;
// SELECT `from`,`to` FROM quot_year WHERE id=1
Cursor c = db.query("quot_year",
new String[] { "`from`", "`to`" }, // attention: + apostrophes for SQL keywords
"id=" + _id,
null, null, null, null);
if (c.moveToFirst()) {
int i_from = c.getColumnIndexOrThrow("from");
int i_to = c.getColumnIndexOrThrow("to");
int _from = c.getInt(i_from);
int _to = c.getInt(i_to);
quot_year = new TQuotYear(_id, _from, _to);
}
if (c != null && !c.isClosed()) {
c.close();
}
return quot_year;
}
/** Get's a record from the table 'quot_year' by a date of a book with a quote.<br><br>
* SELECT id FROM quot_year WHERE `from`=1956 AND `to`=1956;
*
* @param _text name of the source
* @return NULL if data is absent
*/
public static TQuotYear get (SQLiteDatabase db,int _from, String page_title) {
return get(db, _from, _from, page_title);
}
/** Get's a record from the table 'quot_year' by a date of a book with a quote.<br><br>
* SELECT id FROM quot_year WHERE `from`=1956 AND `to`=1988;
*
* @param page_title word which are described in this article
* @return NULL if data is absent
*/
public static TQuotYear get (SQLiteDatabase db,int _from,int _to, String page_title) {
TQuotYear result = null;
if(_from < 0 || _to < 0 || _from > _to) {
System.out.println("Warning (TQuotYear.get()):: entry '" + page_title + "', invalid years: from='"+_from+"', to='"+_to+"'.");
return null;
}
// SELECT id FROM quot_year WHERE `from`=1970 AND `to`=1977;
Cursor c = db.query("quot_year",
new String[] { "id" },
"`from`=" + _from+ " AND `to`=" + _to,
null, null, null, null);
if (c.moveToFirst()) {
int i_id = c.getColumnIndexOrThrow("id");
int _id = c.getInt(i_id);
result = new TQuotYear(_id, _from, _to);
}
if (c != null && !c.isClosed()) {
c.close();
}
return result;
}
/** Gets ID of a record or inserts record (if it is absent)
* into the table 'quot_year'.
*
* @param _from start date of a writing book with the quote
* @param _to finish date of a writing book with the quote
* @param page_title word which are described in this article
*/
/*public static TQuotYear getOrInsert (Connect connect,int _from,int _to, String page_title) {
if(-1 == _from || -1 == _to) // it means that there is no info about years
return null;
if(_from < 0 || _to < 0 || _from > _to) {
System.out.println("Warning (TQuotYear.getOrInsert()):: invalid years: from='"+_from+"', to='"+_to+"', for the word '" + page_title + "'.");
return null;
}
TQuotYear y = TQuotYear.get(connect, _from, _to, page_title);
if(null == y)
y = TQuotYear.insert(connect, _from, _to);
return y;
}*/
/** Deletes row from the table 'quot_year' by a value of ID.<br><br>
* DELETE FROM quot_year WHERE id=4;
*/
/*public void delete (Connect connect) {
StringBuilder str_sql = new StringBuilder();
str_sql.append("DELETE FROM quot_year WHERE id=");
str_sql.append( id );
try {
Statement s = connect.conn.createStatement ();
try {
s.execute (str_sql.toString());
} finally {
s.close();
}
} catch(SQLException ex) {
System.err.println("SQLException (TQuotYear.delete()):: sql='" + str_sql.toString() + "' " + ex.getMessage());
}
}*/
}