package com.webgroupmedia.impex.qualityunit.entities;
import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import com.cerb4.impex.Configuration;
import com.cerb4.impex.XMLThread;
import com.webgroupmedia.impex.qualityunit.Database;
import com.webgroupmedia.impex.qualityunit.Driver;
public class Worker {
public void export() {
Connection conn = Database.getInstance();
String cfgOutputDir = Configuration.get("outputDir", "output");
String sExportEncoding = new String(Configuration.get("exportEncoding", "UTF-8"));
Integer iCount = 0;
Integer iSubDir = 0;
try {
Statement s = conn.createStatement();
s.execute("SELECT u.user_id, u.name, u.email, u.password, u.user_type FROM users u WHERE user_type IN ('a', 'g')");
ResultSet rs = s.getResultSet();
File outputDir = null;
while(rs.next()) {
if(0 == iCount % 2000 || 0 == iCount) {
iSubDir++;
// Make the output subdirectory
outputDir = new File(cfgOutputDir+"/00-workers-" + String.format("%06d", iSubDir));
outputDir.mkdirs();
}
Document doc = DocumentHelper.createDocument();
Element eWorker = doc.addElement("worker");
doc.setXMLEncoding(sExportEncoding);
String sId = Driver.fixMagicQuotes(rs.getString("user_id"));
String sName = Driver.fixMagicQuotes(rs.getString("name"));
String sEmail = Driver.fixMagicQuotes(rs.getString("email"));
String sPassword = rs.getString("password");
String sUserType = Driver.fixMagicQuotes(rs.getString("user_type"));
Integer isSuperuser = (sUserType.equals("a") ? 1 : 0);
if(0 == sEmail.length())
continue;
String sFirstName = sName;
String sLastName = "";
// Split names on the first space
if(sName.indexOf(" ") != -1) {
sFirstName = sName.substring(0, sName.indexOf(" "));
sLastName = sName.substring(sName.indexOf(" "));
}
eWorker.addElement("first_name").addText(sFirstName);
eWorker.addElement("last_name").addText(sLastName);
eWorker.addElement("email").addText(sEmail);
eWorker.addElement("password").addText(sPassword);
eWorker.addElement("is_superuser").addText(isSuperuser.toString());
String sXmlFileName = outputDir.getPath() + "/" + String.format("%s", sId) + ".xml";
try {
new XMLThread(doc, sXmlFileName).start();
} catch(Exception e) {
e.printStackTrace();
}
iCount++;
}
rs.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}