/**
* This file was automatically generated by the Mule Development Kit
*/
package org.mule.modules;
import org.external.MyExternalApi;
import org.external.model.Weather;
import org.mule.api.ConnectionException;
import org.mule.api.annotations.Configurable;
import org.mule.api.annotations.Connect;
import org.mule.api.annotations.ConnectionIdentifier;
import org.mule.api.annotations.Connector;
import org.mule.api.annotations.Disconnect;
import org.mule.api.annotations.InvalidateConnectionOn;
import org.mule.api.annotations.Processor;
import org.mule.api.annotations.ValidateConnection;
import org.mule.api.annotations.param.ConnectionKey;
@Connector(name="weather", schemaVersion="1.0-SNAPSHOT")
public class WeatherConnector
{
//<start id="lis_13_using-connect"/>
@Configurable//<co id="lis_13_using-connect_1"/>
boolean celsius;
MyExternalApi myExternalApi = new MyExternalApi();
String sessionId;
@Connect//<co id="lis_13_using-connect_2"/>
public void connect
(@ConnectionKey String username,//<co id="lis_13_using-connect_3"/>
String password)
throws ConnectionException {
sessionId = myExternalApi.connect(username, password);
}
@Disconnect//<co id="lis_13_using-connect_4"/>
public void disconnect() {
if(this.sessionId != null ) {
myExternalApi.logout(sessionId);
}
}
//<end id="lis_13_using-connect"/>
//<start id="lis_13_connection-validation"/>
@Processor
@InvalidateConnectionOn(exception=WeatherException.class)
public Weather getWeather (String countryName, String cityName) {
return myExternalApi.getWeather
(sessionId, celsius, countryName, cityName);
}
@ValidateConnection
public boolean isConnected() {
return myExternalApi.isConnected();
}
//<end id="lis_13_connection-validation"/>
@ConnectionIdentifier
public String connectionId() {
return sessionId;
}
public boolean isCelsius() {
return celsius;
}
public void setCelsius(boolean celsius) {
this.celsius = celsius;
}
}