You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by "Kyle Marvin (JIRA)" <be...@incubator.apache.org> on 2005/02/28 16:37:50 UTC

[jira] Created: (BEEHIVE-373) Added a 'required' attribute for @EventSet, indicating event handling required by client

Added a 'required' attribute for @EventSet, indicating event handling required by client
----------------------------------------------------------------------------------------

         Key: BEEHIVE-373
         URL: http://issues.apache.org/jira/browse/BEEHIVE-373
     Project: Beehive
        Type: New Feature
  Components: Controls  
    Versions: V1Beta    
    Reporter: Kyle Marvin
    Priority: Minor
     Fix For: TBD


Some Controls expose event sets where a failure to handle the events likely indicates that the control is not being used properly.  As an example, imagine a TimerControl that exposes the alarm expiring as a Timer event.  Using a TimerControl but not declaring a Timer event handler is pretty pointless.  It would be great to provide compile-time warnings, for this scenario.  To do so would require a new annotation for the EventSet annotation, such as:

     @EventSet(required=true)
     public interface TimerEvent
     {
          public void onTimeout(long time);
     }

The default value of 'required' must be 'false' to ensure backwards-compatible behavior.

It may only be possible to do compile-time enforcement for Controls created declaratively (using @Control annotation), where the presence of @EventHandler annotations can be verified.  It's more problematic to do a similar analysis for programmatic controls, without doing some form of code analysis to see if event registration methods are called.   A compromise for the latter might be do some form of runtime checking.  As an example, it might be considered an error to invoke an operation  on the method (but not a property  accessor or event reg method) w/out having listeners for all required EventSets.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira