You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ke...@apache.org on 2004/07/29 00:46:15 UTC
svn commit: rev 30882 - incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt
Author: kentam
Date: Wed Jul 28 15:46:14 2004
New Revision: 30882
Modified:
incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/AptControlInterface.java
Log:
Add build error for malformed public interface inheritance chain.
Modified: incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/AptControlInterface.java
==============================================================================
--- incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/AptControlInterface.java (original)
+++ incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/AptControlInterface.java Wed Jul 28 15:46:14 2004
@@ -97,6 +97,16 @@
}
}
+ // At this point, we're processing the root of the interface heirarchy,
+ // which is not permitted to be a ControlExtension (that would imply a
+ // ControlExtension that wasn't actually extending a ControlInterface).
+ if ( isExtension() )
+ {
+ _env.getMessager().printError(_intfDecl.getPosition(),
+ "Interfaces annotated with ControlExtension must extend an interface annotated with " +
+ "ControlInterface");
+ }
+
return null;
}
@@ -251,7 +261,8 @@
* Returns the most-derived interface in the inheritance chain that is annotated
* with @ControlInterface. It represents the point in the inheritance chain where
* @ControlInterface becomes @ControlExtension (i.e., anything interface derived from
- * the 'most-derived interface' is annotated with @ControlExtension).
+ * the 'most-derived interface' is annotated with @ControlExtension). May return
+ * null if the inheritance chain is malformed.
*/
public ControlInterface getMostDerivedInterface()
{
@@ -274,8 +285,6 @@
ancestor = ancestor.getSuperClass();
}
- assert ( ancestor != null ) : "@ControlExtension not rooted in @ControlInterface, should have been caught earlier";
-
return ancestor;
}
@@ -322,9 +331,10 @@
// Find the nearest @ControlInterface, which is where the relevant control checker
// annotation will be found.
//
- //
AptControlInterface mostDerived = (AptControlInterface) getMostDerivedInterface();
+ if ( mostDerived == null )
+ return;
InterfaceDeclaration intfDecl = mostDerived._intfDecl;