1 27 package ch.ethz.prose; 28 29 import java.lang.reflect.Field ; 31 import java.util.HashMap ; 32 import java.util.List ; 33 import java.util.Map ; 34 import java.util.Vector ; 35 36 import ch.ethz.prose.crosscut.Crosscut; 37 import ch.ethz.inf.util.Logger; 38 39 40 66 public abstract 67 class DefaultAspect extends Aspect { 68 69 70 71 72 protected Crosscut[] crosscuts() 73 { 74 Vector theCrosscuts = null; 75 try 76 { 77 theCrosscuts = new Vector (); 78 Field [] declFields = getClass().getDeclaredFields(); 79 for (int i=0; i < declFields.length; i++) 80 { 81 if ( Crosscut.class.isAssignableFrom(declFields[i].getType()) && 82 (declFields[i].get(this) != null) 83 ) 84 theCrosscuts.add(declFields[i].get(this)); 85 } 86 } 87 catch (IllegalAccessException probablyPrivate) 88 { 89 Logger.error("Probably private definition:",probablyPrivate); 90 throw new IllegalAspectException(" Probably private crosscut definitions:" + probablyPrivate.toString()); 91 } 92 93 return (Crosscut[])(theCrosscuts.toArray(new Crosscut[]{})); 94 } 95 96 97 98 99 100 101 } 102 103 104 | Popular Tags |