StarTreeImpl implements StarTree { @Override public StarTreeNode getRoot() { return root; } StarTreeImpl(StarTreeConfig config);  StarTreeImpl(StarTreeConfig config, File dataDir);  StarTreeImpl(StarTreeConfig config, File dataDir, StarTreeNode root); @Override StarTreeNode getRoot(); @Override StarTreeConfig getConfig(); @Override StarTreeRecordStoreFactory getRecordStoreFactory(); @Override void open(); @Override MetricTimeSeries getTimeSeries(StarTreeQuery query); @Override void add(StarTreeRecord record); @Override void close(); @Override Set<String> getDimensionValues(String dimensionName,
      Map<String, Collection<String>> fixedDimensions); void getDimensionValues(StarTreeNode node, String dimensionName,
      Map<String, Collection<String>> fixedDimensions, Set<String> collector); @Override StarTreeNode find(StarTreeQuery query); @Override Collection<StarTreeNode> findAll(StarTreeQuery query); @Override StarTreeStats getStats(); @Override void eachLeaf(StarTreeCallback callback); @Override void clear(); void getStats(StarTreeNode node, StarTreeStats stats); @Override boolean equals(Object o); @Override int hashCode();  }
@Test public void testSerialization() throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream objectOutputStream = new ObjectOutputStream(baos); objectOutputStream.writeObject(starTree.getRoot()); objectOutputStream.flush(); }