Added providers
This commit is contained in:
59
src/com/flaremicro/visualforecast/api/ForecastProvider.java
Normal file
59
src/com/flaremicro/visualforecast/api/ForecastProvider.java
Normal file
@@ -0,0 +1,59 @@
|
||||
package com.flaremicro.visualforecast.api;
|
||||
|
||||
import com.flaremicro.visualforecast.PropertyManager;
|
||||
import com.flaremicro.visualforecast.RenderPanel;
|
||||
import com.flaremicro.visualforecast.forecast.ForecastDetails;
|
||||
|
||||
public abstract class ForecastProvider {
|
||||
ForecastProviderManager forecastProviderManager;
|
||||
/**
|
||||
* Initialize the provider. This is called in a separate thread to any other function call.
|
||||
* The VisualForecast 1000 software will wait on the BootupDisplay until this function completes.
|
||||
*/
|
||||
public abstract void init();
|
||||
|
||||
/**
|
||||
* Get the current forecast.
|
||||
* This should delay as little as possible, as this is called in the main action thread.
|
||||
*
|
||||
* @return ForecastDetails
|
||||
*/
|
||||
public abstract ForecastDetails getForecast();
|
||||
|
||||
/**
|
||||
* Should generally be true unless forecast information is collected somewhere other than init.
|
||||
* In the case that forecast information is still unavailable by the time this is called,
|
||||
* this should return false and upon completion and state change, should notify listeners by calling
|
||||
* notifyForecastProviderUpdate()
|
||||
* @return
|
||||
*/
|
||||
public abstract boolean isForecastReady();
|
||||
|
||||
public abstract void deinit();
|
||||
|
||||
public final void notifyForecastProviderUpdate()
|
||||
{
|
||||
getRenderPanel().notifyForecastProviderUpdate();
|
||||
}
|
||||
|
||||
public final ForecastProviderManager getManager()
|
||||
{
|
||||
return forecastProviderManager;
|
||||
}
|
||||
|
||||
public final RenderPanel getRenderPanel()
|
||||
{
|
||||
return forecastProviderManager.getRenderPanel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a property manager specific to the forecast provider.
|
||||
* The property manager is already loaded.
|
||||
* @return
|
||||
*/
|
||||
public PropertyManager getOwnPropertyManager() {
|
||||
PropertyManager propertyManager = new PropertyManager(forecastProviderManager.getProviderName(this));
|
||||
propertyManager.load();
|
||||
return propertyManager;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user