RLPark 1.0.0
Reinforcement Learning Framework in Java

Legend.java

Go to the documentation of this file.
00001 package rlpark.plugin.rltoys.envio.observations;
00002 
00003 import java.io.Serializable;
00004 import java.util.ArrayList;
00005 import java.util.Arrays;
00006 import java.util.LinkedHashMap;
00007 import java.util.List;
00008 import java.util.Map;
00009 
00010 public class Legend implements Serializable {
00011   private static final long serialVersionUID = -3941386571561190239L;
00012   final private Map<String, Integer> legend = new LinkedHashMap<String, Integer>();
00013 
00014   public Legend(String... labels) {
00015     this(Arrays.asList(labels));
00016   }
00017 
00018   public Legend(List<String> labels) {
00019     for (int i = 0; i < labels.size(); i++) {
00020       String label = labels.get(i);
00021       legend.put(label, i);
00022     }
00023   }
00024 
00025   final public int indexOf(String label) {
00026     Integer index = legend.get(label);
00027     return index != null ? index : -1;
00028   }
00029 
00030   public boolean hasLabel(String label) {
00031     return legend.containsKey(label);
00032   }
00033 
00034   public int nbLabels() {
00035     return legend.size();
00036   }
00037 
00038   public Map<String, Integer> legend() {
00039     return legend;
00040   }
00041 
00042   public String label(int i) {
00043     for (Map.Entry<String, Integer> entry : legend.entrySet())
00044       if (entry.getValue() == i)
00045         return entry.getKey();
00046     return "unknown";
00047   }
00048 
00049   public List<String> getLabels() {
00050     return new ArrayList<String>(legend.keySet());
00051   }
00052 
00053   @Override
00054   public String toString() {
00055     return String.valueOf(legend);
00056   }
00057 
00058   public void replace(String orig, String dest) {
00059     int index = indexOf(orig);
00060     legend.remove(orig);
00061     legend.put(dest, index);
00062   }
00063 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark