RLPark 1.0.0
Reinforcement Learning Framework in Java

AbstractCodeNode.java

Go to the documentation of this file.
00001 package zephyr.plugin.core.api.internal.codeparser.codetree;
00002 
00003 import java.util.Arrays;
00004 
00005 import zephyr.plugin.core.api.internal.codeparser.interfaces.CodeNode;
00006 import zephyr.plugin.core.api.internal.codeparser.interfaces.ParentNode;
00007 
00008 public abstract class AbstractCodeNode implements CodeNode {
00009   static private final String[] PathRoot = new String[] {};
00010   private final ParentNode parent;
00011   private final String label;
00012   private final int level;
00013   private String[] path = null;
00014 
00015   protected AbstractCodeNode(String label, ParentNode parent, int level) {
00016     this.parent = parent;
00017     this.label = label;
00018     this.level = parent != null ? Math.max(level, parent.level()) : level;
00019   }
00020 
00021   @Override
00022   public int level() {
00023     return level;
00024   }
00025 
00026   @Override
00027   public ParentNode parent() {
00028     return parent;
00029   }
00030 
00031   @Override
00032   public String label() {
00033     return label;
00034   }
00035 
00036   @Override
00037   public String[] path() {
00038     if (path == null) {
00039       String[] parentPath = parent != null ? parent.path() : PathRoot;
00040       path = Arrays.copyOf(parentPath, parentPath.length + 1);
00041       path[path.length - 1] = label;
00042     }
00043     return path;
00044   }
00045 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark