wiki:WrapperCode/ActionScript

Action Script 3 wrapper

  • Source at  Github
  • Documentation (ASDocs) can be found in the docs folder (see  source)

Code example:

import be.irail.api.IRailAPI;
import be.irail.api.core.LanguageCode;
import be.irail.api.data.liveboard.Liveboard;
import be.irail.api.data.liveboard.LiveboardDeparture;
import be.irail.api.data.scheduler.DateTimeIndicator;
import be.irail.api.data.scheduler.IRConnection;
import be.irail.api.data.stations.IRStation;
import be.irail.api.data.stations.IRStationFilterType;
import be.irail.api.data.stations.IRStationListFilter;
import be.irail.api.data.vehicle.IRVehicleInformation;
import be.irail.api.data.vehicle.VehicleStop;
import be.irail.api.event.IRailErrorEvent;
import be.irail.api.event.IRailResult;
import be.irail.api.event.IRailResultEvent;

private var _irail:IRailAPI;

private function init():void {
	_irail = new IRailAPI();
	_irail.stations.addEventListener(IRailErrorEvent.IO_ERROR, handeIRailIOError);
	_irail.scheduler.addEventListener(IRailErrorEvent.IO_ERROR, handeIRailIOError);
	_irail.liveboards.addEventListener(IRailErrorEvent.IO_ERROR, handeIRailIOError);
	_irail.vehicles.addEventListener(IRailErrorEvent.IO_ERROR, handeIRailIOError);

	//Activate one of these methods to test it
	//getAllStations();
	//getLiveBoardInfo();
	//getAllStationsFiltered();
	//getRoute();
	//getLiveBoardInfo();
	//getVehicleInfo();
}

// ----------------------------------------
// Station list
// ----------------------------------------

private function getAllStations():void {
	_irail.stations.getAllStations();
	_irail.stations.addEventListener(IRailResultEvent.STATION_LIST_RESULT, onAllStationsResult);
}

private function getAllStationsFiltered():void {
	var filter1:IRStationListFilter = new IRStationListFilter(IRStationFilterType.COUNTRY, "belgium");
	var filter2:IRStationListFilter = new IRStationListFilter(IRStationFilterType.TYPE_OF_TRANSPORT, "train");
	_irail.stations.getFilteredStationList([filter1, filter2]);
	_irail.stations.addEventListener(IRailResultEvent.STATION_LIST_RESULT, onAllStationsResult);
}

private function onAllStationsResult(event:IRailResultEvent):void {
	_irail.stations.removeEventListener(IRailResultEvent.STATION_LIST_RESULT, onAllStationsResult);
	var result:IRailResult = event.result;

	//traces the name of every station
	for each (var train:IRStation in result.data) {
		trace(train.formattedName + " (" + train.longitude + "," + train.latitude + ")");
	}
}

// ----------------------------------------
// Scheduler
// ----------------------------------------

private function getRoute():void {
	_irail.scheduler.getRoutes(new IRStation("TORHOUT"), new IRStation("GENK"), new Date(), true, DateTimeIndicator.DEPARTURE, ["train"], 4, LanguageCode.DUTCH);
	_irail.scheduler.addEventListener(IRailResultEvent.SCHEDULER_RESULT, onSchedulerResult);
}

private function onSchedulerResult(event:IRailResultEvent):void {
	_irail.scheduler.removeEventListener(IRailResultEvent.SCHEDULER_RESULT, onSchedulerResult);
	var result:IRailResult = event.result;

	for each (var connection:IRConnection in result.data) {
		trace("DEPARTURE::\n" +
			  "date: " + connection.departure.dateTime + "\n",
			  "station: " + connection.departure.station.name + "\n",
			  "duration: " + connection.duration + " seconds\n",
			  "delay: " + connection.isDelayed + "\n",
			  "ARRIVAL::\n" +
			  "via: " + connection.vias.length + " stations\n" +
			  "date: " + connection.arrival.dateTime + "\n",
			  "platform: " + connection.arrival.platform.platformNo + "\n",
			  "station: " + connection.arrival.station.name + "\n");

		trace("--------------");
	}
	trace("Number of results: " + result.data.length);
}

// ----------------------------------------
// Liveboard
// ----------------------------------------

private function getLiveBoardInfo():void {
	_irail.liveboards.getStationLiveboardByStationName("Brussel-Zuid", new Date(), true);
	_irail.liveboards.addEventListener(IRailResultEvent.LIVEBOARD_RESULT, onLiveboardResult);
}

private function onLiveboardResult(event:IRailResultEvent):void {
	_irail.liveboards.removeEventListener(IRailResultEvent.LIVEBOARD_RESULT, onLiveboardResult);
	var result:IRailResult = event.result;

	var lb:Liveboard = result.data as Liveboard;
	trace("Liveboard for station: " + lb.station.formattedName);

	trace("Departures:");
	for each (var departure:LiveboardDeparture in lb.departures) {
		trace("Departure no. " + departure.id);
		trace("Destination: " + departure.station.formattedName);
		trace("Departing at " + departure.dateTime.toDateString() + " " + departure.dateTime.toTimeString());
		trace("with " + departure.delay + " seconds of delay");
		trace("at platform " + departure.platform.platformNo);
		trace("with train " + departure.vehicle.vehicleCode);
		trace("")
	}
}

// ----------------------------------------
// Vehicle information
// ----------------------------------------

private function getVehicleInfo():void {
	_irail.vehicles.getVehicleInformationByVehicleCode("BE.NMBS.IC545");
	_irail.vehicles.addEventListener(IRailResultEvent.VEHICLE_INFO_RESULT, onVehicleResult);
}

private function onVehicleResult(event:IRailResultEvent):void {
	_irail.vehicles.removeEventListener(IRailResultEvent.VEHICLE_INFO_RESULT, onVehicleResult);
	var vehiculeInfo:IRVehicleInformation = event.result.data as IRVehicleInformation;

	trace("Information retrieved for vehicule: " + vehiculeInfo.vehicle.vehicleCode);
	trace("This vehicle will stop at following stations:")

	for each (var stop:VehicleStop in vehiculeInfo.stops) {
		trace("Stop " + (stop.id + 1) + ":");
		trace("Station: " + stop.station.formattedName);
		trace(stop.dateTime.toDateString(), "at " + stop.dateTime.toTimeString());
		trace("with a delay of " + stop.delay + " seconds");
	}

}

private function handeIRailIOError(event:IRailErrorEvent):void {
	//EUH OH, could not connect to the server
	trace("ERROR! ", event.text)
}

init();

By  Joris Timmerman