package server.servlets;
import java.util.*;
public class FormCSQL {
private SQLBeanie dbw = new SQLBeanie();
FormCDataParser fc;
public FormCSQL(FormCDataParser _fc) {
fc = _fc;
}
public void generateFormCSQL(String[] fieldNames, String[] fieldValues) {
int courseKeyIndex = fc.getCourseKeyIndex();
String students[] =
fc.getCourseStudentsIdByKey(courseKeyIndex);
String studentsData[][] = getData(students, fieldNames, fieldValues);
createFormCSql(getFormCSqlRows(courseKeyIndex, studentsData));
}
private String[][] getData(String students[], String fields[],
String fValues[]) {
int noOfRows = students.length;
int noOfColumns = 9;
String data[][] = new String[noOfRows][noOfColumns];
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < data[i].length; j++) {
switch (j) {
case 0:
data[i][j] = students[i];
break;
default:
for (int k = 0; k < fields.length; k++) {
if (fields[k].equals("cbo" + (i) + (j - 1))) {
data[i][j] = fValues[k];
break;
}
}
break;
}
}
}
return data;
}
private String[] getFormCSqlRows(int index, String[][] studentsData) {
Vector sqlRows = new Vector();
for (int i = 0; i < studentsData.length; i++) {
getFormCSqlRow(sqlRows, getFormCRow(index, studentsData[i]));
}
return (vectorToString(sqlRows));
}
private void getFormCSqlRow(Vector vSql, Vector vData) {
for (Enumeration e = vData.elements(); e.hasMoreElements();) {
String strObj[] = (String[]) e.nextElement();
String sql = "Insert into all_forms values (";
int i;
for (i = 0; i < strObj.length - 1; i++)
sql = sql + Html.singleQuote(strObj[i]) + ",";
sql = sql + Html.singleQuote(strObj[i]) + ");";
vSql.add(sql);
}
}
private Vector getFormCRow(int index, String[] data) {
String formCId = "1";
Vector rows = new Vector();
for (int i = 0; i < data.length; i++) {
List formcRow = new ArrayList();
formcRow.add(data[0]);
formcRow.add(fc.getCourseNoByKey(index));
formcRow.add(fc.getCourseSectionByKey(index));
formcRow.add(fc.getCourseTermByKey(index));
formcRow.add(fc.getCourseYearByKey(index));
formcRow.add(formCId);
switch (i) {
case 0:
break;
default:
formcRow.add("" + i);
formcRow.add(data[i]);
rows.add(objectToString(formcRow));
}
}
return rows;
}
public String[] objectToString(List l) {
String str[] = new String[l.size()];
Iterator it = l.iterator();
for (int i = 0; it.hasNext(); i++) {
str[i] = (String) it.next();
}
return str;
}
public String[] vectorToString(Vector v) {
String str[] = new String[v.size()];
int i = 0;
for (Enumeration e = v.elements(); e.hasMoreElements(); i++) {
str[i] = (String) e.nextElement();
}
return str;
}
private void createFormCSql(String[] sqlRows) {
dbw.open();
for (int i = 0; i < sqlRows.length; i++) {
dbw.insert(sqlRows[i]);
}
dbw.close();
}
}