Package de.iritgo.aktera.util.string

Examples of de.iritgo.aktera.util.string.SuperString


    {
      recordSet.clear();
    }

    //myUpdates = null;
    SuperString myStatement = new SuperString(64);

    myStatement.append("SELECT ");

    String oneFieldName = null;

    for (Iterator i = myMetaData.getFieldNames().iterator(); i.hasNext();)
    {
      oneFieldName = (String) i.next();

      if (needComma)
      {
        myStatement.append(", ");
      }

      retrievedFieldList.add(oneFieldName);
      myStatement.append(selectFieldString(oneFieldName));

      needComma = true;
    } /* for each field */
    myStatement.append(" FROM ");
    myStatement.append(myMetaData.getTableName());

    Connection myConnection = null;
    Statement s = null;
    ResultSet rs = null;

    try
    {
      if (currentTransaction != null)
      {
        myConnection = currentTransaction.getConnection();
      }
      else
      {
        myConnection = myDataSource.getConnection();
      }

      if (myMetaData.getDatabaseType().getSubSetPosition() == DatabaseType.SUBSET_AFTER_TABLE
              && (offsetRecord > 0 || maxRecords > 0))
      {
        // Insert limitation stub after table nomination
        String limitStub = makeSubSetStub();

        myStatement.append(" ");
        myStatement.append(limitStub);
        myStatement.append(" ");
      }

      SuperString whereClause;

      if (customWhereClause != null)
      {
        whereClause = new SuperString(customWhereClause);
        myStatement.append(customWhereClause);
        customWhereClause = null;
      }
      else
      {
        whereClause = buildWhereClauseBuffer(true);
        myStatement.append(whereClause);
      }

      if (myMetaData.getDatabaseType().getSubSetPosition() == DatabaseType.SUBSET_AFTER_WHERE
              && (offsetRecord > 0 || maxRecords > 0))
      {
        // Insert limitation stub after table nomination
        String limitStub = makeSubSetStub();

        if (whereClause.length() > 0)
        {
          myStatement.append(" AND");
        }

        myStatement.append(" ");
View Full Code Here


   *         statement
   */
  protected SuperString buildWhereClauseBuffer(boolean useAllFields) throws PersistenceException
  {
    Iterator fieldsToUse = null;
    SuperString myStatement = new SuperString(32);

    if (useAllFields)
    {
      fieldsToUse = myMetaData.getFieldNames().iterator();
    }
    else
    {
      fieldsToUse = myMetaData.getKeyFieldNames().iterator();
    }

    /* Now go thru each field - if it is non-empty, add it's criteria */
    /* to the where clause. If it is empty, just skip to the next one */
    boolean addWhere = true;
    boolean addAnd = false;
    String oneFieldName = null;
    String oneFieldValue = null;

    boolean skipText = myMetaData.getDatabaseType().allowTextQueries();

    boolean skipField = false;

    while (fieldsToUse.hasNext())
    {
      oneFieldName = (String) fieldsToUse.next();
      skipField = false;

      oneFieldValue = SuperString.notNull(getFieldString(oneFieldName));

      String rangeString = myMetaData.getDatabaseType().denotesRange(oneFieldValue);

      if (! oneFieldValue.equals(""))
      {
        //Changed by Adam. Do formatting here for date/time types, or
        // quote
        //if needed.
        //oneFieldValue = quoteIfNeeded(oneFieldName, rangeString);
        oneFieldValue = getValueForUpdate(oneFieldName, rangeString);
      }

      if (oneFieldValue == null)
      {
        skipField = true;
      }

      if (oneFieldValue.trim().equals("\'\'"))
      {
        skipField = true;
      }

      if (myMetaData.getType(oneFieldName).equalsIgnoreCase("text"))
      {
        if (skipText)
        {
          skipField = true;

          if (log.isDebugEnabled())
          {
            log.debug("Skipping criteria in text field '" + oneFieldName + "'");
          }
        }
        else
        {
          if (oneFieldValue.indexOf("\n") > 0)
          {
            oneFieldValue = SuperString.replace(oneFieldValue, "\n", "");
          }

          if (oneFieldValue.indexOf("\r") > 0)
          {
            oneFieldValue = SuperString.replace(oneFieldValue, "\r", "");
          }

          if (oneFieldValue.equals("\'\'"))
          {
            skipField = true;
          }
        }
      } /* if text field */
      if (oneFieldValue.trim().equals(""))
      {
        skipField = true;
      }

      if (! skipField)
      {
        if (addWhere)
        {
          myStatement.append(" WHERE ");
          addWhere = false;
        }

        if (addAnd)
        {
          myStatement.append(" AND ");
        }

        if (containsWildCards(oneFieldValue))
        {
          myStatement.append(myMetaData.getDBFieldName(oneFieldName));
          myStatement.append(" LIKE ");
          myStatement.append(oneFieldValue);
        }
        else if (rangeString != null)
        {
          myStatement.append(myMetaData.getDBFieldName(oneFieldName));
          myStatement.append(" " + rangeString + " ");
          myStatement.append(oneFieldValue);
        }
        else if ((oneFieldValue.trim().equalsIgnoreCase("is null"))
                || (oneFieldValue.trim().equalsIgnoreCase("is not null")))
        {
          myStatement.append(myMetaData.getDBFieldName(oneFieldName));
          myStatement.append(" ");
          myStatement.append(oneFieldValue.trim());
        }
        else
        {
          myStatement.append(myMetaData.getDBFieldName(oneFieldName));
          myStatement.append(" = ");
          myStatement.append(oneFieldValue);
        }

        addAnd = true;
      }

      /* if field is not skipped for some reason */
    }

    /* for each field */
    if (log.isDebugEnabled())
    {
      log.debug("Built where clause '" + myStatement.toString() + "'");
    }

    return myStatement;
  }
View Full Code Here

   */
  protected synchronized double sqlAggrFunction(String func, String fieldName) throws PersistenceException
  {
    checkAllowed("L");

    SuperString myStatement = new SuperString(48);

    myStatement.append("SELECT " + func);
    myStatement.append("(" + fieldName + ") FROM ");
    myStatement.append(myMetaData.getTableName());

    myStatement.append(buildWhereClauseBuffer(true));

    Connection myConnection = null;
    Statement s = null;
    ResultSet rs = null;

    try
    {
      if (currentTransaction != null)
      {
        myConnection = currentTransaction.getConnection();
      }
      else
      {
        myConnection = myDataSource.getConnection();
      }

      s = myConnection.createStatement();

      if (log.isDebugEnabled())
      {
        log.debug("Executing: " + myStatement.toString());
      }

      rs = s.executeQuery(myStatement.toString());

      if (rs.next())
      {
        return rs.getDouble(1);
      }
View Full Code Here

      case java.sql.Types.TIMESTAMP:

        try
        {
          //                     SuperString ss = new SuperString(value);
          SuperString ss = new SuperString(getFieldDate(fieldName).toString());

          ss.toDate();
        }
        catch (IllegalArgumentException ie)
        {
          throw new PersistenceException(ie.getMessage());
        }
View Full Code Here

TOP

Related Classes of de.iritgo.aktera.util.string.SuperString

Copyright © 2018 www.massapicom. 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.