Package org.xdams.xw

Source Code of org.xdams.xw.XWConnection

package org.xdams.xw;

import it.highwaytech.broker.Broker;
import it.highwaytech.broker.ServerCommand;
import it.highwaytech.broker.XMLCommand;
import it.highwaytech.db.DbKey;
import it.highwaytech.db.Doc;
import it.highwaytech.db.HierPath;
import it.highwaytech.db.QueryResult;

import java.io.UnsupportedEncodingException;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.Vector;

import org.xdams.xw.exception.XWException;
import org.xdams.xw.utility.Key;
import org.xdams.xw.utility.Xml_NumDoc;

public class XWConnection extends Broker {
  private String theHost = "";

  private String theDb = "";

  private String theUserDB = "";

  private String thePasswordDB = "";

  private int thePort = -1;

  private String thePne = "";

  private String thePnce = "";

  public int connection = -1;

  private boolean isClosed = true;

  private Doc doc = null;

  private int adjacency = -1;

  public XWConnection() throws XWException {

  }

  public XWConnection(Properties prop) throws XWException {
    try {
      theHost = prop.getProperty(XWConstant.XW_HOST);
      theDb = prop.getProperty(XWConstant.XW_DB);
      theUserDB = prop.getProperty(XWConstant.XW_USER);
      thePasswordDB = prop.getProperty(XWConstant.XW_PASSWORD);
      thePort = Integer.parseInt(prop.getProperty(XWConstant.XW_PORT));
      thePne = prop.getProperty(XWConstant.XW_PNE);
      thePnce = prop.getProperty(XWConstant.XW_PNCE);
      XWconnect();
    } catch (XWException e) {
      throw e;
    }
  }

