RLPark 1.0.0
Reinforcement Learning Framework in Java

PrimitiveCollectionNode.java

Go to the documentation of this file.
00001 package zephyr.plugin.core.api.internal.codeparser.codetree;
00002 
00003 import java.util.List;
00004 
00005 import zephyr.plugin.core.api.internal.codeparser.interfaces.ParentNode;
00006 import zephyr.plugin.core.api.internal.monitoring.abstracts.MonitorContainerNode;
00007 import zephyr.plugin.core.api.internal.parsing.CollectionLabelBuilder;
00008 import zephyr.plugin.core.api.monitoring.abstracts.Monitored;
00009 
00010 public class PrimitiveCollectionNode extends AbstractCodeNode implements MonitorContainerNode, AbstractPrimitives {
00011   final List<? extends Number> array;
00012   final CollectionLabelBuilder collectionLabelBuilder;
00013 
00014   public PrimitiveCollectionNode(String label, ParentNode parent, List<? extends Number> array,
00015       CollectionLabelBuilder collectionLabelBuilder, int level) {
00016     super(label, parent, level);
00017     this.array = array;
00018     this.collectionLabelBuilder = collectionLabelBuilder;
00019   }
00020 
00021   @Override
00022   public Monitored createMonitored(String label) {
00023     int index = collectionLabelBuilder.indexOf(label, size());
00024     if (index < 0)
00025       return null;
00026     return createMonitored(index);
00027   }
00028 
00029   private Monitored createMonitored(final int index) {
00030     return new Monitored() {
00031       @Override
00032       public double monitoredValue() {
00033         return array.get(index).doubleValue();
00034       }
00035     };
00036   }
00037 
00038   @Override
00039   public String[] createLabels() {
00040     return collectionLabelBuilder.createLabels(size());
00041   }
00042 
00043   @Override
00044   public Monitored[] createMonitored() {
00045     Monitored[] result = new Monitored[size()];
00046     for (int i = 0; i < result.length; i++)
00047       result[i] = createMonitored(i);
00048     return result;
00049   }
00050 
00051   @Override
00052   public int size() {
00053     return array.size();
00054   }
00055 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark