Package cx.fbn.nevernote.filters

Source Code of cx.fbn.nevernote.filters.WordFilter

/*
* This file is part of NixNote
* Copyright 2009 Randy Baumgarte
*
* This file may be licensed under the terms of of the
* GNU General Public License Version 2 (the ``GPL'').
*
* Software distributed under the License is distributed
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the GPL for the specific language
* governing rights and limitations.
*
* You should have received a copy of the GPL along with this
* program. If not, go to http://www.gnu.org/licenses/gpl.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/

package cx.fbn.nevernote.filters;

import java.util.List;

import com.trolltech.qt.sql.QSqlDatabase;
import com.trolltech.qt.sql.QSqlQuery;

import cx.fbn.nevernote.Global;

public class WordFilter {
  private final List<String> wordList;
  QSqlDatabase db;
   
  public WordFilter(QSqlDatabase d, List<String> list) {
    wordList = list;
    db = d;
    QSqlQuery query = new QSqlQuery(db);
    QSqlQuery insert = new QSqlQuery(db);
   
    if (wordList == null)
      return;
    if (wordList.size() == 0)
      return;
    query.exec("create temporary table guidList (guid text)");
    query.clear();
    query.exec("delete from guidList");
    query.clear();
    query.prepare("Select guid from words where word like :word and weight>=:weight");
    insert.prepare("insert into guidList (guid) values (:guid)");
    for (int i=0; i<wordList.size(); i++) {
      query.bindValue(":word", wordList.get(i)+"%");
      query.bindValue(":weight", Global.getRecognitionWeight());
      if (!query.exec()) {
        Global.logger.log(Global.logger.LOW, query.lastError().toString());
      } else {
        while (query.next()) {
          insert.bindValue(":guid", query.value(0).toString());
          insert.exec();
        }
      }
    }
    query.clear();
    insert.clear();
    insert.finish();
    query.finish();
  }
 
  public boolean contains(String guid) {
    if (wordList.size() == 0)
      return true;
    QSqlQuery query = new QSqlQuery(db);
    query.prepare("select count(guid) from guidList where guid=:guid");
    query.bindValue("guid", guid);
    query.exec();
    while (query.next()) {
      Integer count = new Integer(query.value(0).toString());
      if (count >= wordList.size()) {
        query.clear();
        return true;
      }
    }
   
    query.clear();
    return false;
  }
 
}
TOP

Related Classes of cx.fbn.nevernote.filters.WordFilter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.