/* */ 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 */