// Path: core/src/main/java/org/ocpsoft/prettytime/TimeFormat.java
// public interface TimeFormat
// {
//    /**
//     * Given a populated {@link Duration} object. Apply formatting (with rounding) and output the result.
//     * 
//     * @param The original {@link Duration} instance from which the time string should be decorated.
//     */
//    public abstract String format(final Duration duration);
// 
//    /**
//     * Given a populated {@link Duration} object. Apply formatting (without rounding) and output the result.
//     * 
//     * @param The original {@link Duration} instance from which the time string should be decorated.
//     */
//    public String formatUnrounded(Duration duration);
// 
//    /**
//     * Decorate with past or future prefix/suffix (with rounding)
//     * 
//     * @param duration The original {@link Duration} instance from which the time string should be decorated.
//     * @param time The formatted time string.
//     */
//    public String decorate(Duration duration, String time);
// 
//    /**
//     * Decorate with past or future prefix/suffix (without rounding)
//     * 
//     * @param duration The original {@link Duration} instance from which the time string should be decorated.
//     * @param time The formatted time string.
//     */
//    public String decorateUnrounded(Duration duration, String time);
// 
// }
// 
// Path: core/src/main/java/org/ocpsoft/prettytime/units/Decade.java
// public class Decade extends ResourcesTimeUnit
// {
// 
//    public Decade()
//    {
//       setMillisPerUnit(315569259747L);
//    }
// 
//    @Override
//    protected String getResourceKeyPrefix()
//    {
//       return "Decade";
//    }
// 
// }
// 
// Path: core/src/main/java/org/ocpsoft/prettytime/units/Millennium.java
// public class Millennium extends ResourcesTimeUnit
// {
// 
//    public Millennium()
//    {
//       setMillisPerUnit(31556926000000L);
//    }
// 
//    @Override
//    protected String getResourceKeyPrefix()
//    {
//       return "Millennium";
//    }
// 
// }


import java.util.ListResourceBundle;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.concurrent.ConcurrentHashMap;
import org.ocpsoft.prettytime.Duration;
import org.ocpsoft.prettytime.TimeFormat;
import org.ocpsoft.prettytime.TimeUnit;
import org.ocpsoft.prettytime.impl.TimeFormatProvider;
import org.ocpsoft.prettytime.units.Decade;
import org.ocpsoft.prettytime.units.Millennium;
            { "SecondSingularName", "秒" },
            { "SecondPluralName", "秒" },
            { "WeekPattern", "%n%u" },
            { "WeekFuturePrefix", "今から" },
            { "WeekFutureSuffix", "後" },
            { "WeekPastPrefix", "" },
            { "WeekPastSuffix", "前" },
            { "WeekSingularName", "週間" },
            { "WeekPluralName", "週間" },
            { "YearPattern", "%n%u" },
            { "YearFuturePrefix", "今から" },
            { "YearFutureSuffix", "後" },
            { "YearPastPrefix", "" },
            { "YearPastSuffix", "前" },
            { "YearSingularName", "年" },
            { "YearPluralName", "年" },
            { "AbstractTimeUnitPattern", "" },
            { "AbstractTimeUnitFuturePrefix", "" },
            { "AbstractTimeUnitFutureSuffix", "" },
            { "AbstractTimeUnitPastPrefix", "" },
            { "AbstractTimeUnitPastSuffix", "" },
            { "AbstractTimeUnitSingularName", "" },
            { "AbstractTimeUnitPluralName", "" } };

   @Override
   public Object[][] getContents()
   {
      return OBJECTS;
   }

// Path: core/src/main/java/org/ocpsoft/prettytime/TimeFormat.java
// public interface TimeFormat
// {
//    /**
//     * Given a populated {@link Duration} object. Apply formatting (with rounding) and output the result.
//     * 
//     * @param The original {@link Duration} instance from which the time string should be decorated.
//     */
//    public abstract String format(final Duration duration);
// 
//    /**
//     * Given a populated {@link Duration} object. Apply formatting (without rounding) and output the result.
//     * 
//     * @param The original {@link Duration} instance from which the time string should be decorated.
//     */
//    public String formatUnrounded(Duration duration);
// 
//    /**
//     * Decorate with past or future prefix/suffix (with rounding)
//     * 
//     * @param duration The original {@link Duration} instance from which the time string should be decorated.
//     * @param time The formatted time string.
//     */
//    public String decorate(Duration duration, String time);
// 
//    /**
//     * Decorate with past or future prefix/suffix (without rounding)
//     * 
//     * @param duration The original {@link Duration} instance from which the time string should be decorated.
//     * @param time The formatted time string.
//     */
//    public String decorateUnrounded(Duration duration, String time);
// 
// }
// 
// Path: core/src/main/java/org/ocpsoft/prettytime/units/Decade.java
// public class Decade extends ResourcesTimeUnit
// {
// 
//    public Decade()
//    {
//       setMillisPerUnit(315569259747L);
//    }
// 
//    @Override
//    protected String getResourceKeyPrefix()
//    {
//       return "Decade";
//    }
// 
// }
// 
// Path: core/src/main/java/org/ocpsoft/prettytime/units/Millennium.java
// public class Millennium extends ResourcesTimeUnit
// {
// 
//    public Millennium()
//    {
//       setMillisPerUnit(31556926000000L);
//    }
// 
//    @Override
//    protected String getResourceKeyPrefix()
//    {
//       return "Millennium";
//    }
// 
// }


// Path: core/src/main/java/org/ocpsoft/prettytime/i18n/Resources_ja.java
import java.util.ListResourceBundle;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.concurrent.ConcurrentHashMap;
import org.ocpsoft.prettytime.Duration;
import org.ocpsoft.prettytime.TimeFormat;
import org.ocpsoft.prettytime.TimeUnit;
import org.ocpsoft.prettytime.impl.TimeFormatProvider;
import org.ocpsoft.prettytime.units.Decade;
import org.ocpsoft.prettytime.units.Millennium;

            { "SecondSingularName", "秒" },
            { "SecondPluralName", "秒" },
            { "WeekPattern", "%n%u" },
            { "WeekFuturePrefix", "今から" },
            { "WeekFutureSuffix", "後" },
            { "WeekPastPrefix", "" },
            { "WeekPastSuffix", "前" },
            { "WeekSingularName", "週間" },
            { "WeekPluralName", "週間" },
            { "YearPattern", "%n%u" },
            { "YearFuturePrefix", "今から" },
            { "YearFutureSuffix", "後" },
            { "YearPastPrefix", "" },
            { "YearPastSuffix", "前" },
            { "YearSingularName", "年" },
            { "YearPluralName", "年" },
            { "AbstractTimeUnitPattern", "" },
            { "AbstractTimeUnitFuturePrefix", "" },
            { "AbstractTimeUnitFutureSuffix", "" },
            { "AbstractTimeUnitPastPrefix", "" },
            { "AbstractTimeUnitPastSuffix", "" },
            { "AbstractTimeUnitSingularName", "" },
            { "AbstractTimeUnitPluralName", "" } };

   @Override
   public Object[][] getContents()
   {
      return OBJECTS;
   }

   private final Map<TimeUnit, TimeFormat> formatMap = new ConcurrentHashMap<>();