You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ky...@apache.org on 2004/09/21 07:01:34 UTC

svn commit: rev 46958 - incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt

Author: kylem
Date: Mon Sep 20 22:01:31 2004
New Revision: 46958

Modified:
   incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/AptControlInterface.java
Log:
Minor bug fix to Control Interface APT processing.

Contributor: Lawrence Jones


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	Mon Sep 20 22:01:31 2004
@@ -5,9 +5,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *     http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -32,6 +32,7 @@
 import com.sun.mirror.declaration.InterfaceDeclaration;
 import com.sun.mirror.declaration.MethodDeclaration;
 import com.sun.mirror.declaration.TypeDeclaration;
+import com.sun.mirror.type.DeclaredType;
 import com.sun.mirror.type.InterfaceType;
 import com.sun.mirror.type.TypeMirror;
 
@@ -70,7 +71,7 @@
               "The ControlInterface or ControlExtension annotation may only be used on a Java interface");
             return;
         }
-        
+
         _intfDecl = (InterfaceDeclaration)decl;
 
         init();
@@ -88,8 +89,8 @@
         //
         if ( _intfDecl.getSuperinterfaces() == null )
             return null;
-        
-        for (InterfaceType intfType : _intfDecl.getSuperinterfaces()) 
+
+        for (InterfaceType intfType : _intfDecl.getSuperinterfaces())
         {
             InterfaceDeclaration superDecl = intfType.getDeclaration();
             if ( superDecl != null )
@@ -112,7 +113,7 @@
               "Interfaces annotated with ControlExtension must extend an interface annotated with " +
               "ControlInterface");
         }
-            
+
         return null;
     }
 
@@ -122,12 +123,12 @@
     protected ArrayList<ControlOperation> initOperations()
     {
         ArrayList<ControlOperation> operList = new ArrayList<ControlOperation>();
-        
+
         if ( _intfDecl == null )
             return operList;
-        
+
         //
-        // Add the methods from the current interface and all super interfaces *other* 
+        // Add the methods from the current interface and all super interfaces *other*
         // than the one from which control inheritance or extension is defined.  These
         // exceptions are handled on the super ControlInterface (the return value
         // of AptControlInterface.initSuperClass())
@@ -151,13 +152,13 @@
 
             if ( intfDecl.getMethods() == null )
                 continue;
-            
+
             for (MethodDeclaration methodDecl : intfDecl.getMethods())
                 operList.add(new AptOperation(this, methodDecl, _env));
 
             if ( intfDecl.getSuperinterfaces() == null )
                 continue;
-            
+
             for (InterfaceType superType : intfDecl.getSuperinterfaces())
             {
                 InterfaceDeclaration superDecl = superType.getDeclaration();
@@ -175,7 +176,7 @@
     protected ArrayList<ControlPropertySet> initPropertySets()
     {
         ArrayList<ControlPropertySet> propSets = new ArrayList<ControlPropertySet>();
-        
+
         if ( _intfDecl == null || _intfDecl.getNestedTypes() == null )
             return propSets;
 
@@ -215,7 +216,7 @@
     protected ArrayList<ControlEventSet> initEventSets()
     {
         ArrayList<ControlEventSet> eventSets = new ArrayList<ControlEventSet>();
-        
+
         if ( _intfDecl == null || _intfDecl.getNestedTypes() == null )
             return eventSets;
 
@@ -273,7 +274,7 @@
     {
         if ( _intfDecl == null || _intfDecl.getQualifiedName() == null )
             return "";
-        
+
         assert _intfDecl.getQualifiedName().equals( getPackage() + "." + getShortName() );
 
         return _intfDecl.getQualifiedName();
@@ -287,7 +288,7 @@
     {
         if ( _intfDecl == null )
             return false;
-    
+
         return _intfDecl.getAnnotation(org.apache.beehive.controls.api.bean.ControlExtension.class) != null;
     }
 
@@ -295,7 +296,7 @@
      * 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).  May return 
+     * the 'most-derived interface' is annotated with @ControlExtension).  May return
      * null if the inheritance chain is malformed.
      */
     public ControlInterface getMostDerivedInterface()
@@ -353,7 +354,7 @@
             return new URLClassLoader( urls, ControlChecker.class.getClassLoader() );
         }
 
-        return null; 
+        return null;
     }
 
     /**
@@ -365,7 +366,7 @@
 
         if ( _intfDecl == null )
             return attributes;
-        
+
         try
         {
             ManifestAttributes annotAttrs =_intfDecl.getAnnotation(ManifestAttributes.class);
@@ -379,7 +380,7 @@
             if (annotAttr != null)
             {
                 attributes.put(annotAttr.name(), annotAttr.value());
-            } 
+            }
             return attributes;
         }
         catch (Exception e) { e.printStackTrace(); return attributes; }
@@ -413,7 +414,7 @@
 
         if ( intfDecl == null )
             return;
-        
+
         AnnotationMirror controlMirror = null;
 
         for (AnnotationMirror annot : intfDecl.getAnnotationMirrors())
@@ -434,9 +435,9 @@
         // Read the name of the checker class from the @ControlInterface annotation,
         // dynamically load and run it.
         //
-        
-        TypeMirror checkerMirror = (TypeMirror)controlAnnot.getObjectValue("checkerClass");
-        if ( checkerMirror != null )
+
+        DeclaredType checkerMirror = (DeclaredType)controlAnnot.getObjectValue("checkerClass");
+        if ( checkerMirror != null && checkerMirror.getDeclaration() != null )
         {
             // TODO: optimize to not invoke default checker?
             String checkerName = checkerMirror.toString();