/* ******************************************************************************* * Copyright (C) 2007, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ package com.ibm.icu.dev.test.util; import com.ibm.icu.text.DateFormat; /** * @author srl * */ public class DateTimeStyleSet extends FieldsSet { private static final int DTS_DATE = 0; private static final String kDATE = "DATE"; private static final int DTS_TIME = 1; private static final String kTIME = "TIME"; private static final int DTS_COUNT = 2; private static final String kRELATIVE_ = "RELATIVE_"; private int getOrNone(int which) { if(!isSet(which)) { return DateFormat.NONE; } else { return get(which); } } public DateTimeStyleSet() { super(FieldsSet.NO_ENUM, DTS_COUNT); } public int getDateStyle() { return getOrNone(DTS_DATE); } public int getTimeStyle() { return getOrNone(DTS_TIME); } protected void handleParseValue(FieldsSet inheritFrom, int field, String substr) { if(substr.startsWith(kRELATIVE_)) { parseValueEnum(DebugUtilitiesData.UDateFormatStyle, inheritFrom, field, substr.substring(kRELATIVE_.length())); if(isSet(field)) { set(field, get(field) | DateFormat.RELATIVE); } } else { parseValueEnum(DebugUtilitiesData.UDateFormatStyle, inheritFrom, field, substr); } } protected int handleParseName(FieldsSet inheritFrom, String name, String substr) { if(name.equals(kDATE)) { return DTS_DATE; } else if(name.equals(kTIME)) { return DTS_TIME; } else { throw new IllegalArgumentException("Bad field: " + name); } } }