return result.toString();
}
private String formatDuration(SchemaType sType) {
XmlDuration d = (XmlDuration) sType.getFacet(SchemaType.FACET_MIN_INCLUSIVE);
GDuration minInclusive = null;
if (d != null) {
minInclusive = d.getGDurationValue();
}
d = (XmlDuration) sType.getFacet(SchemaType.FACET_MAX_INCLUSIVE);
GDuration maxInclusive = null;
if (d != null) {
maxInclusive = d.getGDurationValue();
}
d = (XmlDuration) sType.getFacet(SchemaType.FACET_MIN_EXCLUSIVE);
GDuration minExclusive = null;
if (d != null) {
minExclusive = d.getGDurationValue();
}
d = (XmlDuration) sType.getFacet(SchemaType.FACET_MAX_EXCLUSIVE);
GDuration maxExclusive = null;
if (d != null) {
maxExclusive = d.getGDurationValue();
}
GDurationBuilder gdurb = new GDurationBuilder();
@SuppressWarnings("unused")
BigInteger min, max;
gdurb.setSecond(pick(800000));
gdurb.setMonth(pick(20));
// Years
// Months
// Days
// Hours
// Minutes
// Seconds
// Fractions
if (minInclusive != null) {
if (gdurb.getYear() < minInclusive.getYear()) {
gdurb.setYear(minInclusive.getYear());
}
if (gdurb.getMonth() < minInclusive.getMonth()) {
gdurb.setMonth(minInclusive.getMonth());
}
if (gdurb.getDay() < minInclusive.getDay()) {
gdurb.setDay(minInclusive.getDay());
}
if (gdurb.getHour() < minInclusive.getHour()) {
gdurb.setHour(minInclusive.getHour());
}
if (gdurb.getMinute() < minInclusive.getMinute()) {
gdurb.setMinute(minInclusive.getMinute());
}
if (gdurb.getSecond() < minInclusive.getSecond()) {
gdurb.setSecond(minInclusive.getSecond());
}
if (gdurb.getFraction().compareTo(minInclusive.getFraction()) < 0) {
gdurb.setFraction(minInclusive.getFraction());
}
}
if (maxInclusive != null) {
if (gdurb.getYear() > maxInclusive.getYear()) {
gdurb.setYear(maxInclusive.getYear());
}
if (gdurb.getMonth() > maxInclusive.getMonth()) {
gdurb.setMonth(maxInclusive.getMonth());
}
if (gdurb.getDay() > maxInclusive.getDay()) {
gdurb.setDay(maxInclusive.getDay());
}
if (gdurb.getHour() > maxInclusive.getHour()) {
gdurb.setHour(maxInclusive.getHour());
}
if (gdurb.getMinute() > maxInclusive.getMinute()) {
gdurb.setMinute(maxInclusive.getMinute());
}
if (gdurb.getSecond() > maxInclusive.getSecond()) {
gdurb.setSecond(maxInclusive.getSecond());
}
if (gdurb.getFraction().compareTo(maxInclusive.getFraction()) > 0) {
gdurb.setFraction(maxInclusive.getFraction());
}
}
if (minExclusive != null) {
if (gdurb.getYear() <= minExclusive.getYear()) {
gdurb.setYear(minExclusive.getYear() + 1);
}
if (gdurb.getMonth() <= minExclusive.getMonth()) {
gdurb.setMonth(minExclusive.getMonth() + 1);
}
if (gdurb.getDay() <= minExclusive.getDay()) {
gdurb.setDay(minExclusive.getDay() + 1);
}
if (gdurb.getHour() <= minExclusive.getHour()) {
gdurb.setHour(minExclusive.getHour() + 1);
}
if (gdurb.getMinute() <= minExclusive.getMinute()) {
gdurb.setMinute(minExclusive.getMinute() + 1);
}
if (gdurb.getSecond() <= minExclusive.getSecond()) {
gdurb.setSecond(minExclusive.getSecond() + 1);
}
if (gdurb.getFraction().compareTo(minExclusive.getFraction()) <= 0) {
gdurb.setFraction(minExclusive.getFraction().add(new BigDecimal("0.001")));
}
}
if (maxExclusive != null) {
if (gdurb.getYear() > maxExclusive.getYear()) {
gdurb.setYear(maxExclusive.getYear());
}
if (gdurb.getMonth() > maxExclusive.getMonth()) {
gdurb.setMonth(maxExclusive.getMonth());
}
if (gdurb.getDay() > maxExclusive.getDay()) {
gdurb.setDay(maxExclusive.getDay());
}
if (gdurb.getHour() > maxExclusive.getHour()) {
gdurb.setHour(maxExclusive.getHour());
}
if (gdurb.getMinute() > maxExclusive.getMinute()) {
gdurb.setMinute(maxExclusive.getMinute());
}
if (gdurb.getSecond() > maxExclusive.getSecond()) {
gdurb.setSecond(maxExclusive.getSecond());
}
if (gdurb.getFraction().compareTo(maxExclusive.getFraction()) > 0) {
gdurb.setFraction(maxExclusive.getFraction());
}
}
gdurb.normalize();
return gdurb.toString();