Package er.movies

Source Code of er.movies.ChronicFormatter

package er.movies;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.webobjects.foundation.NSTimestamp;

import er.chronic.Chronic;
import er.chronic.Options;
import er.chronic.utils.Span;

public class ChronicFormatter extends SimpleDateFormat {
    private Options options;
    private boolean isGuessingEarly = true;
   
    public ChronicFormatter(String pattern) {
        this(pattern, null, true);
    }
   
    public ChronicFormatter(String pattern, Options options) {
        this(pattern, options, true);
    }
   
    public ChronicFormatter(String pattern, Options options, boolean isGuessingEarly) {
        super(pattern);
        this.options = options;
        this.isGuessingEarly = isGuessingEarly;
    }
   
    public Options options() {
        if (options == null)
            options = new Options();
        return options;
    }

    public void setOptions(Options options) {
        this.options = options;
    }
   
    public boolean isGuessingEarly() {
        return isGuessingEarly;
    }

    public void setIsGuessingEarly(boolean isGuessingEarly) {
        this.isGuessingEarly = isGuessingEarly;
    }

    @Override
    public NSTimestamp parseObject(String text) throws ParseException {
        NSTimestamp parsedTimestamp = null;
       
        try {
            // Attempt to parse the string with the given pattern.
            Date parsedDate = super.parse(text);
            parsedTimestamp = new NSTimestamp(parsedDate);
        }
        catch (ParseException e) {
           
            // If the input doesn't match the pattern, use Chronic to parse the input.
            Span span = Chronic.parse(text, options());
            if (span == null) {
                throw e;
            }
            else {
                if (span.isSingularity() || isGuessingEarly()) {
                    parsedTimestamp = new NSTimestamp(span.getBeginCalendar().getTime());
                }
                else {
                    parsedTimestamp = new NSTimestamp(span.getEndCalendar().getTime());
                }
            }
        }
       
        return parsedTimestamp;
    }
   
}
TOP

Related Classes of er.movies.ChronicFormatter

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.