Bug 131577 Script Access to Factory/Presentation Mode
There is no easy way from within BIRT scripting to access whether a report is in factoryMode or presentationMode. The ExecutionContext object on the ReportContextImpl class has this information, but it is not available through scripting. I wonder if it makes sense to just expose the ExecutionContext and let the developer get the ExecutionContext or work from there, or if it is better to maintain an abstraction layer off of the ExecutionContext with all of the functionality wrapped off. To me it is more useful to divide the script functions into some that are basic and fully supported and others that are in the category of Kung-Fu scripting where the developer has to have a relatively high level of experience. So if we decide this is a basic function, we expose the factory mode in the IReportContext interface. If it is deemed to be Kung-Fu scripting, then we just expose a handle to the ExecutionContext and let developers figure it themselves. Thoughts?
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/IEngineTask.java
*/
	public abstract ULocale getULocale();
	
	/**
	 * returns the context objects for the task.
	 * 
	 * The return appContext is read only, the user should never try to modify
	 * the value.
	 * 
	 * @return the task contexts
	 */
	public abstract Map getAppContext();
	
	/**
	 * returns the report engine object
	 * @return the engine object
	 */
	public abstract IReportEngine getEngine();
	
	/**
	 * defines an additional Java object that is exposed to BIRT scripting at a per-task level
	 * @param jsName the name that the object is referenced in JavaScript
	 * @param obj the Java object that is wrapped and scripted
	 * @deprecated user should add it to appContext.
	 */
	public void addScriptableJavaObject(String jsName, Object obj);
	
	 /**
     * returns an identifier for the task. The identifier can be used to identify the
     * task, especially when writing logs in a multi-threaded environment.