Package tables

Source Code of tables.Table

package tables;

import java.util.Iterator;
import java.util.TreeMap;
import java.util.Map.Entry;

import miscellaneous.Canceler;

import weka.core.converters.JEXTableReader;
import weka.core.converters.JEXTableWriter;

public class Table<E> implements Iterable<DimensionMap> {
 
  public DimTable dimTable;
  public TreeMap<DimensionMap,E> data;
 
  public Table(DimTable dimTable, TreeMap<DimensionMap,E> table)
  {
    this.dimTable = dimTable;
    this.data = table;
  }
 
  @Override
  public Iterator<DimensionMap> iterator()
  {
    return this.dimTable.getMapIterator().iterator();
  }
 
  public DimTableMapIterable getIterator(DimensionMap filter)
  {
    return this.dimTable.getMapIterator(filter);
  }
 
  public E getData(DimensionMap key)
  {
    return this.data.get(key);
  }
 
  public TreeMap<DimensionMap,E> getFilteredData(String filter)
  {
    return this.getFilteredData(new DimensionMap(filter));
  }
 
  public TreeMap<DimensionMap,E> getFilteredData(DimensionMap filter)
  {
    TreeMap<DimensionMap,E> ret = new TreeMap<DimensionMap,E>();
    for (DimensionMap map : this.dimTable.getMapIterator(filter))
    {
      E val = this.data.get(map);
      if(val != null)
      {
        ret.put(map, val);
      }
    }
    return ret;
  }
 
  public static <B> TreeMap<DimensionMap,B> getFilteredData(TreeMap<DimensionMap,B> data, DimensionMap filter)
  {
    return JEXTableReader.filter(data, filter);
  }
 
  public static <B> TreeMap<DimensionMap,B> getFilteredData(TreeMap<DimensionMap,B> data, String filter)
  {
    return JEXTableReader.filter(data, new DimensionMap(filter));
  }
 
  public static String joinTables(Table<String> fileTable, Canceler canceler)
  {
    DimTable union = fileTable.dimTable;
    for(Entry<DimensionMap,String> e : fileTable.data.entrySet())
    {
      DimTable lower = JEXTableReader.getDimTable(e.getValue());
      union = DimTable.union(union,lower);
    }
    JEXTableWriter writer = new JEXTableWriter("UnionTable");
    writer.writeNumericTableHeader(union);
   
    for(Entry<DimensionMap,String> e : fileTable.data.entrySet())
    {
      if(canceler.isCanceled())
      {
        return null;
      }
      Table<Double> data = JEXTableReader.getNumericTable(e.getValue());
      for(Entry<DimensionMap,Double> e2 : data.data.entrySet())
      {
        writer.writeData(e2.getKey(), e2.getValue());
      }
    }
    String path = writer.getPath();
    writer.close();
   
    return path;
  }
 
  public static Table<String> joinAndSplitTables(Table<String> fileTable, String timeDimName, Canceler canceler)
  {
    String path = Table.joinTables(fileTable, canceler);
   
    Table<String> timeFiles = JEXTableReader.splitTable(path, timeDimName, "TimePoint", JEXTableWriter.ARFF_FILE, canceler);
    return timeFiles;
  }
 
}
TOP

Related Classes of tables.Table

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.