  private void XWconnect() throws XWException {

    try {
      connection = acquireConnection(theHost, thePort, theDb, "", "", -1);
      boolean esitoConn = Connect(connection, theHost, thePort, theDb, -1, theUserDB, thePasswordDB);
      isClosed = false;

    } catch (SQLException e) {
      isClosed = true;
      try {
        if (connection > 0)
          releaseConnection(connection);
        connection = -1;
      } catch (SQLException ex) {
        connection = -1;
        throw new XWException(ex.getMessage());
      } finally {
        if (isClosed == false) {
          connection = -1;
          isClosed = true;
        }

      }
      throw new XWException(e.getMessage());
    }

  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#close()
   */
  public void close() throws XWException {
    try {
      releaseConnection(connection);
      connection = -1;
      isClosed = true;
    } catch (SQLException ex) {
      throw new XWException(ex.getMessage());
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#isClosed()
   */
  public boolean isClosed() {
    return isClosed;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#executeUpdate(java.lang.String, java.lang.String)
   */
  public void executeUpdate(String xmlToInsert, String xQuery) throws SQLException, XWException {
    QueryResult qr = null;
    int docNumber = -1;
    String theLock = "";
    if (xQuery != null) {
      qr = find(connection, theDb, xQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
      docNumber = getNumDoc(connection, theDb, qr, 0);
    }
    if (docNumber != -1) {
      XMLCommand theCommandLoad = new XMLCommand(XMLCommand.LoadDocument, XMLCommand.LoadDocument_Lock, docNumber);
      String xDoc = XMLCommand(connection, theDb, theCommandLoad.toString());
      theLock = XMLCommand.getLockCode(xDoc);
    }

    XMLCommand theCommand = new XMLCommand(XMLCommand.SaveDocument, XMLCommand.SaveDocument_Save, docNumber, xmlToInsert, thePne, thePnce, theLock);
    String result = "";
    result = XMLCommand(connection, theDb, theCommand.toString());
    if (result.indexOf("dtl") == -1) {
      throw new XWException("An Error occurred while processing insert/update");
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#insert(java.lang.String)
   */
  public int insert(String xmlToInsert) throws SQLException, XWException {
    QueryResult qr = null;
    int docNumber = -1;
    String theLock = "";
    XMLCommand theCommand = new XMLCommand(XMLCommand.SaveDocument, XMLCommand.SaveDocument_Save, docNumber, xmlToInsert, thePne, thePnce, theLock);
    String result = "";
    result = XMLCommand(connection, theDb, theCommand.toString());
    int newNrecord = Integer.parseInt(XMLCommand.getDval(result, "ndoc"));
    if (result.indexOf("dtl") == -1) {
      throw new XWException("An Error occurred while processing insert");
    }
    return newNrecord;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#executeUpdateByDocNumber(java.lang.String, int)
   */
  public void executeUpdateByDocNumber(String xmlToInsert, int docNumber) throws SQLException, XWException {
    String theLock = "";
    if (docNumber != -1) {
      XMLCommand theCommandLoad = new XMLCommand(XMLCommand.LoadDocument, XMLCommand.LoadDocument_Lock, docNumber);
      String xDoc = XMLCommand(connection, theDb, theCommandLoad.toString());
      theLock = XMLCommand.getLockCode(xDoc);
    }
    XMLCommand theCommand = new XMLCommand(XMLCommand.SaveDocument, XMLCommand.SaveDocument_Save, docNumber, xmlToInsert, thePne, thePnce, theLock);
    String result = "";
    result = XMLCommand(connection, theDb, theCommand.toString());
    if (result.indexOf("dtl") == -1) {
      throw new XWException("An Error occurred while processing insert/update");
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#resetDB(java.lang.String, boolean)
   */
  public void resetDB(String theDbPath, boolean reloadDB) throws SQLException, XWException {
    if (theDbPath != null) {
      String verbo_crea_azzera_archivio = "genera/inizializza archivio";
      String verbo = "genera/inizializza archivio";
      boolean createDb = true;
      int iPort = thePort;
      if (connection >= 0 && Connect(connection, theHost, iPort, createDb ? null : theDb, -1, theUserDB, thePasswordDB)) {
        createDb(connection, theDbPath, theDb, true);
        if (reloadDB)
          reloadDb(connection, theDb);
      }
    } else {
      throw new XWException("theDbPath must not be null");
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#reloadDB()
   */
  public void reloadDB() throws SQLException, XWException {
    reloadDb(connection, theDb);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#select(java.lang.String)
   */
  public String[] select(String xQuery) throws SQLException, XWException {
    String[] result = null;
    QueryResult qr = null;
    if (xQuery != null) {
      qr = find(connection, theDb, xQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
      if (qr != null) {
        result = new String[qr.elements];
        for (int i = 0; i < qr.elements; i++) {
          Doc doc = getDoc(connection, theDb, qr, i, 0, ServerCommand.load_noHilight);
          result[i] = doc.XML();
        }
      }
    } else {
      throw new XWException("xQuery must not be null");
    }
    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#select(java.lang.String, java.lang.String)
   */
  public String[] select(String xQuery, String sortParamethers) throws SQLException, XWException {
    String[] result = null;
    QueryResult qr = null;
    if (xQuery != null) {
      qr = find(connection, theDb, xQuery, sortParamethers, ServerCommand.find_SORT, adjacency, 0, null);
      if (qr != null) {
        result = new String[qr.elements];
        for (int i = 0; i < qr.elements; i++) {
          Doc doc = getDoc(connection, theDb, qr, i, 0, ServerCommand.load_noHilight);
          result[i] = doc.XML();
        }
      }
    } else {
      throw new XWException("xQuery must not be null");
    }
    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#toStringArray(it.highwaytech.db.QueryResult)
   */
  public String[] toStringArray(QueryResult qr) throws SQLException, XWException {
    String[] result = null;
    if (qr != null) {
      result = new String[qr.elements];
      for (int i = 0; i < qr.elements; i++) {
        Doc doc = getDoc(connection, theDb, qr, i, 0, ServerCommand.load_noHilight);
        result[i] = doc.XML();
      }
    } else {
      throw new XWException("xQuery must not be null");
    }
    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#selectQR(java.lang.String)
   */
  public QueryResult selectQR(String xQuery) throws SQLException, XWException {
    QueryResult qr = selectQR(xQuery, "", ServerCommand.find_SORT, adjacency);
    return qr;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#selectQR(java.lang.String, java.lang.String, byte, int)
   */
  public QueryResult selectQR(String xQuery, String sort, byte serverCommand, int adj) throws SQLException, XWException {
    QueryResult qr = null;
    if (xQuery != null) {
      qr = find(connection, theDb, xQuery, sort, serverCommand, adj, 0, null);
    } else {
      throw new XWException("xQuery must not be null");
    }
    return qr;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getNumDocFromQRElement(it.highwaytech.db.QueryResult, int)
   */
  public int getNumDocFromQRElement(QueryResult qr, int index) throws SQLException, XWException {
    if (qr != null) {
      return getNumDoc(connection, theDb, qr, index);
    } else {
      throw new XWException("QueryResult must not be null");
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSonsFromNumDoc(int)
   */
  public QueryResult getSonsFromNumDoc(int numDoc) throws SQLException, XWException {

    QueryResult qr = null;

    qr = findSons(connection, theDb, numDoc);

    return qr;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#selectObject(java.lang.String)
   */
  public Vector selectObject(String xQuery) throws SQLException, XWException {
    Vector result = null;
    QueryResult qr = null;
    if (xQuery != null) {
      qr = find(connection, theDb, xQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
      if (qr != null) {
        result = new Vector();
        for (int i = 0; i < qr.elements; i++) {
          Doc doc = getDoc(connection, theDb, qr, i, 0, ServerCommand.load_noHilight);
          result.addElement(new Xml_NumDoc(doc.XML(), doc.numDoc));
        }
      }
    } else {
      throw new XWException("xQuery must not be null");
    }
    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#delete(java.lang.String)
   */
  public void delete(String xQuery) throws SQLException, XWException {

    QueryResult qr = null;
    if (xQuery != null) {
      qr = find(connection, theDb, xQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
      if (qr != null) {

        for (int i = 0; i < qr.elements; i++) {
          Doc doc = getDoc(connection, theDb, qr, i, 0, null);
          removeDoc(connection, theDb, doc);
        }
      }
    } else {
      throw new XWException("xQuery must not be null");
    }

  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getQRFromSelId(java.lang.String)
   */
  public QueryResult getQRFromSelId(String selId) throws XWException, SQLException {
    QueryResult qr = null;
    if (selId != null) {

      qr = getQuery(connection, theDb, selId);

    } else {
      throw new XWException("xQuery must not be null");
    }
    return qr;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#setCurrentSet(it.highwaytech.db.QueryResult)
   */
  public void setCurrentSet(QueryResult qr) throws XWException, SQLException {

    if (qr != null) {
      setCurrentSet(connection, theDb, qr);

    } else {
      throw new XWException("QueryResult must not be null");
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#addToQueryResult(it.highwaytech.db.QueryResult, it.highwaytech.db.QueryResult)
   */
  public QueryResult addToQueryResult(QueryResult qrTo, QueryResult qrFrom) throws XWException, SQLException {
    QueryResult result = null;
    if (qrTo != null && qrFrom != null) {
      result = addToQueryResult(connection, theDb, qrTo, qrFrom, null);
    } else {
      throw new XWException("QueryResult must not be null");
    }
    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#removeDocFormQR(java.lang.String, int)
   */
  public void removeDocFormQR(String selId, int index) throws SQLException, XWException {

    QueryResult qr = null;
    if (selId != null) {

      qr = getQuery(connection, theDb, selId);
      if (qr != null) {
        int docNumber = getNumDoc(connection, theDb, qr, index);
        removeDoc(connection, theDb, docNumber);
      }
    } else {
      throw new XWException("xQuery must not be null");
    }

  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#deleteFormQR(java.lang.String, int)
   */
  public QueryResult deleteFormQR(String selId, int index) throws SQLException, XWException {

    QueryResult qr = null;
    if (selId != null) {

      qr = getQuery(connection, theDb, selId);
      if (qr != null) {

        removeDocFromQueryResult(connection, theDb, qr, index);

      }
    } else {
      throw new XWException("xQuery must not be null");
    }
    return qr;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#deleteFormQR(it.highwaytech.db.QueryResult, int)
   */
  public QueryResult deleteFormQR(QueryResult qr, int index) throws SQLException, XWException {
    if (qr != null) {
      removeDocFromQueryResult(connection, theDb, qr, index);
    }
    return qr;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#delete(int)
   */
  public void delete(int docNumber) throws SQLException, XWException {
    removeDoc(connection, theDb, docNumber);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#buildStoredCollection(java.lang.String)
   */
  public String buildStoredCollection(String collectionName) throws XWException, SQLException {

    String selid = null;
    if (collectionName != null) {

      selid = collectionOpen(connection, theDb, collectionName);
    } else {
      throw new XWException("xQuery must not be null");
    }
    return selid;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#createCollection(java.lang.String, java.lang.String)
   */
  public void createCollection(String selId, String collectionName) throws SQLException, XWException {

    if (selId != null && collectionName != null) {

      collectionCreate(connection, theDb, collectionName);
      collectionSave(connection, theDb, selId, collectionName);

    } else {
      throw new XWException("xQuery must not be null");
    }

  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSelectionId(java.lang.String)
   */
  public String getSelectionId(String phrase) throws SQLException, XWException {

    QueryResult qr = null;
    String result = null;
    if (phrase != null) {

      qr = find(connection, theDb, phrase, "", ServerCommand.find_SORT, adjacency, 0, null);
      result = qr.id;

    } else {
      throw new XWException("xQuery must not be null");
    }
    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getQRfromPhrase(java.lang.String)
   */
  public QueryResult getQRfromPhrase(String phrase) throws SQLException, XWException {

    QueryResult qr = null;

    if (phrase != null) {

      qr = find(connection, theDb, phrase, "", ServerCommand.find_SORT, adjacency, 0, null);

    } else {
      throw new XWException("xQuery must not be null");
    }
    return qr;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getQRfromPhrase(java.lang.String, java.lang.String)
   */
  public QueryResult getQRfromPhrase(String phrase, String sortCriteria) throws SQLException, XWException {

    QueryResult qr = null;

    if (phrase != null) {

      qr = find(connection, theDb, phrase, sortCriteria, ServerCommand.find_SORT, adjacency, 0, null);

    } else {
      throw new XWException("xQuery must not be null");
    }
    return qr;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSelectionIdFormHier(int)
   */
  public String getSelectionIdFormHier(int nDoc) throws SQLException, XWException {

    QueryResult qr = null;
    String result = null;
    if (nDoc != 0) {

      qr = findHier(connection, theDb, nDoc, ServerCommand.findhier_DESCENDANT_OR_SELF);
      result = qr.id;

    } else {
      throw new XWException("nDoc must not be null");
    }
    return result;
  }

  /**
   * @deprecated
   * */
  public QueryResult getQRFormHier(int nDoc, boolean includeSelf) throws SQLException, XWException {

    return getQRFromHier(nDoc, includeSelf);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getQRFromHier(int, boolean)
   */
  public QueryResult getQRFromHier(int nDoc, boolean includeSelf) throws SQLException, XWException {

    QueryResult qr = null;
    byte mode = ServerCommand.findhier_DESCENDANT;
    if (includeSelf) {
      mode = ServerCommand.findhier_DESCENDANT_OR_SELF;
    }
    if (nDoc != 0) {

      qr = findHier(connection, theDb, nDoc, mode);

    } else {
      throw new XWException("nDoc must not be null");
    }
    return qr;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#executeCMD(java.lang.String)
   */
  public void executeCMD(String cmd) throws SQLException, XWException {
    if (cmd != null) {
      this.XMLCommand(connection, theDb, cmd);
    } else {
      throw new XWException("cmd must not be null");
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#selectSingleKey(java.lang.String, int, java.lang.String, java.lang.String)
   */
  public Vector selectSingleKey(String searchAlias, int totResult, String orientation, String startParam) throws SQLException, XWException {

    Vector keys = null;

    if (searchAlias != null) {

      byte prev_next = ServerCommand.btree_NEXTKEY;

      if (orientation.equalsIgnoreCase("up"))
        prev_next = ServerCommand.btree_NEXTKEY;
      else if (orientation.equalsIgnoreCase("down"))
        prev_next = ServerCommand.btree_PREVKEY;

      int maxResult = 10;

      if (totResult > 0)
        maxResult = totResult;

      String start = "";

      if (startParam != null)
        start = startParam;
      try {

        Vector result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, start, "", maxResult, prev_next, ServerCommand.btree_FREQUENZE);

        if (result != null && result.size() > 0) {
          keys = new Vector();
          for (int i = 0; i < result.size(); i++) {

            keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
          }
        }
      } catch (UnsupportedEncodingException e) {
        throw new SQLException(e.getMessage());
      }

      return keys;

    } else {
      throw new XWException("searchAlias must not be null");
    }

  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#selectSingleKey(java.lang.String, int, java.lang.String, java.lang.String, java.lang.String)
   */
  public Vector selectSingleKey(String searchAlias, int totResult, String orientation, String startParam, String part) throws SQLException, XWException {

    Vector keys = null;
    if (searchAlias != null) {

      byte prev_next = ServerCommand.btree_NEXTKEY;

      if (orientation.equalsIgnoreCase("up"))
        prev_next = ServerCommand.btree_NEXTKEY;
      else if (orientation.equalsIgnoreCase("down"))
        prev_next = ServerCommand.btree_PREVKEY;

      int maxResult = 10;

      if (totResult > 0)
        maxResult = totResult;

      String start = "";

      if (startParam != null)
        start = startParam;
      try {

        Vector result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, start, part, maxResult, prev_next, ServerCommand.btree_FREQUENZE);
        // Vector result = getIdxKeys(connection,theDb,"TABELLA",searchAlias,"",start,maxResult,prev_next,ServerCommand.btree_FREQUENZE);
        if (result != null && result.size() > 0) {
          keys = new Vector();
          for (int i = 0; i < result.size(); i++) {
            // System.out.println(result.elementAt(i));
            keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
          }
        }
      } catch (UnsupportedEncodingException e) {
        throw new SQLException(e.getMessage());
      }

      return keys;

    } else {
      throw new XWException("searchAlias must not be null");
    }

  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#selectSingleKey(java.lang.String, int, java.lang.String, java.lang.String, int, int)
   */
  public Vector selectSingleKey(String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr) throws SQLException, XWException {

    Vector keys = null;
    int min = 1;
    int max = 9999;
    if (minFr > 0)
      min = minFr;
    if (maxFr > 0)
      max = maxFr;
    if (searchAlias != null) {

      byte prev_next = ServerCommand.btree_NEXTKEY;

      if (orientation.equalsIgnoreCase("up"))
        prev_next = ServerCommand.btree_NEXTKEY;
      else if (orientation.equalsIgnoreCase("down"))
        prev_next = ServerCommand.btree_PREVKEY;

      int maxResult = 10;

      if (totResult > 0)
        maxResult = totResult;

      String start = "";

      if (startParam != null)
        start = startParam;
      try {

        Vector result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, start, "", maxResult, prev_next, ServerCommand.btree_FREQUENZE, min, max, null);
        // Vector result = getIdxKeys(connection,theDb,"TABELLA",searchAlias,"",start,maxResult,prev_next,ServerCommand.btree_FREQUENZE);
        if (result != null && result.size() > 0) {
          keys = new Vector();
          for (int i = 0; i < result.size(); i++) {
            // System.out.println(result.elementAt(i));
            keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
          }
        }
      } catch (UnsupportedEncodingException e) {
        throw new SQLException(e.getMessage());
      }

      return keys;

    } else {
      throw new XWException("searchAlias must not be null");
    }

  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#selectSingleKey(java.lang.String, int, java.lang.String, java.lang.String, int, int, java.lang.String)
   */
  public Vector selectSingleKey(String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr, String part) throws SQLException, XWException {

    Vector keys = null;
    int min = 1;
    int max = 9999;
    if (minFr > 0)
      min = minFr;
    if (maxFr > 0)
      max = maxFr;
    if (searchAlias != null) {

      byte prev_next = ServerCommand.btree_NEXTKEY;

      if (orientation.equalsIgnoreCase("up"))
        prev_next = ServerCommand.btree_NEXTKEY;
      else if (orientation.equalsIgnoreCase("down"))
        prev_next = ServerCommand.btree_PREVKEY;

      int maxResult = 10;

      if (totResult > 0)
        maxResult = totResult;

      String start = "";

      if (startParam != null)
        start = startParam;
      try {

        Vector result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, start, part, maxResult, prev_next, ServerCommand.btree_FREQUENZE, min, max, null);
        // Vector result = getIdxKeys(connection,theDb,"TABELLA",searchAlias,"",start,maxResult,prev_next,ServerCommand.btree_FREQUENZE);
        if (result != null && result.size() > 0) {
          keys = new Vector();
          for (int i = 0; i < result.size(); i++) {
            // System.out.println(result.elementAt(i));
            keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
          }
        }
      } catch (UnsupportedEncodingException e) {
        throw new SQLException(e.getMessage());
      }

      return keys;

    } else {
      throw new XWException("searchAlias must not be null");
    }

  }

  /**
   * @deprecated
   * */
  public Vector selectFilteredKey(String filterXQuery, String searchAlias, int totResult, String orientation, String startParam) throws SQLException, XWException {
    return selectFilteredKey(filterXQuery, searchAlias, totResult, orientation, startParam, "");
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#selectFilteredKey(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String)
   */
  public Vector selectFilteredKey(String filterXQuery, String searchAlias, int totResult, String orientation, String startParam, String part) throws SQLException, XWException {

    Vector keys = null;
    if (searchAlias != null) {

      byte prev_next = ServerCommand.btree_NEXTKEY;

      if (orientation.equalsIgnoreCase("up"))
        prev_next = ServerCommand.btree_NEXTKEY;
      else if (orientation.equalsIgnoreCase("down"))
        prev_next = ServerCommand.btree_PREVKEY;

      int maxResult = 10;

      if (totResult > 0)
        maxResult = totResult;

      String start = "";

      if (startParam != null)
        start = startParam;

      // byte mode = ServerCommand.btree_FREQUENZE;
      // mode |=ServerCommand.btree_SPETTRALE;

      byte mode = 1;
      mode |= 0x80;

      try {
        setCurrentSet(connection, theDb, find(connection, theDb, filterXQuery, "", 16, adjacency, 0, null));
        Vector result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, start, part, maxResult, prev_next, mode, 1, getTotNumDoc(), null);

        // setCurrentSet(connection,theDb,find(connection, theDb, filterXQuery , "", ServerCommand.find_SORT, adjacency, 0, null));aaaaaa
        // Vector result = getIdxKeys(connection,theDb,"TABELLA",searchAlias,start,part,maxResult,prev_next,mode);

        if (result != null && result.size() > 0) {
          keys = new Vector();
          for (int i = 0; i < result.size(); i++) {

            keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
          }
        }
      } catch (UnsupportedEncodingException e) {
        throw new SQLException(e.getMessage());
      }

      return keys;

    } else {
      throw new XWException("searchAlias must not be null");
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#selectFilteredKey(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, int, int)
   */
  public Vector selectFilteredKey(String filterXQuery, String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr) throws SQLException, XWException {

    Vector keys = null;
    int min = 1;
    int max = 9999;
    if (minFr > 0)
      min = minFr;
    if (maxFr > 0)
      max = maxFr;
    if (searchAlias != null) {

      byte prev_next = ServerCommand.btree_NEXTKEY;

      if (orientation.equalsIgnoreCase("up"))
        prev_next = ServerCommand.btree_NEXTKEY;
      else if (orientation.equalsIgnoreCase("down"))
        prev_next = ServerCommand.btree_PREVKEY;

      int maxResult = 10;

      if (totResult > 0)
        maxResult = totResult;

      String start = "";

      if (startParam != null)
        start = startParam;

      byte mode = 1;
      mode |= 0x80;

      // byte mode = ServerCommand.btree_FREQUENZE;
      // mode |=ServerCommand.btree_SPETTRALE;
      try {

        // setCurrentSet(connection,theDb,find(connection, theDb, filterXQuery , "", ServerCommand.find_SORT, adjacency, 0, null));
        // Vector result = getIdxKeys(connection,theDb,"TABELLA",searchAlias,start,"",maxResult,prev_next,mode ,min,max,null);
        setCurrentSet(connection, theDb, find(connection, theDb, filterXQuery, "", 16, adjacency, 0, null));
        Vector result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, start, "", maxResult, prev_next, mode, min, max, null);
        if (result != null && result.size() > 0) {
          keys = new Vector();
          for (int i = 0; i < result.size(); i++) {
            // System.out.println(result.elementAt(i));
            keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
          }
        }
      } catch (UnsupportedEncodingException e) {
        throw new SQLException(e.getMessage());
      }

      return keys;

    } else {
      throw new XWException("searchAlias must not be null");
    }

  }

  /**
   * @deprecated
   * */
  public Vector selectFilteredKey(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr) throws SQLException, XWException {

    Vector keys = null;
    int min = 1;
    int max = 9999;
    if (minFr > 0)
      min = minFr;
    if (maxFr > 0)
      max = maxFr;
    if (searchAlias != null) {

      byte prev_next = ServerCommand.btree_NEXTKEY;

      if (orientation.equalsIgnoreCase("up"))
        prev_next = ServerCommand.btree_NEXTKEY;
      else if (orientation.equalsIgnoreCase("down"))
        prev_next = ServerCommand.btree_PREVKEY;

      int maxResult = 10;

      if (totResult > 0)
        maxResult = totResult;

      String start = "";

      if (startParam != null)
        start = startParam;

      // byte mode = ServerCommand.btree_FREQUENZE;
      // mode |=ServerCommand.btree_SPETTRALE;
      byte mode = 1;
      mode |= 0x80;
      try {

        setCurrentSet(connection, theDb, qr);
        Vector result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, start, "", maxResult, prev_next, mode, min, max, null);
        // Vector result = getIdxKeys(connection,theDb,"TABELLA",searchAlias,"",start,maxResult,prev_next,ServerCommand.btree_FREQUENZE);
        if (result != null && result.size() > 0) {
          keys = new Vector();
          for (int i = 0; i < result.size(); i++) {
            // System.out.println(result.elementAt(i));
            keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
          }
        }
      } catch (UnsupportedEncodingException e) {
        throw new SQLException(e.getMessage());
      }

      return keys;

    } else {
      throw new XWException("searchAlias must not be null");
    }

  }

  /**
   * @deprecated
   * */
  public Vector selectFilteredKey(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam) throws SQLException, XWException {
    return selectFilteredKey(qr, searchAlias, totResult, orientation, startParam, "");
  }

  /**
   * @deprecated
   * */
  public Vector selectFilteredKey(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam, String part) throws SQLException, XWException {

    Vector keys = null;
    if (searchAlias != null) {

      byte prev_next = ServerCommand.btree_NEXTKEY;

      if (orientation.equalsIgnoreCase("up"))
        prev_next = ServerCommand.btree_NEXTKEY;
      else if (orientation.equalsIgnoreCase("down"))
        prev_next = ServerCommand.btree_PREVKEY;
      int maxResult = 10;

      if (totResult > 0)
        maxResult = totResult;

      String start = "";

      if (startParam != null)
        start = startParam;

      // byte mode = ServerCommand.btree_FREQUENZE;
      // mode |=ServerCommand.btree_SPETTRALE;
      byte mode = 1;
      mode |= 0x80;
      try {

        setCurrentSet(connection, theDb, qr);
        Vector result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, start, part, maxResult, prev_next, mode);

        // Vector result = getIdxKeys(connection,theDb,"TABELLA",searchAlias,"",start,maxResult,prev_next,ServerCommand.btree_FREQUENZE);
        if (result != null && result.size() > 0) {
          keys = new Vector();
          for (int i = 0; i < result.size(); i++) {
            // System.out.println(result.elementAt(i));
            keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
          }
        }
      } catch (UnsupportedEncodingException e) {
        throw new SQLException(e.getMessage());
      }

      return keys;

    } else {
      throw new XWException("searchAlias must not be null");
    }

  }

  private int getFrequency(Vector keys, int i) {
    DbKey key = (DbKey) keys.get(i);

    return key.getKeyFrequency();
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#sort(int, java.lang.String)
   */
  public void sort(int parentNumDoc, String sortCriteria) throws SQLException, XWException {

    QueryResult qr = null;
    if (sortCriteria != null) {

      qr = findSons(connection, theDb, parentNumDoc);
      if (qr != null) {

        qr = sortQueryResult(connection, theDb, qr, sortCriteria, ServerCommand.subcmd_NONE);

        for (int i = 0; i < qr.elements; i++) {

          int numDoc = getNumDoc(connection, theDb, qr, i);
          docRelDelete(connection, theDb, ServerCommand.navigarel_PADREFIGLIO, parentNumDoc, numDoc);
          docRelInsert(connection, theDb, ServerCommand.navigarel_PADREFIGLIO, parentNumDoc, numDoc);
          // System.out.println(doc.XML());

        }

      }
    } else {
      throw new XWException("Sort criteria must not be null");
    }

  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#cut_paste(int, int, byte)
   */
  public void cut_paste(int NumDoc01, int NumDoc02, byte navigationRule) throws SQLException, XWException {

    int numDoc = docRelNavigate(connection, theDb, ServerCommand.navigarel_FIGLIOPADRE, NumDoc01);
    try {
      docRelDelete(connection, theDb, ServerCommand.navigarel_PADREFIGLIO, numDoc, NumDoc01);
    } catch (SQLException e) {
      e.printStackTrace();
    }

    docRelInsert(connection, theDb, navigationRule, NumDoc01, NumDoc02);

  }

  // docRelInsert(numdoc01,numdoc02,relazione)
  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#docRelInsert(int, int, byte)
   */
  public void docRelInsert(int NumDoc01, int NumDoc02, byte navigationRule) throws SQLException, XWException {
    docRelInsert(connection, theDb, navigationRule, NumDoc01, NumDoc02);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#deleteHier(int)
   */
  public void deleteHier(int docNumber) throws SQLException, XWException {
    removeHier(connection, theDb, docNumber);
  }

  /**
   * @deprecated
   * */
  public String getXMLFromNumDoc(int numDoc) throws SQLException, XWException {

    XMLCommand theCommandLoad = new XMLCommand(XMLCommand.LoadDocument, XMLCommand.LoadDocument, numDoc);
    String xDoc = XMLCommand(connection, theDb, theCommandLoad.toString());
    return xDoc;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSingleXMLFromNumDoc(int)
   */
  public String getSingleXMLFromNumDoc(int numDoc) throws SQLException, XWException {
    // senza i commenti XW
    Doc doc = getDoc(connection, theDb, numDoc, 0, ServerCommand.load_noHilight);
    String xDoc = doc.XML();
    return xDoc;
  }

//  public String getSingleXMLFromNumDoc(int numDoc) throws SQLException, XWException {
//    String ilComando = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<cmd c=\"2\" bits=\"0\" d=\""+numDoc+"\"/></cmd>";
//    System.out.println("ilComando: " + ilComando);
//    String result = XMLCommand(connection, theDb, ilComando);
//    System.out.println("PRIMA result: " + result);
//    result = XMLCommand.getBstContent(result);
//    System.out.println("DOPO result: " + result);
//    return result;
//  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSingleXMLFromQr(it.highwaytech.db.QueryResult, int, boolean)
   */
  public String getSingleXMLFromQr(QueryResult qr, int index, boolean highlight) throws SQLException, XWException {
    String high = "";
    if (highlight)
      high = ServerCommand.load_hilight;
    else
      high = ServerCommand.load_noHilight;
    Doc doc = getDoc(connection, theDb, qr, index, 0, high);
    String xDoc = doc.XML();
    return xDoc;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getTitles(java.lang.String, java.lang.String)
   */
  public Vector getTitles(String xQuery, String sortCriteria) throws SQLException, XWException {
    Vector result = null;
    if (xQuery != null && !xQuery.trim().equals("")) {
      QueryResult qr = getQRfromPhrase(xQuery, sortCriteria);
      if (qr != null && qr.elements != 0) {
        result = getTitles(connection, theDb, qr, 0, qr.elements);
      }
    } else {
      throw new XWException("xQuery must not be null");
    }
    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getTitles(it.highwaytech.db.QueryResult)
   */
  public Vector getTitles(QueryResult qr) throws SQLException, XWException {
    Vector result = null;
    if (qr != null && qr.elements != 0) {
      result = getTitles(connection, theDb, qr, 0, qr.elements);
    }
    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#setTitleRole(java.lang.String)
   */
  public void setTitleRole(String compositionRole) throws SQLException, XWException {
    if (compositionRole != null && !compositionRole.trim().equals(""))
      setTitleRule(connection, theDb, compositionRole);
    else
      throw new XWException("compositionRole must not be null");
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#restoreTitleRole()
   */
  public void restoreTitleRole() throws SQLException {
    restoreTitleRule(connection, theDb);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getHierPath(int)
   */
  public HierPath getHierPath(int numDoc) throws SQLException, XWException {
    return hierPath(connection, theDb, numDoc);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getTotNumDoc()
   */
  public int getTotNumDoc() throws SQLException {
    return getDb(connection, theDb).catDocs;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getTheDb()
   */
  public String getTheDb() {
    return theDb;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getTheHost()
   */
  public String getTheHost() {
    return theHost;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getThePort()
   */
  public int getThePort() {
    return thePort;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getNumDocFather(int)
   */
  public int getNumDocFather(int docNumberChild) throws SQLException, XWException {
    return docRelNavigate(connection, theDb, ServerCommand.navigarel_FIGLIOPADRE, docNumberChild);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getNumDocFirstSon(int)
   */
  public int getNumDocFirstSon(int docNumberFather) throws SQLException, XWException {
    return docRelNavigate(connection, theDb, ServerCommand.navigarel_PADREFIGLIO, docNumberFather);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getNumDocPreviousBrother(int)
   */
  public int getNumDocPreviousBrother(int docNumber) throws SQLException, XWException {
    return docRelNavigate(connection, theDb, ServerCommand.navigarel_MAGGIOREMINORE, docNumber);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getNumDocNextBrother(int)
   */
  public int getNumDocNextBrother(int docNumber) throws SQLException, XWException {
    return docRelNavigate(connection, theDb, ServerCommand.navigarel_MINOREMAGGIORE, docNumber);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getLastUpdate()
   */
  public String getLastUpdate() throws XWException {
    String formatterDataInput = "yyyyMMdd";
    String formatterOutput = "EEEE d MMMM yyyy";
    DateFormat formatter = new SimpleDateFormat(formatterDataInput);
    java.text.SimpleDateFormat formatData = new java.text.SimpleDateFormat(formatterOutput, java.util.Locale.ITALIAN);
    String ultimoAgg = "";
    try {
      Vector leChiavi = selectSingleKey("UD,/xw/UserId/@DateMod", 1, "down", "9999");
      ultimoAgg = ((Key) leChiavi.get(0)).key.toString();
    } catch (Exception e) {
      e.printStackTrace();
    }
    try {
      Date date = (Date) formatter.parse(ultimoAgg);
      ultimoAgg = formatData.format(date);
    } catch (Exception e) {
      e.printStackTrace();
    }

    return ultimoAgg;
  }

  private Vector getKeys(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr, String part, String modeParam, boolean nullKey) throws SQLException, XWException {

    Vector keys = null;
    byte prev_next = ServerCommand.btree_NEXTKEY;
    String start = "";
    byte mode = ServerCommand.btree_FREQUENZE;
    if (searchAlias != null) {
      if (orientation.equalsIgnoreCase("up"))
        prev_next = ServerCommand.btree_NEXTKEY;
      else if (orientation.equalsIgnoreCase("down"))
        prev_next = ServerCommand.btree_PREVKEY;
      if (startParam != null)
        start = startParam;
      if (modeParam != null) {
        if (modeParam.equalsIgnoreCase("spettrale")) {
          mode = ServerCommand.btree_SPETTRALE;
        } else if (modeParam.equalsIgnoreCase("frequenze")) {
          mode = ServerCommand.btree_FREQUENZE;
        } else if (modeParam.equalsIgnoreCase("frequenze|spettrale")) {
          mode = ServerCommand.btree_SPETTRALE;
          mode |= ServerCommand.btree_FREQUENZE;
        }
      }
      try {
        if (qr != null) {
          setCurrentSet(connection, theDb, qr);
        }
        Vector result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, startParam, part, totResult, prev_next, mode, minFr, maxFr, null);
        if (result != null && result.size() > 0) {
          keys = new Vector();
          boolean hasNullKey = false;
          for (int i = 0; i < result.size(); i++) {
            if (nullKey == false && ((DbKey) result.elementAt(i)).toString().equalsIgnoreCase("&null;")) {
              hasNullKey = true;
              break;
            }
            keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
          }
          if (hasNullKey) {
            keys.removeAllElements();
            result = getIdxKeys(connection, theDb, "TABELLA", searchAlias, startParam, part, totResult + 1, prev_next, mode, minFr, maxFr, null);
            for (int i = 0; i < result.size(); i++) {
              if (!((DbKey) result.elementAt(i)).toString().equalsIgnoreCase("&null;")) {
                keys.addElement(new Key(result.elementAt(i), getFrequency(result, i)));
              }
            }
          }

        }
      } catch (UnsupportedEncodingException e) {
        throw new SQLException(e.getMessage());
      }
    } else {
      throw new SQLException("searchAlias must not be null");
    }
    return keys;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String)
   */
  public Vector getFilteredKeys(String filterXQuery, String searchAlias, int totResult, String orientation, String startParam) throws SQLException, XWException {
    QueryResult qr = find(connection, theDb, filterXQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
    return getKeys(qr, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), "", null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String)
   */
  public Vector getFilteredKeys(String filterXQuery, String searchAlias, int totResult, String orientation, String startParam, String part) throws SQLException, XWException {
    QueryResult qr = find(connection, theDb, filterXQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
    return getKeys(qr, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), part, null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, int, int)
   */
  public Vector getFilteredKeys(String filterXQuery, String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr) throws SQLException, XWException {
    QueryResult qr = find(connection, theDb, filterXQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
    return getKeys(qr, searchAlias, totResult, orientation, startParam, minFr, maxFr, "", null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, int, int, java.lang.String)
   */
  public Vector getFilteredKeys(String filterXQuery, String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr, String part) throws SQLException, XWException {
    QueryResult qr = find(connection, theDb, filterXQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
    return getKeys(qr, searchAlias, totResult, orientation, startParam, minFr, maxFr, part, null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, int, int, java.lang.String, java.lang.String)
   */
  public Vector getFilteredKeys(String filterXQuery, String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr, String part, String modeParam) throws SQLException, XWException {
    QueryResult qr = find(connection, theDb, filterXQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
    return getKeys(qr, searchAlias, totResult, orientation, startParam, minFr, maxFr, part, modeParam, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, boolean)
   */
  public Vector getFilteredKeys(String filterXQuery, String searchAlias, int totResult, String orientation, String startParam, boolean nullKey) throws SQLException, XWException {
    QueryResult qr = find(connection, theDb, filterXQuery, "", ServerCommand.find_SORT, adjacency, 0, null);
    return getKeys(qr, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), "", null, nullKey);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(it.highwaytech.db.QueryResult, java.lang.String, int, java.lang.String, java.lang.String)
   */
  public Vector getFilteredKeys(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam) throws SQLException, XWException {
    return getKeys(qr, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), "", null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(it.highwaytech.db.QueryResult, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String)
   */
  public Vector getFilteredKeys(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam, String part) throws SQLException, XWException {
    return getKeys(qr, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), part, null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(it.highwaytech.db.QueryResult, java.lang.String, int, java.lang.String, java.lang.String, int, int)
   */
  public Vector getFilteredKeys(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr) throws SQLException, XWException {
    return getKeys(qr, searchAlias, totResult, orientation, startParam, minFr, maxFr, "", null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(it.highwaytech.db.QueryResult, java.lang.String, int, java.lang.String, java.lang.String, int, int, java.lang.String)
   */
  public Vector getFilteredKeys(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr, String part) throws SQLException, XWException {
    return getKeys(qr, searchAlias, totResult, orientation, startParam, minFr, maxFr, part, null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(it.highwaytech.db.QueryResult, java.lang.String, int, java.lang.String, java.lang.String, int, int, java.lang.String, java.lang.String)
   */
  public Vector getFilteredKeys(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr, String part, String modeParam) throws SQLException, XWException {
    return getKeys(qr, searchAlias, totResult, orientation, startParam, minFr, maxFr, part, modeParam, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getFilteredKeys(it.highwaytech.db.QueryResult, java.lang.String, int, java.lang.String, java.lang.String, boolean)
   */
  public Vector getFilteredKeys(QueryResult qr, String searchAlias, int totResult, String orientation, String startParam, boolean nullKey) throws SQLException, XWException {
    return getKeys(qr, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), "", null, nullKey);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSingleKeys(java.lang.String, int, java.lang.String, java.lang.String)
   */
  public Vector getSingleKeys(String searchAlias, int totResult, String orientation, String startParam) throws SQLException, XWException {
    return getKeys(null, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), "", null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSingleKeys(java.lang.String, int, java.lang.String, java.lang.String, java.lang.String)
   */
  public Vector getSingleKeys(String searchAlias, int totResult, String orientation, String startParam, String part) throws SQLException, XWException {
    return getKeys(null, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), part, null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSingleKeys(java.lang.String, int, java.lang.String, java.lang.String, int, int)
   */
  public Vector getSingleKeys(String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr) throws SQLException, XWException {
    return getKeys(null, searchAlias, totResult, orientation, startParam, minFr, maxFr, "", null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSingleKeys(java.lang.String, int, java.lang.String, java.lang.String, int, int, java.lang.String)
   */
  public Vector getSingleKeys(String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr, String part) throws SQLException, XWException {
    return getKeys(null, searchAlias, totResult, orientation, startParam, minFr, maxFr, part, null, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSingleKeys(java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
   */
  public Vector getSingleKeys(String searchAlias, int totResult, String orientation, String startParam, String part, String modeParam) throws SQLException, XWException {
    return getKeys(null, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), part, modeParam, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSingleKeys(java.lang.String, int, java.lang.String, java.lang.String, int, int, java.lang.String, java.lang.String)
   */
  public Vector getSingleKeys(String searchAlias, int totResult, String orientation, String startParam, int minFr, int maxFr, String part, String modeParam) throws SQLException, XWException {
    return getKeys(null, searchAlias, totResult, orientation, startParam, minFr, maxFr, part, modeParam, false);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getSingleKeys(java.lang.String, int, java.lang.String, java.lang.String, boolean)
   */
  public Vector getSingleKeys(String searchAlias, int totResult, String orientation, String startParam, boolean nullKey) throws SQLException, XWException {
    return getKeys(null, searchAlias, totResult, orientation, startParam, 1, getTotNumDoc(), "", null, nullKey);
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getTitleFromNumDoc(int)
   */
  public String getTitleFromNumDoc(int numdoc) throws SQLException, XWException {
    return getTitle(connection, theDb, numdoc).getTitle();
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getPnce()
   */
  public String getPnce() {
    return thePnce;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getPne()
   */
  public String getPne() {
    return thePne;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#changeArchive(java.lang.String, java.lang.String)
   */
  public void changeArchive(String logicDBName, String optionalPne) {
    this.theDb = logicDBName;
    if (optionalPne != null && !optionalPne.trim().equals("")) {
      this.thePne = optionalPne;
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#getAdjacency()
   */
  public int getAdjacency() {
    return adjacency;
  }

  /*
   * (non-Javadoc)
   *
   * @see com.regesta.framework.xw.XMLEngine#setAdjacency(int)
   */
  public void setAdjacency(int i) {
    adjacency = i;
  }
}
TOP

Related Classes of org.xdams.xw.XWConnection

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.