RLPark 1.0.0
Reinforcement Learning Framework in Java
|
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 }