public static void main(String[] args) { try { // define time domain "once every fourth year" TimeDomainDefinition year4def = new TimeDomainDefinition( "year4", Resolution.YEAR, 0L, new Cycle(true, false, false, false)); TimeDomain year4 = TimeDomainManager.getFactory().get(year4def, true); // define "missing value" for String (else, the default is null) String missingValue = "(missing)"; TimeSeriesFactory.getInstance().define(String.class, missingValue); TimeAddressable<String> olympics = TimeSeriesFactory.make(year4, String.class); olympics.put( year4.time("1896"), new String[] {"Athens", "Paris", "Saint-Louis", "London", "Stockholm"}); olympics.put( year4.time("1920"), new String[] {"Antwerp", "Paris", "Amsterdam", "Los Angeles", "Berlin"}); for (Observation<String> oly : olympics) { System.out.println(oly.toString()); } } catch (Exception e) { System.err.println("Oops...\n" + e.getMessage()); } }
private Class<? extends RegularTimePeriod> findTimeClass(TimeDomain timeDomain) throws KeyedException { Class<? extends RegularTimePeriod> jfcTimeClass = null; // determine JFreeChart type of time from the time domain switch (timeDomain.getResolution()) { case YEAR: jfcTimeClass = org.jfree.data.time.Year.class; break; case MONTH: jfcTimeClass = org.jfree.data.time.Month.class; break; case DAY: jfcTimeClass = org.jfree.data.time.Day.class; break; case HOUR: jfcTimeClass = org.jfree.data.time.Hour.class; break; case MIN: jfcTimeClass = org.jfree.data.time.Minute.class; break; case SEC: jfcTimeClass = org.jfree.data.time.Second.class; break; case MSEC: jfcTimeClass = org.jfree.data.time.Millisecond.class; break; case USEC: throw K.JFC_USEC_ERR.exception(); default: throw new RuntimeException("bug: " + timeDomain.getResolution()); } return jfcTimeClass; }
@Override public String toString(TimeDomain value) { return value == null ? null : value.getLabel(); }