Hi,

Consider the following code:

    Class c = getDateClass(); // JFree's date implementation
    Date dateStart = (Date)getParameterValue( "DateStart" );
    Date dateEnd = (Date)getParameterValue( "DateEnd" );

    DateTime start = new DateTime( dateStart.getTime() );
    DateTime end = new DateTime( dateEnd.getTime() );

    int datapoints = 0;

    if( c == org.jfree.data.time.Day.class ) {
*      datapoints = Days.daysBetween( start, end ).getDays();
*    }
    else if( c == org.jfree.data.time.Week.class ) {
*      datapoints = Weeks.weeksBetween( start, end ).getWeeks();
*    }
    else if( c == org.jfree.data.time.Month.class ) {
*      datapoints = Months.monthsBetween( start, end ).getMonths();
*    }
    else if( c == org.jfree.data.time.Year.class ) {
*      datapoints = Years.yearsBetween( start, end ).getYears();
*    }

Removing the redundancy clarifies the intent:

    if( c == org.jfree.data.time.Day.class ) {
*      datapoints = Days.between( start, end ).count();
*     }
    else if( c == org.jfree.data.time.Week.class ) {
*      datapoints = Weeks.between( start, end ).count();
*     }
    else if( c == org.jfree.data.time.Month.class ) {
*      datapoints = Months.between( start, end ).count();
*     }
    else if( c == org.jfree.data.time.Year.class ) {
*      datapoints = Years.between( start, end ).count();
*     }

Expose a static delegate:

    if( c == org.jfree.data.time.Day.class ) {
*      datapoints = Days.count( start, end );
*     }
    else if( c == org.jfree.data.time.Week.class ) {
*      datapoints = Weeks.count( start, end );
*     }
    else if( c == org.jfree.data.time.Month.class ) {
*      datapoints = Months.count( start, end );
*     }
    else if( c == org.jfree.data.time.Year.class ) {
*      datapoints = Years.count( start, end );
*     }

Then:

Date ds = (Date)getParameterValue( "DateStart" );
Date de = (Date)getParameterValue( "DateEnd" );
ReadablePeriod rp = JFreeReadablePeriodFactory.createReadablePeriod(
getDateClass() );
int datapoints = rp.count( ds.getTime(), de.getTime() );

Kind regards,
Dave Jarvis
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Joda-interest mailing list
Joda-interest@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/joda-interest

Reply via email to