package com.chinaece.gaia.parsers;
import java.util.ArrayList;
import java.util.Collection;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.chinaece.gaia.types.documentitem.AttachmentUploadField;
import com.chinaece.gaia.types.documentitem.CheckboxField;
import com.chinaece.gaia.types.documentitem.DateField;
import com.chinaece.gaia.types.documentitem.DepartmentField;
import com.chinaece.gaia.types.documentitem.InputField;
import com.chinaece.gaia.types.documentitem.ItemType;
import com.chinaece.gaia.types.documentitem.RadioField;
import com.chinaece.gaia.types.documentitem.SelectField;
import com.chinaece.gaia.types.documentitem.StringField;
import com.chinaece.gaia.types.documentitem.TextareaField;
import com.chinaece.gaia.types.documentitem.UserField;
import com.chinaece.gaia.types.documentitem.WordField;
public class ItemParser extends AbstractJSONParser<ItemType> {
@Override
public ItemType parser(JSONObject jsonObj) {
throw new UnsupportedOperationException("do not call");
}
@Override
public Collection<ItemType> parser(JSONArray jsonArray) {
ArrayList<ItemType> itemlist = new ArrayList<ItemType>();
try {
for(int i = 0;i<jsonArray.length();i++){
JSONObject jsonitem = jsonArray.getJSONObject(i);
if(jsonitem.length() == 0)
itemlist.add(null);
else if(jsonitem.getString("type").equals("SelectField")){
itemlist.add(new SelectField(jsonitem));
}
else if(jsonitem.getString("type").equals("DateField")){
itemlist.add(new DateField(jsonitem));
}
else if(jsonitem.getString("type").equals("DepartmentField")){
itemlist.add(new DepartmentField(jsonitem));
}
else if(jsonitem.getString("type").equals("InputField")){
itemlist.add(new InputField(jsonitem));
}
else if(jsonitem.getString("type").equals("RadioField")){
itemlist.add(new RadioField(jsonitem));
}
else if(jsonitem.getString("type").equals("String")){
itemlist.add(new StringField(jsonitem));
}
else if(jsonitem.getString("type").equals("TextareaField")){
itemlist.add(new TextareaField(jsonitem));
}
else if(jsonitem.getString("type").equals("UserField")){
itemlist.add(new UserField(jsonitem));
}
else if(jsonitem.getString("type").equals("CheckboxField")){
itemlist.add(new CheckboxField(jsonitem));
}
else if(jsonitem.getString("type").equals("AttachmentUploadField")){
itemlist.add(new AttachmentUploadField(jsonitem));
}
else if(jsonitem.getString("type").equals("WordField")){
itemlist.add(new WordField(jsonitem));
}
}
return itemlist;
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}