package timeflow.format.field;
import timeflow.util.*;
public class FieldFormatGuesser {
FieldFormat[] scores;
private FieldFormatGuesser()
{
scores=FieldFormatCatalog.listFormats();
}
public static Class[] analyze(String[][] data, int startRow, int numRows)
{
int n=data[0].length;
FieldFormatGuesser[] g=new FieldFormatGuesser[n];
for (int i=0; i<n; i++)
g[i]=new FieldFormatGuesser();
for (int i=startRow; i<startRow+numRows && i<data.length; i++)
{
for (int j=0; j<n; j++)
g[j].add(data[i][j]);
}
Class[] c=new Class[n];
for (int i=0; i<n; i++)
c[i]=g[i].best();
return c;
}
private void add(String s)
{
for (int i=0; i<scores.length; i++)
scores[i].note(s);
}
private Class best()
{
double max=scores[0].value;
Class best=scores[0].getType();
for (int i=1; i<scores.length; i++)
{
if (scores[i].value>max)
{
max=scores[i].value;
best=scores[i].getType();
}
}
return best;
}
}