blob: 8f86acb227d6de4421cc051d31a595aca710994d [file] [log] [blame]
/*
*******************************************************************************
* 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);
}
}
}