Package timeflow.format.field

Source Code of timeflow.format.field.FormatDateTime

/**
*
*/
package timeflow.format.field;

import java.text.ParseException;
import java.util.Calendar;

import timeflow.data.time.RoughTime;
import timeflow.data.time.TimeUnit;
import timeflow.data.time.TimeUtils;

public class FormatDateTime extends FieldFormat
{
  DateTimeGuesser dateGuesser=new DateTimeGuesser();
 
  @Override
  public String format(Object o) {
    return ((RoughTime)o).format();
  }

  @Override
  public Object _parse(String s) throws Exception {
    if (s.length()==0)
      return null;
    Object o= readTime(s);
    if (o==null)
      throw new IllegalArgumentException();
    return o;
  }
 
 
  public RoughTime readTime(Object o) throws ParseException
  {
    if (!(o instanceof String))
      throw new IllegalArgumentException("Expected String, got: "+o);
    return dateGuesser.guess((String)o);
  }
  DateTimeGuesser g=new DateTimeGuesser();
 
  @Override
  public double scoreFormatMatch(String s) {
    if (s==null || s.length()==0)
      return -.05;
    try
    {
      RoughTime f=g.guess(s);
      if (f==null)
        return -1;
      if (g.getLastGoodFormat().getUnits()==TimeUnit.YEAR)
      {
        int year=TimeUtils.cal(f.getTime()).get(Calendar.YEAR);
        if (year>2100)
          return -1;
        if (year>1900 && year<2050)
          return 1;
        if (year>2050 || year<1600)
          return .1;
        return .5;
      }
      return 2;
    }
    catch (Exception e)
    {
      return -1;
    }
  }


  @Override
  public Class getType() {
    return RoughTime.class;
  }

  @Override
  public String getHumanName() {
    return "Date/Time";
  }   
}
TOP

Related Classes of timeflow.format.field.FormatDateTime

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.