Package org.openmeetings.app.xmlimport

Source Code of org.openmeetings.app.xmlimport.UserImport

package org.openmeetings.app.xmlimport;

import java.io.InputStream;
import java.util.Iterator;

import org.slf4j.Logger;
import org.red5.logging.Red5LoggerFactory;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.openmeetings.app.data.user.Addressmanagement;
import org.openmeetings.app.data.user.Emailmanagement;
import org.openmeetings.app.data.user.Organisationmanagement;
import org.openmeetings.app.data.user.Usermanagement;
import org.openmeetings.app.data.user.dao.UsersDaoImpl;
import org.openmeetings.app.persistence.beans.user.Users;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
import org.openmeetings.utils.math.CalendarPatterns;

public class UserImport {
 
  private static final Logger log = Red5LoggerFactory.getLogger(UserImport.class, ScopeApplicationAdapter.webAppRootKey);
 
  public UserImport() {  }

  private static UserImport instance = null;

  public static synchronized UserImport getInstance() {
    if (instance == null) {
      instance = new UserImport();
    }
    return instance;
 
 
  public Long addUsersByDocument(InputStream is) throws Exception {
   
    SAXReader reader = new SAXReader();
        Document document = reader.read(is);
       
        Element root = document.getRootElement();
       
        for (Iterator i = root.elementIterator(); i.hasNext(); ) {
          Element itemObject = (Element) i.next();
          if (itemObject.getName().equals("users")) {
            this.addUsersByDocument(itemObject);
          }
        }
       
        return null;       
  }
 
  private Long addUsersByDocument(Element userRoot) throws Exception {
       
        for (Iterator i = userRoot.elementIterator( "user" ); i.hasNext(); ) {
            Element itemUsers = (Element) i.next();
           
            Users us = new Users();

            us.setAge(CalendarPatterns.parseDate(itemUsers.element("age").getText()));
            us.setAvailible(Integer.valueOf(itemUsers.element("availible").getText()).intValue());
      us.setDeleted(itemUsers.element("deleted").getText());
      us.setFirstname(itemUsers.element("firstname").getText());
      us.setLastname(itemUsers.element("lastname").getText());
      us.setLogin(itemUsers.element("login").getText());
      us.setPassword(itemUsers.element("pass").getText());
     
      us.setPictureuri(itemUsers.element("pictureuri").getText());
      if (itemUsers.element("language_id").getText().length()>0)
        us.setLanguage_id(Long.valueOf(itemUsers.element("language_id").getText()).longValue());
       
      us.setStatus(Integer.valueOf(itemUsers.element("status").getText()).intValue());
      us.setRegdate(CalendarPatterns.parseDate(itemUsers.element("regdate").getText()));
      us.setTitle_id(Integer.valueOf(itemUsers.element("title_id").getText()).intValue());
      us.setLevel_id(Long.valueOf(itemUsers.element("level_id").getText()).longValue());
     
     
      String additionalname = itemUsers.element("additionalname").getText();
      String comment = itemUsers.element("comment").getText();
      // A User can not have a deleted Adress, you cannot delete the
      // Adress of an User
      // String deleted = u.getAdresses().getDeleted()
      // Phone Number not done yet
      String fax = itemUsers.element("fax").getText();
      Long state_id = Long.valueOf(itemUsers.element("state_id").getText()).longValue();
      String street = itemUsers.element("street").getText();
      String town = itemUsers.element("town").getText();
      String zip = itemUsers.element("zip").getText();
     
      String phone = "";
      if (itemUsers.element("phone") != null) {
        phone = itemUsers.element("phone").getText();
      }
     
      String email = "";
      if (itemUsers.element("mail") != null) {
        email = itemUsers.element("mail").getText();
      }
      // = .getText();
     
      boolean mailCheck = true;
     
      for (Iterator itMail = itemUsers.elementIterator("emails");itMail.hasNext(); ){
        Element itemElement = (Element) itMail.next();
        for (Iterator mailIterator = itemElement.elementIterator("mail");mailIterator.hasNext(); ){
          Element mailElement = (Element) mailIterator.next();
          email = mailElement.getText();
          if (!Emailmanagement.getInstance().checkUserEMail(mailElement.getText())) mailCheck=false;
       
      }       
     
      //check for duplicate Login or mail:
      if (UsersDaoImpl.getInstance().checkUserLogin(us.getLogin()) && mailCheck) {
     
        Long address_id = Addressmanagement.getInstance().saveAddress(street, zip, town, state_id, additionalname, "",fax, phone, email);
       
        us.setAdresses(Addressmanagement.getInstance().getAdressbyId(address_id));
       
        Long user_id = Usermanagement.getInstance().addUser(us);
       
        for (Iterator itOrga = itemUsers.elementIterator("organisations");itOrga.hasNext(); ){
          Element itemElement = (Element) itOrga.next();
          for (Iterator orgIterator = itemElement.elementIterator("organisation_id");orgIterator.hasNext(); ){
            Element orgElement = (Element) orgIterator.next();
            Long organisation_id = Long.valueOf(orgElement.getText()).longValue();
            Organisationmanagement.getInstance().addUserToOrganisation(us.getUser_id(), organisation_id, null, "");
         
        }   
       
          }
        }
   
    return null;
 

}
TOP

Related Classes of org.openmeetings.app.xmlimport.UserImport

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.