RLPark 1.0.0
Reinforcement Learning Framework in Java

Wrappers.java

Go to the documentation of this file.
00001 package zephyr.plugin.core.api.internal.monitoring.wrappers;
00002 
00003 import java.lang.reflect.Field;
00004 import java.util.ArrayList;
00005 import java.util.HashMap;
00006 import java.util.List;
00007 import java.util.Map;
00008 
00009 import zephyr.plugin.core.api.labels.Labeled;
00010 import zephyr.plugin.core.api.monitoring.annotations.Monitor;
00011 
00012 public class Wrappers {
00013   static final Map<String, MonitorWrapper> wrappers = new HashMap<String, MonitorWrapper>();
00014   static {
00015     registerWrapper(Squared.ID, new Squared());
00016     registerWrapper(Abs.ID, new Abs());
00017   }
00018 
00019   private Wrappers() {
00020   }
00021 
00022   public static void registerWrapper(String id, MonitorWrapper wrapper) {
00023     wrappers.put(id, wrapper);
00024   }
00025 
00026   public static List<MonitorWrapper> getWrappers(Field field, List<MonitorWrapper> parentWrappers) {
00027     Monitor monitorAnnotation = field.getAnnotation(Monitor.class);
00028     if (monitorAnnotation == null)
00029       return parentWrappers;
00030     List<MonitorWrapper> result = new ArrayList<MonitorWrapper>();
00031     if (parentWrappers != null)
00032       result.addAll(parentWrappers);
00033     String[] wrapperIDs = monitorAnnotation.wrappers();
00034     for (String id : wrapperIDs) {
00035       MonitorWrapper wrapper = wrappers.get(id);
00036       if (wrapper != null)
00037         result.add(wrapper);
00038     }
00039     return result;
00040   }
00041 
00042   public static String wrapperLabel(MonitorWrapper wrapper) {
00043     if (wrapper instanceof Labeled)
00044       return ((Labeled) wrapper).label();
00045     return wrapper.getClass().getSimpleName();
00046   }
00047 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark