public abstract class javax.xml.datatype.Duration
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: javax.xml.datatype.Duration
  super_class: java.lang.Object
{
  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 115
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 116
            return
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/xml/datatype/Duration;

  public javax.xml.namespace.QName getXMLSchemaType();
    descriptor: ()Ljavax/xml/namespace/QName;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 177
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.YEARS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.isSet:(Ljavax/xml/datatype/DatatypeConstants$Field;)Z
            istore 1 /* yearSet */
        start local 1 // boolean yearSet
         1: .line 178
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.MONTHS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.isSet:(Ljavax/xml/datatype/DatatypeConstants$Field;)Z
            istore 2 /* monthSet */
        start local 2 // boolean monthSet
         2: .line 179
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.DAYS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.isSet:(Ljavax/xml/datatype/DatatypeConstants$Field;)Z
            istore 3 /* daySet */
        start local 3 // boolean daySet
         3: .line 180
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.HOURS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.isSet:(Ljavax/xml/datatype/DatatypeConstants$Field;)Z
            istore 4 /* hourSet */
        start local 4 // boolean hourSet
         4: .line 181
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.MINUTES:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.isSet:(Ljavax/xml/datatype/DatatypeConstants$Field;)Z
            istore 5 /* minuteSet */
        start local 5 // boolean minuteSet
         5: .line 182
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.SECONDS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.isSet:(Ljavax/xml/datatype/DatatypeConstants$Field;)Z
            istore 6 /* secondSet */
        start local 6 // boolean secondSet
         6: .line 185
            iload 1 /* yearSet */
            ifeq 13
         7: .line 186
            iload 2 /* monthSet */
            ifeq 13
         8: .line 187
            iload 3 /* daySet */
            ifeq 13
         9: .line 188
            iload 4 /* hourSet */
            ifeq 13
        10: .line 189
            iload 5 /* minuteSet */
            ifeq 13
        11: .line 190
            iload 6 /* secondSet */
            ifeq 13
        12: .line 191
            getstatic javax.xml.datatype.DatatypeConstants.DURATION:Ljavax/xml/namespace/QName;
            areturn
        13: .line 195
      StackMap locals: javax.xml.datatype.Duration int int int int int int
      StackMap stack:
            iload 1 /* yearSet */
            ifne 20
        14: .line 196
            iload 2 /* monthSet */
            ifne 20
        15: .line 197
            iload 3 /* daySet */
            ifeq 20
        16: .line 198
            iload 4 /* hourSet */
            ifeq 20
        17: .line 199
            iload 5 /* minuteSet */
            ifeq 20
        18: .line 200
            iload 6 /* secondSet */
            ifeq 20
        19: .line 201
            getstatic javax.xml.datatype.DatatypeConstants.DURATION_DAYTIME:Ljavax/xml/namespace/QName;
            areturn
        20: .line 205
      StackMap locals:
      StackMap stack:
            iload 1 /* yearSet */
            ifeq 27
        21: .line 206
            iload 2 /* monthSet */
            ifeq 27
        22: .line 207
            iload 3 /* daySet */
            ifne 27
        23: .line 208
            iload 4 /* hourSet */
            ifne 27
        24: .line 209
            iload 5 /* minuteSet */
            ifne 27
        25: .line 210
            iload 6 /* secondSet */
            ifne 27
        26: .line 211
            getstatic javax.xml.datatype.DatatypeConstants.DURATION_YEARMONTH:Ljavax/xml/namespace/QName;
            areturn
        27: .line 215
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
        28: .line 216
            new java.lang.StringBuilder
            dup
            ldc "javax.xml.datatype.Duration#getXMLSchemaType(): this Duration does not match one of the XML Schema date/time datatypes: year set = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        29: .line 218
            iload 1 /* yearSet */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        30: .line 219
            ldc " month set = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* monthSet */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        31: .line 220
            ldc " day set = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* daySet */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        32: .line 221
            ldc " hour set = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* hourSet */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        33: .line 222
            ldc " minute set = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* minuteSet */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        34: .line 223
            ldc " second set = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* secondSet */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        35: .line 216
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 215
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // boolean secondSet
        end local 5 // boolean minuteSet
        end local 4 // boolean hourSet
        end local 3 // boolean daySet
        end local 2 // boolean monthSet
        end local 1 // boolean yearSet
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   37     0       this  Ljavax/xml/datatype/Duration;
            1   37     1    yearSet  Z
            2   37     2   monthSet  Z
            3   37     3     daySet  Z
            4   37     4    hourSet  Z
            5   37     5  minuteSet  Z
            6   37     6  secondSet  Z

  public abstract int getSign();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public int getYears();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 249
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.YEARS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            invokevirtual java.lang.Number.intValue:()I
            ireturn
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/xml/datatype/Duration;

  public int getMonths();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 262
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.MONTHS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            invokevirtual java.lang.Number.intValue:()I
            ireturn
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/xml/datatype/Duration;

  public int getDays();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 275
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.DAYS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            invokevirtual java.lang.Number.intValue:()I
            ireturn
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/xml/datatype/Duration;

  public int getHours();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 289
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.HOURS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            invokevirtual java.lang.Number.intValue:()I
            ireturn
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/xml/datatype/Duration;

  public int getMinutes();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 303
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.MINUTES:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            invokevirtual java.lang.Number.intValue:()I
            ireturn
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/xml/datatype/Duration;

  public int getSeconds();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 318
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.SECONDS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            invokevirtual java.lang.Number.intValue:()I
            ireturn
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/xml/datatype/Duration;

  public long getTimeInMillis(java.util.Calendar);
    descriptor: (Ljava/util/Calendar;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // java.util.Calendar startInstant
         0: .line 352
            aload 1 /* startInstant */
            invokevirtual java.util.Calendar.clone:()Ljava/lang/Object;
            checkcast java.util.Calendar
            astore 2 /* cal */
        start local 2 // java.util.Calendar cal
         1: .line 353
            aload 0 /* this */
            aload 2 /* cal */
            invokevirtual javax.xml.datatype.Duration.addTo:(Ljava/util/Calendar;)V
         2: .line 354
            aload 2 /* cal */
            invokestatic javax.xml.datatype.Duration.getCalendarTimeInMillis:(Ljava/util/Calendar;)J
         3: .line 355
            aload 1 /* startInstant */
            invokestatic javax.xml.datatype.Duration.getCalendarTimeInMillis:(Ljava/util/Calendar;)J
         4: .line 354
            lsub
            lreturn
        end local 2 // java.util.Calendar cal
        end local 1 // java.util.Calendar startInstant
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Ljavax/xml/datatype/Duration;
            0    5     1  startInstant  Ljava/util/Calendar;
            1    5     2           cal  Ljava/util/Calendar;
    MethodParameters:
              Name  Flags
      startInstant  final

  public long getTimeInMillis(java.util.Date);
    descriptor: (Ljava/util/Date;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // java.util.Date startInstant
         0: .line 390
            new java.util.GregorianCalendar
            dup
            invokespecial java.util.GregorianCalendar.<init>:()V
            astore 2 /* cal */
        start local 2 // java.util.Calendar cal
         1: .line 391
            aload 2 /* cal */
            aload 1 /* startInstant */
            invokevirtual java.util.Calendar.setTime:(Ljava/util/Date;)V
         2: .line 392
            aload 0 /* this */
            aload 2 /* cal */
            invokevirtual javax.xml.datatype.Duration.addTo:(Ljava/util/Calendar;)V
         3: .line 393
            aload 2 /* cal */
            invokestatic javax.xml.datatype.Duration.getCalendarTimeInMillis:(Ljava/util/Calendar;)J
            aload 1 /* startInstant */
            invokevirtual java.util.Date.getTime:()J
            lsub
            lreturn
        end local 2 // java.util.Calendar cal
        end local 1 // java.util.Date startInstant
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Ljavax/xml/datatype/Duration;
            0    4     1  startInstant  Ljava/util/Date;
            1    4     2           cal  Ljava/util/Calendar;
    MethodParameters:
              Name  Flags
      startInstant  final

  public abstract java.lang.Number getField(javax.xml.datatype.DatatypeConstants$Field);
    descriptor: (Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      field  final

  public abstract boolean isSet(javax.xml.datatype.DatatypeConstants$Field);
    descriptor: (Ljavax/xml/datatype/DatatypeConstants$Field;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      field  final

  public abstract javax.xml.datatype.Duration add(javax.xml.datatype.Duration);
    descriptor: (Ljavax/xml/datatype/Duration;)Ljavax/xml/datatype/Duration;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      rhs   final

  public abstract void addTo(java.util.Calendar);
    descriptor: (Ljava/util/Calendar;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      calendar  

  public void addTo(java.util.Date);
    descriptor: (Ljava/util/Date;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // java.util.Date date
         0: .line 552
            aload 1 /* date */
            ifnonnull 7
         1: .line 553
            new java.lang.NullPointerException
            dup
         2: .line 554
            new java.lang.StringBuilder
            dup
            ldc "Cannot call "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 555
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 556
            ldc "#addTo(Date date) with date == null."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 554
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 553
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 560
      StackMap locals:
      StackMap stack:
            new java.util.GregorianCalendar
            dup
            invokespecial java.util.GregorianCalendar.<init>:()V
            astore 2 /* cal */
        start local 2 // java.util.Calendar cal
         8: .line 561
            aload 2 /* cal */
            aload 1 /* date */
            invokevirtual java.util.Calendar.setTime:(Ljava/util/Date;)V
         9: .line 562
            aload 0 /* this */
            aload 2 /* cal */
            invokevirtual javax.xml.datatype.Duration.addTo:(Ljava/util/Calendar;)V
        10: .line 563
            aload 1 /* date */
            aload 2 /* cal */
            invokestatic javax.xml.datatype.Duration.getCalendarTimeInMillis:(Ljava/util/Calendar;)J
            invokevirtual java.util.Date.setTime:(J)V
        11: .line 564
            return
        end local 2 // java.util.Calendar cal
        end local 1 // java.util.Date date
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljavax/xml/datatype/Duration;
            0   12     1  date  Ljava/util/Date;
            8   12     2   cal  Ljava/util/Calendar;
    MethodParameters:
      Name  Flags
      date  

  public javax.xml.datatype.Duration subtract(javax.xml.datatype.Duration);
    descriptor: (Ljavax/xml/datatype/Duration;)Ljavax/xml/datatype/Duration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // javax.xml.datatype.Duration rhs
         0: .line 616
            aload 0 /* this */
            aload 1 /* rhs */
            invokevirtual javax.xml.datatype.Duration.negate:()Ljavax/xml/datatype/Duration;
            invokevirtual javax.xml.datatype.Duration.add:(Ljavax/xml/datatype/Duration;)Ljavax/xml/datatype/Duration;
            areturn
        end local 1 // javax.xml.datatype.Duration rhs
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/xml/datatype/Duration;
            0    1     1   rhs  Ljavax/xml/datatype/Duration;
    MethodParameters:
      Name  Flags
      rhs   final

  public javax.xml.datatype.Duration multiply(int);
    descriptor: (I)Ljavax/xml/datatype/Duration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // int factor
         0: .line 636
            aload 0 /* this */
            new java.math.BigDecimal
            dup
            iload 1 /* factor */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.math.BigDecimal.<init>:(Ljava/lang/String;)V
            invokevirtual javax.xml.datatype.Duration.multiply:(Ljava/math/BigDecimal;)Ljavax/xml/datatype/Duration;
            areturn
        end local 1 // int factor
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljavax/xml/datatype/Duration;
            0    1     1  factor  I
    MethodParameters:
        Name  Flags
      factor  

  public abstract javax.xml.datatype.Duration multiply(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljavax/xml/datatype/Duration;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      factor  final

  public abstract javax.xml.datatype.Duration negate();
    descriptor: ()Ljavax/xml/datatype/Duration;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract javax.xml.datatype.Duration normalizeWith(java.util.Calendar);
    descriptor: (Ljava/util/Calendar;)Ljavax/xml/datatype/Duration;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
                  Name  Flags
      startTimeInstant  final

  public abstract int compare(javax.xml.datatype.Duration);
    descriptor: (Ljavax/xml/datatype/Duration;)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      duration  final

  public boolean isLongerThan(javax.xml.datatype.Duration);
    descriptor: (Ljavax/xml/datatype/Duration;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // javax.xml.datatype.Duration duration
         0: .line 793
            aload 0 /* this */
            aload 1 /* duration */
            invokevirtual javax.xml.datatype.Duration.compare:(Ljavax/xml/datatype/Duration;)I
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // javax.xml.datatype.Duration duration
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljavax/xml/datatype/Duration;
            0    2     1  duration  Ljavax/xml/datatype/Duration;
    MethodParameters:
          Name  Flags
      duration  final

  public boolean isShorterThan(javax.xml.datatype.Duration);
    descriptor: (Ljavax/xml/datatype/Duration;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // javax.xml.datatype.Duration duration
         0: .line 815
            aload 0 /* this */
            aload 1 /* duration */
            invokevirtual javax.xml.datatype.Duration.compare:(Ljavax/xml/datatype/Duration;)I
            iconst_m1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // javax.xml.datatype.Duration duration
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljavax/xml/datatype/Duration;
            0    2     1  duration  Ljavax/xml/datatype/Duration;
    MethodParameters:
          Name  Flags
      duration  final

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // java.lang.Object duration
         0: .line 858
            aload 1 /* duration */
            ifnull 1
            aload 1 /* duration */
            instanceof javax.xml.datatype.Duration
            ifne 2
         1: .line 859
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 862
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* duration */
            checkcast javax.xml.datatype.Duration
            invokevirtual javax.xml.datatype.Duration.compare:(Ljavax/xml/datatype/Duration;)I
            ifne 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.lang.Object duration
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljavax/xml/datatype/Duration;
            0    4     1  duration  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      duration  final

  public abstract int hashCode();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 889
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuffer buf
         1: .line 891
            aload 0 /* this */
            invokevirtual javax.xml.datatype.Duration.getSign:()I
            ifge 3
         2: .line 892
            aload 1 /* buf */
            bipush 45
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         3: .line 894
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            aload 1 /* buf */
            bipush 80
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         4: .line 896
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.YEARS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            checkcast java.math.BigInteger
            astore 2 /* years */
        start local 2 // java.math.BigInteger years
         5: .line 897
            aload 2 /* years */
            ifnull 7
         6: .line 898
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 2 /* years */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "Y"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         7: .line 901
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.MONTHS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            checkcast java.math.BigInteger
            astore 3 /* months */
        start local 3 // java.math.BigInteger months
         8: .line 902
            aload 3 /* months */
            ifnull 10
         9: .line 903
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 3 /* months */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "M"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        10: .line 906
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.DAYS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            checkcast java.math.BigInteger
            astore 4 /* days */
        start local 4 // java.math.BigInteger days
        11: .line 907
            aload 4 /* days */
            ifnull 13
        12: .line 908
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 4 /* days */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "D"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        13: .line 911
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.HOURS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            checkcast java.math.BigInteger
            astore 5 /* hours */
        start local 5 // java.math.BigInteger hours
        14: .line 912
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.MINUTES:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            checkcast java.math.BigInteger
            astore 6 /* minutes */
        start local 6 // java.math.BigInteger minutes
        15: .line 913
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.SECONDS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            checkcast java.math.BigDecimal
            astore 7 /* seconds */
        start local 7 // java.math.BigDecimal seconds
        16: .line 914
            aload 5 /* hours */
            ifnonnull 17
            aload 6 /* minutes */
            ifnonnull 17
            aload 7 /* seconds */
            ifnull 24
        17: .line 915
      StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigDecimal
      StackMap stack:
            aload 1 /* buf */
            bipush 84
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        18: .line 916
            aload 5 /* hours */
            ifnull 20
        19: .line 917
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 5 /* hours */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "H"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        20: .line 919
      StackMap locals:
      StackMap stack:
            aload 6 /* minutes */
            ifnull 22
        21: .line 920
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 6 /* minutes */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "M"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        22: .line 922
      StackMap locals:
      StackMap stack:
            aload 7 /* seconds */
            ifnull 24
        23: .line 923
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 7 /* seconds */
            invokevirtual javax.xml.datatype.Duration.toString:(Ljava/math/BigDecimal;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "S"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        24: .line 927
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 7 // java.math.BigDecimal seconds
        end local 6 // java.math.BigInteger minutes
        end local 5 // java.math.BigInteger hours
        end local 4 // java.math.BigInteger days
        end local 3 // java.math.BigInteger months
        end local 2 // java.math.BigInteger years
        end local 1 // java.lang.StringBuffer buf
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Ljavax/xml/datatype/Duration;
            1   25     1      buf  Ljava/lang/StringBuffer;
            5   25     2    years  Ljava/math/BigInteger;
            8   25     3   months  Ljava/math/BigInteger;
           11   25     4     days  Ljava/math/BigInteger;
           14   25     5    hours  Ljava/math/BigInteger;
           15   25     6  minutes  Ljava/math/BigInteger;
           16   25     7  seconds  Ljava/math/BigDecimal;

  private java.lang.String toString(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // java.math.BigDecimal bd
         0: .line 941
            aload 1 /* bd */
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            astore 2 /* intString */
        start local 2 // java.lang.String intString
         1: .line 942
            aload 1 /* bd */
            invokevirtual java.math.BigDecimal.scale:()I
            istore 3 /* scale */
        start local 3 // int scale
         2: .line 944
            iload 3 /* scale */
            ifne 4
         3: .line 945
            aload 2 /* intString */
            areturn
         4: .line 950
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 2 /* intString */
            invokevirtual java.lang.String.length:()I
            iload 3 /* scale */
            isub
            istore 5 /* insertionPoint */
        start local 5 // int insertionPoint
         5: .line 951
            iload 5 /* insertionPoint */
            ifne 7
         6: .line 952
            new java.lang.StringBuilder
            dup
            ldc "0."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* intString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         7: .line 953
      StackMap locals: javax.xml.datatype.Duration java.math.BigDecimal java.lang.String int top int
      StackMap stack:
            iload 5 /* insertionPoint */
            ifle 11
         8: .line 954
            new java.lang.StringBuffer
            dup
            aload 2 /* intString */
            invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuffer buf
         9: .line 955
            aload 4 /* buf */
            iload 5 /* insertionPoint */
            bipush 46
            invokevirtual java.lang.StringBuffer.insert:(IC)Ljava/lang/StringBuffer;
            pop
        10: .line 956
            goto 19
        end local 4 // java.lang.StringBuffer buf
        11: .line 957
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuffer
            dup
            iconst_3
            iload 5 /* insertionPoint */
            isub
            aload 2 /* intString */
            invokevirtual java.lang.String.length:()I
            iadd
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuffer buf
        12: .line 958
            aload 4 /* buf */
            ldc "0."
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        13: .line 959
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        14: goto 17
        15: .line 960
      StackMap locals: javax.xml.datatype.Duration java.math.BigDecimal java.lang.String int java.lang.StringBuffer int int
      StackMap stack:
            aload 4 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        16: .line 959
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 6 /* i */
            iload 5 /* insertionPoint */
            ineg
            if_icmplt 15
        end local 6 // int i
        18: .line 962
            aload 4 /* buf */
            aload 2 /* intString */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        19: .line 964
      StackMap locals:
      StackMap stack:
            aload 4 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 5 // int insertionPoint
        end local 4 // java.lang.StringBuffer buf
        end local 3 // int scale
        end local 2 // java.lang.String intString
        end local 1 // java.math.BigDecimal bd
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Ljavax/xml/datatype/Duration;
            0   20     1              bd  Ljava/math/BigDecimal;
            1   20     2       intString  Ljava/lang/String;
            2   20     3           scale  I
            9   11     4             buf  Ljava/lang/StringBuffer;
           12   20     4             buf  Ljava/lang/StringBuffer;
            5   20     5  insertionPoint  I
           14   18     6               i  I
    MethodParameters:
      Name  Flags
      bd    

  private static long getCalendarTimeInMillis(java.util.Calendar);
    descriptor: (Ljava/util/Calendar;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Calendar cal
         0: .line 980
            aload 0 /* cal */
            invokevirtual java.util.Calendar.getTime:()Ljava/util/Date;
            invokevirtual java.util.Date.getTime:()J
            lreturn
        end local 0 // java.util.Calendar cal
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   cal  Ljava/util/Calendar;
    MethodParameters:
      Name  Flags
      cal   final
}
SourceFile: "Duration.java"
InnerClasses:
  public final Field = javax.xml.datatype.DatatypeConstants$Field of javax.xml.datatype.DatatypeConstants