Package com.agiletec.plugins.jpaddressbook.util

Source Code of com.agiletec.plugins.jpaddressbook.util.JpaddressbookTestHelper

/*
*
* 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.jpaddressbook.util;

import java.sql.Connection;
import java.sql.Statement;
import java.util.Calendar;
import java.util.Date;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;

import com.agiletec.aps.system.SystemConstants;
import com.agiletec.aps.system.common.AbstractDAO;
import com.agiletec.aps.system.common.entity.model.attribute.DateAttribute;
import com.agiletec.aps.system.common.entity.model.attribute.MonoTextAttribute;
import com.agiletec.aps.system.services.lang.ILangManager;
import com.agiletec.plugins.jpaddressbook.aps.system.services.addressbook.AddressBookDAO;
import com.agiletec.plugins.jpaddressbook.aps.system.services.addressbook.model.Contact;

import org.entando.entando.aps.system.services.userprofile.IUserProfileManager;
import org.entando.entando.aps.system.services.userprofile.model.IUserProfile;
import org.entando.entando.aps.system.services.userprofile.model.UserProfile;

public class JpaddressbookTestHelper extends AbstractDAO {
 
  public JpaddressbookTestHelper(ApplicationContext applicationContext) {
    DataSource dataSource = (DataSource) applicationContext.getBean("servDataSource");
    this.setDataSource(dataSource);
   
    this._addressBookDAO = new AddressBookDAO();
    this._addressBookDAO.setDataSource(dataSource);
    ILangManager langManager = (ILangManager) applicationContext.getBean(SystemConstants.LANGUAGE_MANAGER);
    this._addressBookDAO.setLangManager(langManager);
   
    this._profileManager = (IUserProfileManager) applicationContext.getBean(SystemConstants.USER_PROFILE_MANAGER);
  }
 
  public void cleanAddressBook() {
    Connection conn = null;
    try {
      conn = this.getConnection();
      this.executeQuery(DELETE_CONTACT_ATTRIBUTE_ROLE_RECORDS, conn);
      this.executeQuery(DELETE_CONTACT_SEARCH_RECORDS, conn);
      this.executeQuery(DELETE_CONTACTS, conn);
    } catch (Throwable t) {
      t.printStackTrace();
    } finally {
      closeConnection(conn);
    }
  }
 
  private void executeQuery(String query, Connection conn) throws Throwable {
    Statement stat = null;
    try {
      stat = conn.createStatement();
      stat.executeUpdate(query);
    } catch (Throwable t) {
      throw t;
    } finally {
      closeDaoResources(null, stat);
    }
  }
 
  public void addContact(String id, String owner,
      boolean publicContact, String fullname, String email, Date birthdate, String lang) {
    IUserProfile profile = this.createUserProfile(id, fullname, email, birthdate, lang);
    Contact contact = this.createContact(id, owner, publicContact, profile);
    this._addressBookDAO.addContact(contact);
  }
 
  public Contact createContact(String id, String owner, boolean publicContact, IUserProfile profile) {
    Contact contact = new Contact(profile);
    contact.setId(id);
    contact.setOwner(owner);
    contact.setPublicContact(publicContact);
    return contact;
  }
 
  public IUserProfile createUserProfile(String id, String fullname, String email, Date birthdate, String lang) {
    UserProfile profile = (UserProfile) this._profileManager.getDefaultProfileType();
    profile.setId(id);
   
    MonoTextAttribute fullnameAttr = (MonoTextAttribute) profile.getAttribute("fullname");
    fullnameAttr.setSearcheable(true);
    fullnameAttr.setText(fullname);
   
    MonoTextAttribute emailAttr = (MonoTextAttribute) profile.getAttribute("email");
    emailAttr.setText(email);
   
    DateAttribute birthdateAttr = (DateAttribute) profile.getAttribute("birthdate");
    birthdateAttr.setDate(birthdate);
   
    MonoTextAttribute langAttr = (MonoTextAttribute) profile.getAttribute("language");
    langAttr.setText(lang);
   
    return profile;
  }
 
  public Date setBirthdate(int year, int month, int day){
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR, year);
    calendar.set(Calendar.MONTH, month);
    calendar.set(Calendar.DAY_OF_MONTH, day);
    Date birthdate = new Date(calendar.getTimeInMillis());
    return birthdate;
  }
 
  private static final String DELETE_CONTACTS =
    "DELETE FROM jpaddressbook_contacts";
 
  private static final String DELETE_CONTACT_SEARCH_RECORDS =
    "DELETE FROM jpaddressbook_contactsearch";
 
  private static final String DELETE_CONTACT_ATTRIBUTE_ROLE_RECORDS =
    "DELETE FROM jpaddressbook_attroles";
 
  private AddressBookDAO _addressBookDAO;
  protected IUserProfileManager _profileManager;
 
}
TOP

Related Classes of com.agiletec.plugins.jpaddressbook.util.JpaddressbookTestHelper

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.