package com.banking.xc.utils.staticinfo;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import skytv_com.banking.enjoymovie.MyApplication;
import android.text.TextUtils;
import com.banking.xc.entity.AirlineInfoEntity;
import com.banking.xc.entity.AirlineInfosResponse;
import com.banking.xc.utils.HttpGroup;
import com.banking.xc.utils.HttpGroup.HttpError;
import com.banking.xc.utils.HttpGroup.HttpResponse;
import com.banking.xc.utils.HttpGroup.HttpSetting;
import com.banking.xc.utils.HttpGroup.HttpSettingParams;
import com.banking.xc.utils.HttpGroupUtils;
import com.banking.xc.utils.Log;
import com.banking.xc.utils.webService.request.flight.flightproduct.FltGetArilineRequest;
import com.banking.xc.utils.xml.flight.FlightAirLineInfoResponseXmlParseHandler;
import com.banking.xc.utils.xml.frame.XmlParseListener;
public class FlightAirLineUtil {
private final static String TAG = "FlightAirLineUtil";
public static ArrayList<AirlineInfoEntity> airlineList;
public Map<String,String> airLineMap;
public List<String> airLineNameList;
/*public static ArrayList<AirlineInfoEntity> getAirlineList(){
return airlineList;
}*/
public Map<String,String> getAirLineMap(){
return airLineMap;
}
public List<String> getAirLineList(){
return airLineNameList;
}
public void initializeFlightAirline(){
//getFlightAirlineByHttp();
productCityMapByCode();
productCityNameListByCode();
}
/**
* 相对于枚举实现,asset中导入数据库,这种方法最优化.
* 这个方法没必要,只需要根据城市汉字得到.可以记住热门的
*/
public void productCityMapByCode(){
airLineMap = null;
airLineMap = new HashMap<String, String>();
airLineMap.put("四川航空","3U");
//airLineMap.put("宿雾航空","5J");
airLineMap.put("东星航空","8C");
airLineMap.put("华信航空","AE");
airLineMap.put("中国国航","CA");
airLineMap.put("中华航空","CI");
airLineMap.put("大新华","CN");
airLineMap.put("国泰航空","CX");
airLineMap.put("南方航空","CZ");
airLineMap.put("远东航空","EF");//FE,H8
airLineMap.put("成都航空","EU");
airLineMap.put("上海航空","FM");//
airLineMap.put("华夏航空","G5");//
airLineMap.put("天津航空","GS");
airLineMap.put("海南航空","HU");
airLineMap.put("香港航空","HX");
airLineMap.put("福建航空","IV");
airLineMap.put("首都航空","JD");//
airLineMap.put("蓝天航空","KF");//
airLineMap.put("昆明航空","KY");//
airLineMap.put("厦门航空","MF");//
airLineMap.put("东方航空","MU");//
airLineMap.put("河北航空","NS");//
airLineMap.put("澳门航空","NX");//
airLineMap.put("山东航空","SC");//
airLineMap.put("联合航空","UA");//
airLineMap.put("香港快运航空","UO");//
airLineMap.put("深圳航空","ZH");//
airLineMap.put("中国航空","F6");//
airLineMap.put("中西部航空","YX");//
airLineMap.put("亚洲航空","AK");//
airLineMap.put("西南航空","WN");//
airLineMap.put("重庆航空","OQ");//
}
public void productCityNameListByCode(){
airLineNameList = null;
airLineNameList = new ArrayList<String>();
airLineNameList.add("四川航空");
airLineNameList.add("东星航空");
airLineNameList.add("华信航空");
airLineNameList.add("中国国航");
airLineNameList.add("中华航空");
airLineNameList.add("大新华");
airLineNameList.add("国泰航空");
airLineNameList.add("南方航空");
airLineNameList.add("天津航空");
airLineNameList.add("上海航空");
//可以了
}
public String getAirLineNameByCode(String code){
for(Entry<String, String> set: airLineMap.entrySet()){
if(TextUtils.equals(set.getValue(),code)){
return set.getKey();
}
}
return null;
}
public String getAirLineCodeByName(String name){
for(Entry<String, String> set: airLineMap.entrySet()){
if(TextUtils.equals(set.getKey(),name)){
return set.getValue();
}
}
return null;
}
/**
* 这个居然就有21段
*/
public static void getFlightAirlineByHttp(){
FltGetArilineRequest request = new FltGetArilineRequest();
//request.set
//request.setCityId("105");
//request.set
final HttpSetting httpSetting = new HttpSetting(request);
httpSetting.setEffect(HttpSetting.EFFECT_NO);
httpSetting.setNotifyUser(true);
httpSetting.setListener(new HttpGroup.OnCommonListener() {
@Override
public void onEnd(HttpResponse httpResponse) {
String result = httpResponse.getString();
System.out.println("getFlightAirlineList()-->on End");
if (Log.D) {
//Log.dAll(TAG, "getFlightAirlineList()-->", result);
}
InputStream inputStream = new ByteArrayInputStream(result.getBytes());
final FlightAirLineInfoResponseXmlParseHandler parseHandler = new FlightAirLineInfoResponseXmlParseHandler(new XmlParseListener() {
@Override
public void onParseStart() {
}
@Override
public void onParseError(String reason) {
if (Log.D) {
Log.d(TAG, "getFlightList() Parse error");
}
}
@Override
public void onParseSuccess(Object o) {
airlineList = ((AirlineInfosResponse)o).getAirlineInfoEntityList();
if(Log.D){
Log.d(TAG, "airlineList.size"+airlineList.size());
}
for(int i =0;i<airlineList.size();i++){
if(Log.D){
Log.d(TAG, "airlineList:"+airlineList.get(i).getShortName()+" "+airlineList.get(i).getAirLine());
}
}
}
}, inputStream);
parseHandler.parse();
}
@Override
public void onError(HttpError error) {
System.out.println("getFlightList()-->on End");
}
@Override
public void onReady(HttpSettingParams httpSettingParams) {
}
});
HttpGroupUtils.getHttpGroupaAsynPool().add(httpSetting);
}
}