blob: 38a2de4d910bcf6101900a5a7b184bea50b81e61 [file] [log] [blame]
/*
******************************************************************************
* Copyright (C) 2007, International Business Machines Corporation and *
* others. All Rights Reserved. *
******************************************************************************
*/
package com.ibm.icu.impl.duration;
import java.util.TimeZone;
/**
* Factory used to construct DurationFormatters.
* Formatters are immutable once created.
* <p>
* Setters on the factory mutate the factory and return it,
* for chaining.
*/
public interface DurationFormatterFactory {
/**
* Set the period formatter used by the factory. New formatters created
* with this factory will use the given period formatter.
*
* @param builder the builder to use
* @return this DurationFormatterFactory
*/
public DurationFormatterFactory setPeriodFormatter(PeriodFormatter formatter);
/**
* Set the builder used by the factory. New formatters created
* with this factory will use the given locale.
*
* @param builder the builder to use
* @return this DurationFormatterFactory
*/
public DurationFormatterFactory setPeriodBuilder(PeriodBuilder builder);
/**
* Set a fallback formatter for durations over a given limit.
*
* @param fallback the fallback formatter to use, or null
* @return this DurationFormatterFactory
*/
public DurationFormatterFactory setFallback(DateFormatter fallback);
/**
* Set a fallback limit for durations over a given limit.
*
* @param fallbackLimit the fallback limit to use, or 0 if none is desired.
* @return this DurationFormatterFactory
*/
public DurationFormatterFactory setFallbackLimit(long fallbackLimit);
/**
* Set the name of the locale that will be used when
* creating new formatters.
*
* @param localeName the name of the Locale
* @return this DurationFormatterFactory
*/
public DurationFormatterFactory setLocale(String localeName);
/**
* Set the name of the locale that will be used when
* creating new formatters.
*
* @param localeName the name of the Locale
* @return this DurationFormatterFactory
*/
public DurationFormatterFactory setTimeZone(TimeZone timeZone);
/**
* Return a formatter based on this factory's current settings.
*
* @return a DurationFormatter
*/
public DurationFormatter getFormatter();
}