| // © 2016 and later: Unicode, Inc. and others. |
| // License & terms of use: http://www.unicode.org/copyright.html#License |
| /* |
| ******************************************************************************* |
| * Copyright (C) 2007, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| */ |
| package com.ibm.icu.dev.test.util; |
| |
| import com.ibm.icu.util.Calendar; |
| |
| /** |
| * @author srl |
| * |
| */ |
| public class CalendarFieldsSet extends FieldsSet { |
| |
| /** |
| * @param whichEnum |
| * @param fieldsCount |
| */ |
| public CalendarFieldsSet() { |
| super(DebugUtilitiesData.UCalendarDateFields,-1); |
| } |
| |
| public boolean matches(Calendar cal, CalendarFieldsSet diffSet) { |
| boolean match = true; |
| for(int i=0;i<fieldCount();i++) { |
| if(isSet(i)) { |
| int calVal = cal.get(i); |
| if(calVal != get(i)) { |
| match = false; |
| diffSet.set(i, calVal); |
| } |
| } |
| } |
| return match; |
| } |
| |
| /** |
| * set the specified fields on this calendar. Doesn't clear first. Returns any errors the cale |
| */ |
| public void setOnCalendar(Calendar cal) { |
| for(int i=0;i<fieldCount();i++) { |
| if(isSet(i)) { |
| cal.set(i, get(i)); |
| } |
| } |
| } |
| |
| protected void handleParseValue(FieldsSet inheritFrom, int field, String substr) { |
| if(field == Calendar.MONTH) { |
| parseValueEnum(DebugUtilitiesData.UCalendarMonths, inheritFrom, field, substr); |
| // will fallback to default. |
| } else { |
| parseValueDefault(inheritFrom, field, substr); |
| } |
| } |
| } |