/* */ package com.ibm.icu.impl.duration;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ class MultiUnitBuilder
/* */ extends PeriodBuilderImpl
/* */ {
/* */ private int nPeriods;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ MultiUnitBuilder(int nPeriods, BasicPeriodBuilderFactory.Settings settings)
/* */ {
/* 469 */ super(settings);
/* 470 */ this.nPeriods = nPeriods;
/* */ }
/* */
/* */ public static MultiUnitBuilder get(int nPeriods, BasicPeriodBuilderFactory.Settings settings) {
/* 474 */ if ((nPeriods > 0) && (settings != null)) {
/* 475 */ return new MultiUnitBuilder(nPeriods, settings);
/* */ }
/* 477 */ return null;
/* */ }
/* */
/* */ protected PeriodBuilder withSettings(BasicPeriodBuilderFactory.Settings settingsToUse) {
/* 481 */ return get(this.nPeriods, settingsToUse);
/* */ }
/* */
/* */ protected Period handleCreate(long duration, long referenceDate, boolean inPast)
/* */ {
/* 486 */ Period period = null;
/* 487 */ int n = 0;
/* 488 */ short uset = this.settings.effectiveSet();
/* 489 */ for (int i = 0; i < TimeUnit.units.length; i++) {
/* 490 */ if (0 != (uset & 1 << i)) {
/* 491 */ TimeUnit unit = TimeUnit.units[i];
/* 492 */ if (n == this.nPeriods) {
/* */ break;
/* */ }
/* 495 */ long unitDuration = approximateDurationOf(unit);
/* 496 */ if ((duration >= unitDuration) || (n > 0)) {
/* 497 */ n++;
/* 498 */ double count = duration / unitDuration;
/* 499 */ if (n < this.nPeriods) {
/* 500 */ count = Math.floor(count);
/* 501 */ duration -= (count * unitDuration);
/* */ }
/* 503 */ if (period == null) {
/* 504 */ period = Period.at((float)count, unit).inPast(inPast);
/* */ } else {
/* 506 */ period = period.and((float)count, unit);
/* */ }
/* */ }
/* */ }
/* */ }
/* 511 */ return period;
/* */ }
/* */ }
/* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\ibm\icu\impl\duration\MultiUnitBuilder.class
* Java compiler version: 5 (49.0)
* JD-Core Version: 0.7.1
*/