TKDBContentNewVersionByVersionId.java :  » Content-Management-System » webman » com » teamkonzept » webman » mainint » db » queries » Java Open Source

Java Open Source » Content Management System » webman 
webman » com » teamkonzept » webman » mainint » db » queries » TKDBContentNewVersionByVersionId.java
package com.teamkonzept.webman.mainint.db.queries;

import com.teamkonzept.db.*;
import java.sql.*;
import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
import com.teamkonzept.webman.mainint.db.queries.content.*;

/**
 *
 * @author
 * @version
 */
public class TKDBContentNewVersionByVersionId extends TKExtendedPrepQuery
{

    public final static boolean ISPREPARED = true;

    public final static String[] ORDER = {
      "INSTANCE_ID", "VERSION_ID", "STATUS_ID", "VERS_INFO", "VERS_AUTHOR"
    };

    public final static Object[][] TYPES =
  {
        {"VERS_INFO", new Integer(Types.VARCHAR)},
        {"VERS_AUTHOR", new Integer(Types.VARCHAR)}
    };

    public final static boolean[] SETRELEVANTS = { false };

    protected static Class[] queryClasses = {
        SelectContentIDFromContentVersion.class,
      SelectMaxContentVersion.class,
      InsertContentVersion.class
    };

    public boolean execute()
    {
  try
  {
      init(queryClasses);  // init query objects

      boolean isNotOpen = aTKDBConnection.isAutoCommit();
      if (isNotOpen)
      {
    TKDBManager.beginTransaction();
      }

      int cont_id = 0;
      // SELECT @CONT_ID= (SELECT CONTENT_ID FROM CONTENT_VERSION WHERE VERSION_ID = @VERS_ID)
      // PARAMS: VERSION_ID

     queries[0].setQueryParams("VERSION_ID", queryParams.get("VERSION_ID"));
        queries[0].execute();
      ResultSet rs = queries[0].fetchResultSet();
      if (rs != null && rs.next())
      {
    cont_id = rs.getInt(1);
      }

      int new_vers_id = 1;
      // SELECT @NEW_VERS_ID=ISNULL(MAX(VERSION_ID)+1, 1) FROM CONTENT_VERSION
      queries[1].execute();
      rs = queries[1].fetchResultSet();
      if (rs != null && rs.next())
      {
    new_vers_id = rs.getInt(1) + 1;
      }

      // INSERT INTO CONTENT_VERSION (VERSION_ID, INSTANCE_ID, CONTENT_ID, STATUS_ID, DATE, INFO, AUTHOR)
      // VALUES (@NEW_VERS_ID, @INST_ID, @CONT_ID, ?, {fn NOW()}, ?, ?)
      // PARAMS: VERSION_ID, INSTANCE_ID, CONTENT_ID, STATUS_ID, DATE, VERS_INFO, VERS_AUTHOR
      // TYPES: VERS_INFO: Types.VARCHAR, VERS_AUTHOR: Types.VARCHAR
      queries[2].setQueryParams("VERSION_ID", new Integer(new_vers_id));
      queries[2].setQueryParams("INSTANCE_ID",
              queryParams.get("INSTANCE_ID"));
      queries[2].setQueryParams("CONTENT_ID", new Integer(cont_id));
      queries[2].setQueryParams("STATUS_ID",
              queryParams.get("STATUS_ID"));
      queries[2].setQueryParams("DATE",
              new java.sql.Timestamp(System.
                   currentTimeMillis
                   ()));
      queries[2].setQueryParams("VERS_INFO",
              queryParams.get("VERS_INFO"));
      queries[2].setQueryParams("VERS_AUTHOR",
              queryParams.get("VERS_AUTHOR"));
      queries[2].execute();

      if (isNotOpen)
      {
    aTKDBConnection.commitTransaction();  // commit all changes
      }

  }
  catch(Throwable t)
  {
      TKDBManager.safeRollbackTransaction(t);
  }
  return hasResults();
    }

    public void initQuery(Connection con)
    {
  super.initQuery(con, ISPREPARED, ORDER, TYPES, SETRELEVANTS, null);
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.