1 /* GENERATED SOURCE. DO NOT MODIFY. */ 2 // © 2016 and later: Unicode, Inc. and others. 3 // License & terms of use: http://www.unicode.org/copyright.html#License 4 /* 5 ****************************************************************************** 6 * Copyright (C) 2007-2009, International Business Machines Corporation and * 7 * others. All Rights Reserved. * 8 ****************************************************************************** 9 */ 10 11 package ohos.global.icu.impl.duration; 12 13 import java.util.TimeZone; 14 15 /** 16 * @hide exposed on OHOS 17 */ 18 public interface PeriodBuilderFactory { 19 20 /** 21 * Sets the time units available for use. Default is all units. 22 * @param minUnit the smallest time unit available for use 23 * @param maxUnit the largest time unit available for use 24 * @return this factory 25 */ setAvailableUnitRange(TimeUnit minUnit, TimeUnit maxUnit)26 PeriodBuilderFactory setAvailableUnitRange(TimeUnit minUnit, 27 TimeUnit maxUnit); 28 29 /** 30 * Sets whether the time unit is available for use. 31 * @param unit the time unit 32 * @param available true if the unit is available for use 33 * @return this factory 34 */ setUnitIsAvailable(TimeUnit unit, boolean available)35 PeriodBuilderFactory setUnitIsAvailable(TimeUnit unit, boolean available); 36 37 /** 38 * Sets the maximum value for the largest available time unit (as 39 * set in setUnits). Periods that represent a longer duration than 40 * this will be pinned to this value of that time unit and return 41 * true for 'isMoreThan'. Default is no limit. Setting a value of 42 * zero restores the default. 43 */ setMaxLimit(float maxLimit)44 PeriodBuilderFactory setMaxLimit(float maxLimit); 45 46 /** 47 * Sets the minimum value for the smallest available time unit (as 48 * set in setUnits). Periods that represent a shorter duration than 49 * this will be pinned to this value of that time unit and return 50 * true for 'isLessThan'. Default is no limit. Setting a value of 51 * zero restores the default. 52 */ setMinLimit(float minLimit)53 PeriodBuilderFactory setMinLimit(float minLimit); 54 55 /** 56 * Sets whether units with a value of zero are represented in a 57 * period when 'gaps' appear between time units, e.g. 58 * '2 hours, 0 minutes, and 33 seconds'. Default is to 59 * not represent these explicitly ('2 hours and 33 seconds'). 60 */ setAllowZero(boolean allow)61 PeriodBuilderFactory setAllowZero(boolean allow); 62 63 /** 64 * Sets whether weeks are used with other units, or only when 65 * weeks are the only unit. For example '3 weeks and 2 days' 66 * versus '23 days'. Default is to use them alone only. 67 */ setWeeksAloneOnly(boolean aloneOnly)68 PeriodBuilderFactory setWeeksAloneOnly(boolean aloneOnly); 69 70 /** 71 * Sets whether milliseconds are allowed. This is only examined 72 * when milliseconds are an available field. The default is to allow 73 * milliseconds to display normally. 74 * <p> 75 * This is intended to be used to set locale-specific behavior. Typically clients will 76 * not call this API and instead call {@link #setLocale}. 77 * 78 * @param allow whether milliseconds should be allowed. 79 * @return a builder 80 */ setAllowMilliseconds(boolean allow)81 PeriodBuilderFactory setAllowMilliseconds(boolean allow); 82 83 /** 84 * Sets the locale for the factory. Setting the locale can adjust 85 * the values for some or all of the other properties to reflect 86 * language or cultural conventions. Default is to use 87 * the default locale. 88 */ setLocale(String localeName)89 PeriodBuilderFactory setLocale(String localeName); 90 91 /** 92 * Sets the time zone for the factory. This can affect the timezone 93 * used for date computations. 94 * @param timeZone the timeZone 95 * @return a builder 96 */ setTimeZone(TimeZone timeZone)97 PeriodBuilderFactory setTimeZone(TimeZone timeZone); 98 /** 99 * Returns a builder that represents durations in terms of the single 100 * given TimeUnit. If the factory settings don't make the given unit 101 * available, this will return null. 102 * 103 * @param unit the single TimeUnit with which to represent times 104 * @return a builder 105 */ getFixedUnitBuilder(TimeUnit unit)106 PeriodBuilder getFixedUnitBuilder(TimeUnit unit); 107 108 /** 109 * Returns a builder that represents durations in terms of the 110 * single largest period less than or equal to the duration. 111 * 112 * @return a builder 113 */ getSingleUnitBuilder()114 PeriodBuilder getSingleUnitBuilder(); 115 116 /** 117 * Returns a builder that formats the largest one or two time units, 118 * starting with the largest period less than or equal to the duration. 119 * It formats two periods if the first period has a count < 2 120 * and the next period has a count >= 1. 121 * 122 * @return a builder 123 */ getOneOrTwoUnitBuilder()124 PeriodBuilder getOneOrTwoUnitBuilder(); 125 126 /** 127 * Returns a builder that formats up to the given number of time units, 128 * starting with the largest unit less than or equal to the 129 * duration. 130 * 131 * @return a builder 132 */ getMultiUnitBuilder(int unitCount)133 PeriodBuilder getMultiUnitBuilder(int unitCount); 134 } 135 136