package com.banking.xc.utils.xml.vacation;
import java.io.InputStream;
import java.util.ArrayList;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import android.text.TextUtils;
import com.banking.xc.entity.VacationItem;
import com.banking.xc.entity.VacationItemSub;
import com.banking.xc.utils.Log;
import com.banking.xc.utils.xml.frame.XmlParseHandler;
import com.banking.xc.utils.xml.frame.XmlParseListener;
public class VacationItemResponseXmlParseHandler extends XmlParseHandler {
private ArrayList<VacationItem> vacationItemList;
VacationItem vacationItem;
ArrayList<VacationItemSub> vacationItemSubList;
VacationItemSub vacationItemSub;
private String preTag;
public VacationItemResponseXmlParseHandler(XmlParseListener xmlParseListener, InputStream inputStream) {
super(xmlParseListener, inputStream);
}
@Override
public void cancelParse() {
}
@Override
public void destroy() {
vacationItemList = null;
}
@Override
public Object getObjectWhenEnd() {
return vacationItemList;
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
final String data = new String (ch,start,length);
if(TextUtils.equals(preTag, "ACityName")){
if(vacationItemSub!=null){
vacationItemSub.setaCityName(data);
}else{
vacationItem.setACityName(data);
return;
}
}
if(TextUtils.equals(preTag, "ArrivalDate")){
vacationItem.setArrivalDate(data);
return;
}
if(TextUtils.equals(preTag, "AdvanceDays")){
vacationItem.setAdvanceDays(data);
return;
}
if(TextUtils.equals(preTag, "BargainPrice")){
vacationItem.setBargainPrice(data);
return;
}
if(TextUtils.equals(preTag, "CheckDate")){
vacationItem.setCheckDate(data);
return;
}
if(TextUtils.equals(preTag, "ChoiceDesc")){
vacationItem.setChoiceDesc(data);
return;
}
if(TextUtils.equals(preTag, "DCityName")){
if(vacationItemSub!=null){
vacationItemSub.setdCityName(data);
return;
}else{
vacationItem.setdCityName(data);
return;
}
}
if(TextUtils.equals(preTag, "DepartureDate")){
vacationItem.setDepartureDate(data);
return;
}
if(TextUtils.equals(preTag, "DepartureDays")){
vacationItem.setDepartureDays(data);
return;
}
if(TextUtils.equals(preTag, "FlightMultiplePriceType")){
vacationItem.setFlightMultiplePriceType(data);
return;
}
if(TextUtils.equals(preTag, "IsFlight")){
vacationItem.setIsFlight(data);
return;
}
if(TextUtils.equals(preTag, "ItemName")){
if(Log.D){
Log.d("", "ItemName"+data);
}
vacationItem.setItemName(data);
return;
}
if(TextUtils.equals(preTag, "IsInternational")){
vacationItem.setIsInternational(data);
return;
}
if(TextUtils.equals(preTag, "ItemAllPrice")){
vacationItem.setItemAllPrice(data);
return;
}
if(TextUtils.equals(preTag, "ItemPrice")){
vacationItem.setItemPrice(data);
return;
}
if(TextUtils.equals(preTag, "ItemDesc")){
vacationItem.setItemDesc(data);
return;
}
if(TextUtils.equals(preTag, "Airline")){
if(vacationItemSub!=null){
vacationItemSub.setAirline(data);
return;
}
}
if(TextUtils.equals(preTag, "AirlineName")){
if(vacationItemSub!=null){
vacationItemSub.setAirlineName(data);
return;
}
}
if(TextUtils.equals(preTag, "AirlineShortName")){
if(Log.D){
Log.d("", "AirlineShortName"+data);
}
if(vacationItemSub!=null){
vacationItemSub.setAirlineShortName(data);
return;
}else{
vacationItem.setAirLineShortName(data);
}
}
if(TextUtils.equals(preTag, "BuildingName")){
if(vacationItemSub!=null){
vacationItemSub.setBuildingName(data);
return;
}
}
if(TextUtils.equals(preTag, "BuildingShortName")){
if(vacationItemSub!=null){
vacationItemSub.setBuildingShortName(data);
return;
}
}
if(TextUtils.equals(preTag, "ArrivalDateTime")){
if(vacationItemSub!=null){
vacationItemSub.setArrivalDateTime(data);
return;
}else{
if(data.contains("T")){
vacationItem.setArriveTime(data.split("T")[1]);
}
return;
}
}
if(TextUtils.equals(preTag, "CraftType")){
if(vacationItemSub!=null){
vacationItemSub.setCraftType(data);
return;
}
}
if(TextUtils.equals(preTag, "DepartureDateTime")){
if(vacationItemSub!=null){
vacationItemSub.setDepartureDateTime(data);
return;
}else{
if(data.contains("T")){
vacationItem.setDepartureTime(data.split("T")[1]);
}
return;
}
}
if(TextUtils.equals(preTag, "ElectricTicket")){
if(vacationItemSub!=null){
vacationItemSub.setElectricTicket(data);
return;
}
}
if(TextUtils.equals(preTag, "Flight")){
if(Log.D){
Log.d("", "the flight"+data);
}
if(vacationItemSub!=null){
vacationItemSub.setFlight(data);
return;
}else{
vacationItem.setFlight(data);
}
}
if(TextUtils.equals(preTag, "FltAPort")){
if(vacationItemSub!=null){
vacationItemSub.setFltAPort(data);
return;
}
}
if(TextUtils.equals(preTag, "FltAPortName")){
if(vacationItemSub!=null){
vacationItemSub.setFltAPortName(data);
return;
}
}
if(TextUtils.equals(preTag, "FltDPort")){
if(vacationItemSub!=null){
vacationItemSub.setFltDPort(data);
return;
}
}
if(TextUtils.equals(preTag, "FltDPortName")){
if(Log.D){
Log.d("", "FltDPortName"+data);
}
if(vacationItemSub!=null){
vacationItemSub.setFltDPortName(data);
return;
}else{
vacationItem.setAirPort(data);
return;
}
}
if(TextUtils.equals(preTag, "Refnote")){
vacationItem.setRefNote(data);
return;
}
if(TextUtils.equals(preTag, "Rernote")){
vacationItem.setRerNote(data);
return;
}
if(TextUtils.equals(preTag, "IsSavePrice")){
if(vacationItemSub!=null){
vacationItemSub.setIsSavePrice(data);
return;
}
}
if(TextUtils.equals(preTag, "ItemStorage")){
if(vacationItemSub!=null){
vacationItemSub.setItemStorage(data);
return;
}
}
if(TextUtils.equals(preTag, "ItemTypeName")){
vacationItem.setItemTypeName(data);
}
if(TextUtils.equals(preTag, "PlaneType")){
if(vacationItemSub!=null){
vacationItemSub.setPlaneType(data);
return;
}
}
if(TextUtils.equals(preTag, "SubClassName")){
if(vacationItemSub!=null){
vacationItemSub.setSubclassName(data);
return;
}
}
if(TextUtils.equals(preTag, "Subclass")){
if(vacationItemSub!=null){
vacationItemSub.setSubclass(data);
return;
}
}
if(TextUtils.equals(preTag, "Travel")){
if(vacationItemSub!=null){
vacationItemSub.setTravel(data);
return;
}
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
if(TextUtils.equals(localName, "ItemList")){
return;
}
if(TextUtils.equals(localName, "ItemResource")){
vacationItemList.add(vacationItem);
vacationItem = null;
}
if(TextUtils.equals(localName, "ItemDetailList")){
vacationItem.setVacationItemSubList(vacationItemSubList);
vacationItemSubList = null;
}
if(TextUtils.equals(localName, "ItemResourceSub")){
vacationItemSubList.add(vacationItemSub);
vacationItemSub = null;
}
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
preTag = localName;
if(TextUtils.equals(localName, "ItemList")){
vacationItemList = new ArrayList<VacationItem>();
}
if(TextUtils.equals(localName, "ItemResource")){
vacationItem = new VacationItem();
}
if(TextUtils.equals(localName, "ItemDetailList")){
vacationItemSubList = new ArrayList<VacationItemSub>();
}
if(TextUtils.equals(localName, "ItemResourceSub")){
vacationItemSub = new VacationItemSub();
}
}
}