2682 private static void appendValue(StringBuilder sb, String item, boolean valid, long value) { 2683 sb.append(item).append('='); 2684 if (valid) { 2685 sb.append(value); 2686 } else { 2687 sb.append('?'); 2688 } 2689 } 2690 2691 /** 2692 * Both firstDayOfWeek and minimalDaysInFirstWeek are locale-dependent. 2693 * They are used to figure out the week count for a specific date for 2694 * a given locale. These must be set when a Calendar is constructed. 2695 * @param desiredLocale the given locale. 2696 */ 2697 private void setWeekCountData(Locale desiredLocale) 2698 { 2699 /* try to get the Locale data from the cache */ 2700 int[] data = cachedLocaleData.get(desiredLocale); 2701 if (data == null) { /* cache miss */ 2702 LocaleProviderAdapter adapter = LocaleProviderAdapter.getAdapter(CalendarDataProvider.class, desiredLocale); 2703 CalendarDataProvider provider = adapter.getCalendarDataProvider(); 2704 data = new int[2]; 2705 data[0] = provider.getFirstDayOfWeek(desiredLocale); 2706 data[1] = provider.getMinimalDaysInFirstWeek(desiredLocale); 2707 assert data[0] != 0 && data[1] != 0; 2708 cachedLocaleData.putIfAbsent(desiredLocale, data); 2709 } 2710 firstDayOfWeek = data[0]; 2711 minimalDaysInFirstWeek = data[1]; 2712 } 2713 2714 /** 2715 * Recomputes the time and updates the status fields isTimeSet 2716 * and areFieldsSet. Callers should check isTimeSet and only 2717 * call this method if isTimeSet is false. 2718 */ 2719 private void updateTime() { 2720 computeTime(); 2721 // The areFieldsSet and areAllFieldsSet values are no longer 2722 // controlled here (as of 1.5). 2723 isTimeSet = true; 2724 } 2725 2726 private int compareTo(long t) { 2727 long thisTime = getMillisOf(this); | 2682 private static void appendValue(StringBuilder sb, String item, boolean valid, long value) { 2683 sb.append(item).append('='); 2684 if (valid) { 2685 sb.append(value); 2686 } else { 2687 sb.append('?'); 2688 } 2689 } 2690 2691 /** 2692 * Both firstDayOfWeek and minimalDaysInFirstWeek are locale-dependent. 2693 * They are used to figure out the week count for a specific date for 2694 * a given locale. These must be set when a Calendar is constructed. 2695 * @param desiredLocale the given locale. 2696 */ 2697 private void setWeekCountData(Locale desiredLocale) 2698 { 2699 /* try to get the Locale data from the cache */ 2700 int[] data = cachedLocaleData.get(desiredLocale); 2701 if (data == null) { /* cache miss */ 2702 data = new int[2]; 2703 data[0] = CalendarDataUtility.retrieveFirstDayOfWeek(desiredLocale); 2704 data[1] = CalendarDataUtility.retrieveMinimalDaysInFirstWeek(desiredLocale); 2705 cachedLocaleData.putIfAbsent(desiredLocale, data); 2706 } 2707 firstDayOfWeek = data[0]; 2708 minimalDaysInFirstWeek = data[1]; 2709 } 2710 2711 /** 2712 * Recomputes the time and updates the status fields isTimeSet 2713 * and areFieldsSet. Callers should check isTimeSet and only 2714 * call this method if isTimeSet is false. 2715 */ 2716 private void updateTime() { 2717 computeTime(); 2718 // The areFieldsSet and areAllFieldsSet values are no longer 2719 // controlled here (as of 1.5). 2720 isTimeSet = true; 2721 } 2722 2723 private int compareTo(long t) { 2724 long thisTime = getMillisOf(this); |