Home  

Language  

Framework 

Is Not  

Release Notes  

 For each page the Compiler generates one presentation layer Java class (P-class) with a method ($render) that, when executed, provides HTML output sent to the client. Code of widgets gets embedded directly into the generated class.

Each page has a corresponding page state Java class (PS-class) that may contain session-persistent data of the page and/or methods operating on that data. The $handlePage method is called by the framework. P-class is generated as derived from PS-class so all the non-private members of the latter are plainly accessible in the former. Thus, the page instance variables may be used freely in HybridJava source code (.page and .widget files). 

Widgets may have a corresponding Java class (WS-class) that contains session-persistent data of the widget and/or methods operating on that data. The $handleWidget method is called by the framework. While processing widgets, the compiler generates access to members of WS-class instances. Together a widget and its WS-class (when provided) constitute a component. The framework supports transmission of signals from a component to a senior component or to the page. Components declared as "shared" may be used on several pages with a single component data instance.

Page and widget instances are created on demand and exist in the session keeping last values. You have to explicitly clean the instances, if you do not mean to return to previous state of a page when you visit that page again.

HybridJava Framework IS MVC. 

HybridJava Framework cares about assigning IDs to components even under loops and recursions. Using those IDs, the Framework automatically dispatches values of parameters of HTTP requests to appropriate components. Similarly, it directs the submission action to an appropriate component if necessary.

Exception handling gets embedded into generated Java code on per widget/page basis.

HybridJava Framework has extremely high performance due to the way the generated code of a page is structured. In particular, the generated code has minimum of operations on strings. The code of all widgets is compiled directly into the single $render method of the page. Session-persistent data is stored just in one place (no JavaBeans!). Last but not least, the framework does not build DOM at runtime - it uses the one built by the Compiler at compile time.

The JavaDoc of the framework API is available here. HybridJava Framework API is wrapped around J2EE Servlet API and compared to the latter it operates on higher level entities: application, pages and components, not on HTTP request, response and session though these are accessible as well.