Package com.agiletec.plugins.jpversioning.util

Source Code of com.agiletec.plugins.jpversioning.util.JpversioningTestHelper

/*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
* This file is part of Entando software.
* Entando is a free software;
* You can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2.
*
* See the file License for the specific language governing permissions  
* and limitations under the License
*
*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
*/
package com.agiletec.plugins.jpversioning.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.Date;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;

import com.agiletec.aps.system.common.AbstractDAO;
import com.agiletec.aps.system.exception.ApsSystemException;
import com.agiletec.aps.util.DateConverter;
import com.agiletec.plugins.jacms.aps.system.JacmsSystemConstants;
import com.agiletec.plugins.jacms.aps.system.services.content.IContentManager;
import com.agiletec.plugins.jacms.aps.system.services.content.model.Content;
import com.agiletec.plugins.jacms.aps.system.services.content.model.ContentRecordVO;
import com.agiletec.plugins.jacms.aps.system.services.resource.model.ResourceInterface;
import com.agiletec.plugins.jpversioning.aps.system.services.versioning.ContentVersion;

public class JpversioningTestHelper extends AbstractDAO {
 
  public JpversioningTestHelper(DataSource dataSource, ApplicationContext context) {
    this.setDataSource(dataSource);
    this._contentManager = (IContentManager) context.getBean(JacmsSystemConstants.CONTENT_MANAGER);
  }
 
  public void initContentVersions() throws ApsSystemException {
    this.cleanContentVersions();
    ContentRecordVO record = this._contentManager.loadContentVO("ART1");
    ContentVersion version1 = this.createContentVersion(1, record.getId(), record.getTypeCode(),
        "Articolo", Content.STATUS_DRAFT, record.getXmlWork(), DateConverter.parseDate("2005-02-13", "yyyy-MM-dd"),
        "0.0", 0, true, "admin");
    this.addContentVersion(version1);
    ContentVersion version2 = this.createContentVersion(2, record.getId(), record.getTypeCode(),
        "Articolo 2", Content.STATUS_DRAFT, record.getXmlWork(), DateConverter.parseDate("2005-02-14", "yyyy-MM-dd"),
        "0.1", 0, false, "mainEditor");
    this.addContentVersion(version2);
    ContentVersion version3 = this.createContentVersion(3, record.getId(), record.getTypeCode(),
        "Articolo 3", Content.STATUS_READY, record.getXmlWork(), DateConverter.parseDate("2005-02-15", "yyyy-MM-dd"),
        "1.0", 1, true, "mainEditor");
    this.addContentVersion(version3);
  }
 
  public void cleanContentVersions() throws ApsSystemException {
    Connection conn = null;
    Statement stat = null;
    try {
      conn = this.getConnection();
      stat = conn.createStatement();
      stat.executeUpdate(DELETE_VERSIONS);
    } catch (Throwable t) {
      throw new ApsSystemException("Error cleaning content versions", t);
    } finally {
      closeDaoResources(null, stat, conn);
    }
  }
 
  public void cleanTrashedResources() throws ApsSystemException {
    Connection conn = null;
    Statement stat = null;
    try {
      conn = this.getConnection();
      stat = conn.createStatement();
      stat.executeUpdate(DELETE_TRASHED_RESOURCES);
    } catch (Throwable t) {
      throw new ApsSystemException("Error cleaning trashed resources", t);
    } finally {
      closeDaoResources(null, stat, conn);
    }
  }
 
  public void addContentVersion(ContentVersion contentVersion) {
    Connection conn = null;
    PreparedStatement stat = null;
    try {
      conn = this.getConnection();
      conn.setAutoCommit(false);
      stat = conn.prepareStatement(ADD_VERSION_RECORD);
      stat.setLong(1, contentVersion.getId());
      stat.setString(2, contentVersion.getContentId());
      stat.setString(3, contentVersion.getContentType());
      stat.setString(4, contentVersion.getDescr());
      stat.setString(5, contentVersion.getStatus());
      stat.setString(6, contentVersion.getXml());
      stat.setTimestamp(7, new Timestamp(contentVersion.getVersionDate().getTime()));
      stat.setString(8, contentVersion.getVersion());
      stat.setInt(9, contentVersion.getOnlineVersion());
      int approved = contentVersion.isApproved() ? 1 : 0;
      stat.setInt(10, approved);
      stat.setString(11, contentVersion.getUsername());
      stat.executeUpdate();
      conn.commit();
    } catch (Throwable t) {
      this.executeRollback(conn);
      processDaoException(t, "Error adding VersionRecord", "addVersionRecord");
    } finally {
      closeDaoResources(null, stat, conn);
    }
  }
 
  public void addTrashedResource(String id, String type, String descr, String mainGroup, String xml, ResourceInterface resource) {
    Connection conn = null;
    PreparedStatement stat = null;
        try {
          conn = this.getConnection();
          stat = conn.prepareStatement(ADD_RESOURCE);
      stat.setString(1, resource.getId());
      stat.setString(2, resource.getType());
      stat.setString(3, resource.getDescr());
      stat.setString(4, resource.getMainGroup());
      stat.setString(5, resource.getXML());
      stat.executeUpdate();
        } catch (Throwable t) {
            processDaoException(t, "Error adding record for trashed resource", "addTrashedResource");
        } finally {
            closeDaoResources(null, stat, conn);
        }
  }
 
  public ContentVersion createContentVersion(long id, String contentId, String contentType,
      String descr, String status, String xml, Date versionDate, String version,
      int onlineVersion, boolean approved, String username) {
    ContentVersion contentVersion = new ContentVersion();
    contentVersion.setId(id);
    contentVersion.setContentId(contentId);
    contentVersion.setContentType(contentType);
    contentVersion.setDescr(descr);
    contentVersion.setStatus(status);
    contentVersion.setXml(xml);
    contentVersion.setVersionDate(versionDate);
    contentVersion.setVersion(version);
    contentVersion.setOnlineVersion(onlineVersion);
    contentVersion.setApproved(approved);
    contentVersion.setUsername(username);
    return contentVersion;
  }
 
  private IContentManager _contentManager;
 
  private static final String DELETE_VERSIONS =
    "DELETE FROM jpversioning_versionedcontents";
 
  private static final String DELETE_TRASHED_RESOURCES =
    "DELETE FROM jpversioning_trashedresources";
 
  private final String ADD_VERSION_RECORD =
    "INSERT INTO jpversioning_versionedcontents ( id, contentid, contenttype, descr, " +
    "status, contentxml, versiondate, versioncode, onlineversion, approved, username ) " +
    " VALUES ( ? , ? , ? , ? , ? , ? , ? , ? , ?, ?, ? )";
 
  private final String ADD_RESOURCE =
    "INSERT INTO jpversioning_trashedresources ( resid, restype, descr, maingroup, resxml ) VALUES ( ? , ? , ? , ? , ? )";
 
}
TOP

Related Classes of com.agiletec.plugins.jpversioning.util.JpversioningTestHelper

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.