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;
|
}
|
}
|