- public final T t;
- public final int priority;
-
- public Priori(final T t, final int priority) {
- this.t = t;
- this.priority = priority;
- }
-
- @Override
- public int compareTo(Priori<T> o) {
- if(priority==o.priority) {
- return 0;
- } else if(priority<o.priority) {
- return -1;
- } else {
- return 1;
- }
- }
- public static<T> void add(Access access, final String tag, List<Priori<T>> list) {
- String plugins = access.getProperty(tag, null);
- if(plugins!=null) {
- for(String tafs : Split.splitTrim(';', plugins)) {
- String[] pluginArray = Split.splitTrim(',', tafs);
- String clssn = null;
- int priority = 60;
- switch(pluginArray.length) {
- case 0:
- break;
- case 1:
- clssn = tafs;
- break;
- default:
- clssn = pluginArray[0];
- try {
- priority = Integer.parseInt(pluginArray[1]);
- } catch (NumberFormatException nfe) {
- access.printf(Level.ERROR, "%s format is <classname>,priority[;...]\n",CADI_ADD_TAFS);
- }
- }
-
- if(clssn!=null) {
- Class<?> cls = loadClass(access, clssn);
- if(cls!=null) {
- try {
- @SuppressWarnings("unchecked")
- Constructor<T> cnst = (Constructor<T>)cls.getConstructor(Access.class);
- try {
- list.add(new Priori<T>(cnst.newInstance(access),priority));
- } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
- access.printf(Level.ERROR, "%s cannot be constructed with Access.\n",clssn);
- }
- } catch (NoSuchMethodException | SecurityException e) {
- access.printf(Level.ERROR, "%s needs a Constructor taking Access as sole param.\n",clssn);
- }
- }
- }
- }
- }
- }
+ public final T t;
+ public final int priority;
+
+ public Priori(final T t, final int priority) {
+ this.t = t;
+ this.priority = priority;
+ }
+
+ @Override
+ public int compareTo(Priori<T> o) {
+ if(priority==o.priority) {
+ return 0;
+ } else if(priority<o.priority) {
+ return -1;
+ } else {
+ return 1;
+ }
+ }
+ public static<T> void add(Access access, final String tag, List<Priori<T>> list) {
+ String plugins = access.getProperty(tag, null);
+ if(plugins!=null) {
+ access.log(Level.INIT, "Adding TAF Plugins: ", plugins);
+ for(String tafs : Split.splitTrim(';', plugins)) {
+ String[] pluginArray = Split.splitTrim(',', tafs);
+ String clssn = null;
+ int priority = 60;
+ switch(pluginArray.length) {
+ case 0:
+ break;
+ case 1:
+ clssn = tafs;
+ break;
+ default:
+ clssn = pluginArray[0];
+ try {
+ priority = Integer.parseInt(pluginArray[1]);
+ } catch (NumberFormatException nfe) {
+ access.printf(Level.ERROR, "%s format is <classname>,priority[;...]\n",CADI_ADD_TAFS);
+ }
+ }
+
+ if(clssn!=null) {
+ Class<?> cls = loadClass(access, clssn);
+ if(cls!=null) {
+ try {
+ @SuppressWarnings("unchecked")
+ Constructor<T> cnst = (Constructor<T>)cls.getConstructor(Access.class);
+ try {
+ list.add(new Priori<T>(cnst.newInstance(access),priority));
+ } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ String hostname = access.getProperty(Config.HOSTNAME,null);
+ if(hostname==null) {
+ access.printf(Level.ERROR, "%s cannot be constructed on this machine. Set valid 'hostname' in your properties\n",clssn);
+ } else {
+ access.printf(Level.ERROR, "%s cannot be constructed on %s with Access.\n",clssn, hostname);
+ }
+ }
+ } catch (NoSuchMethodException | SecurityException e) {
+ access.printf(Level.ERROR, "%s needs a Constructor taking Access as sole param.\n",clssn);
+ }
+ }
+ }
+ }
+ }
+ }