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
{
  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 94
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // javax.xml.datatype.Duration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     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 159
            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 160
            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 161
            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 162
            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 163
            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 164
            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 167
            iload 1 /* yearSet */
            ifeq 13
         7: .line 168
            iload 2 /* monthSet */
            ifeq 13
         8: .line 169
            iload 3 /* daySet */
            ifeq 13
         9: .line 170
            iload 4 /* hourSet */
            ifeq 13
        10: .line 171
            iload 5 /* minuteSet */
            ifeq 13
        11: .line 172
            iload 6 /* secondSet */
            ifeq 13
        12: .line 173
            getstatic javax.xml.datatype.DatatypeConstants.DURATION:Ljavax/xml/namespace/QName;
            areturn
        13: .line 177
      StackMap locals: javax.xml.datatype.Duration int int int int int int
      StackMap stack:
            iload 1 /* yearSet */
            ifne 20
        14: .line 178
            iload 2 /* monthSet */
            ifne 20
        15: .line 179
            iload 3 /* daySet */
            ifeq 20
        16: .line 180
            iload 4 /* hourSet */
            ifeq 20
        17: .line 181
            iload 5 /* minuteSet */
            ifeq 20
        18: .line 182
            iload 6 /* secondSet */
            ifeq 20
        19: .line 183
            getstatic javax.xml.datatype.DatatypeConstants.DURATION_DAYTIME:Ljavax/xml/namespace/QName;
            areturn
        20: .line 187
      StackMap locals:
      StackMap stack:
            iload 1 /* yearSet */
            ifeq 27
        21: .line 188
            iload 2 /* monthSet */
            ifeq 27
        22: .line 189
            iload 3 /* daySet */
            ifne 27
        23: .line 190
            iload 4 /* hourSet */
            ifne 27
        24: .line 191
            iload 5 /* minuteSet */
            ifne 27
        25: .line 192
            iload 6 /* secondSet */
            ifne 27
        26: .line 193
            getstatic javax.xml.datatype.DatatypeConstants.DURATION_YEARMONTH:Ljavax/xml/namespace/QName;
            areturn
        27: .line 197
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
        28: .line 198
            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 200
            iload 1 /* yearSet */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        30: .line 201
            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 202
            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 203
            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 204
            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 205
            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 198
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 197
            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 231
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.YEARS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getFieldValueAsInt:(Ljavax/xml/datatype/DatatypeConstants$Field;)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 244
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.MONTHS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getFieldValueAsInt:(Ljavax/xml/datatype/DatatypeConstants$Field;)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 257
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.DAYS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getFieldValueAsInt:(Ljavax/xml/datatype/DatatypeConstants$Field;)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 271
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.HOURS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getFieldValueAsInt:(Ljavax/xml/datatype/DatatypeConstants$Field;)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 285
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.MINUTES:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getFieldValueAsInt:(Ljavax/xml/datatype/DatatypeConstants$Field;)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 300
            aload 0 /* this */
            getstatic javax.xml.datatype.DatatypeConstants.SECONDS:Ljavax/xml/datatype/DatatypeConstants$Field;
            invokevirtual javax.xml.datatype.Duration.getFieldValueAsInt:(Ljavax/xml/datatype/DatatypeConstants$Field;)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 334
            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 335
            aload 0 /* this */
            aload 2 /* cal */
            invokevirtual javax.xml.datatype.Duration.addTo:(Ljava/util/Calendar;)V
         2: .line 336
            aload 2 /* cal */
            invokestatic javax.xml.datatype.Duration.getCalendarTimeInMillis:(Ljava/util/Calendar;)J
         3: .line 337
            aload 1 /* startInstant */
            invokestatic javax.xml.datatype.Duration.getCalendarTimeInMillis:(Ljava/util/Calendar;)J
         4: .line 336
            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 372
            new java.util.GregorianCalendar
            dup
            invokespecial java.util.GregorianCalendar.<init>:()V
            astore 2 /* cal */
        start local 2 // java.util.Calendar cal
         1: .line 373
            aload 2 /* cal */
            aload 1 /* startInstant */
            invokevirtual java.util.Calendar.setTime:(Ljava/util/Date;)V
         2: .line 374
            aload 0 /* this */
            aload 2 /* cal */
            invokevirtual javax.xml.datatype.Duration.addTo:(Ljava/util/Calendar;)V
         3: .line 375
            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

  private int getFieldValueAsInt(javax.xml.datatype.DatatypeConstants$Field);
    descriptor: (Ljavax/xml/datatype/DatatypeConstants$Field;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // javax.xml.datatype.DatatypeConstants$Field field
         0: .line 414
            aload 0 /* this */
            aload 1 /* field */
            invokevirtual javax.xml.datatype.Duration.getField:(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;
            astore 2 /* n */
        start local 2 // java.lang.Number n
         1: .line 415
            aload 2 /* n */
            ifnull 3
         2: .line 416
            aload 2 /* n */
            invokevirtual java.lang.Number.intValue:()I
            ireturn
         3: .line 418
      StackMap locals: java.lang.Number
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.Number n
        end local 1 // javax.xml.datatype.DatatypeConstants$Field field
        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  field  Ljavax/xml/datatype/DatatypeConstants$Field;
            1    4     2      n  Ljava/lang/Number;
    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 555
            aload 1 /* date */
            ifnonnull 7
         1: .line 556
            new java.lang.NullPointerException
            dup
         2: .line 557
            new java.lang.StringBuilder
            dup
            ldc "Cannot call "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 558
            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 559
            ldc "#addTo(Date date) with date == null."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 557
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 556
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 563
      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 564
            aload 2 /* cal */
            aload 1 /* date */
            invokevirtual java.util.Calendar.setTime:(Ljava/util/Date;)V
         9: .line 565
            aload 0 /* this */
            aload 2 /* cal */
            invokevirtual javax.xml.datatype.Duration.addTo:(Ljava/util/Calendar;)V
        10: .line 566
            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 567
            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 619
            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=3, locals=2, args_size=2
        start local 0 // javax.xml.datatype.Duration this
        start local 1 // int factor
         0: .line 639
            aload 0 /* this */
            iload 1 /* factor */
            i2l
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            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 796
            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 818
            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 859
            aload 1 /* duration */
            aload 0 /* this */
            if_acmpne 2
         1: .line 860
            iconst_1
            ireturn
         2: .line 862
      StackMap locals:
      StackMap stack:
            aload 1 /* duration */
            instanceof javax.xml.datatype.Duration
            ifeq 5
         3: .line 863
            aload 0 /* this */
            aload 1 /* duration */
            checkcast javax.xml.datatype.Duration
            invokevirtual javax.xml.datatype.Duration.compare:(Ljavax/xml/datatype/Duration;)I
            ifne 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
         5: .line 865
      StackMap locals:
      StackMap stack:
            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    6     0      this  Ljavax/xml/datatype/Duration;
            0    6     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=3, locals=8, args_size=1
        start local 0 // javax.xml.datatype.Duration this
         0: .line 891
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuffer buf
         1: .line 893
            aload 0 /* this */
            invokevirtual javax.xml.datatype.Duration.getSign:()I
            ifge 3
         2: .line 894
            aload 1 /* buf */
            bipush 45
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         3: .line 896
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            aload 1 /* buf */
            bipush 80
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         4: .line 898
            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 899
            aload 2 /* years */
            ifnull 7
         6: .line 900
            aload 1 /* buf */
            aload 2 /* years */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            bipush 89
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         7: .line 903
      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 904
            aload 3 /* months */
            ifnull 10
         9: .line 905
            aload 1 /* buf */
            aload 3 /* months */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            bipush 77
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        10: .line 908
      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 909
            aload 4 /* days */
            ifnull 13
        12: .line 910
            aload 1 /* buf */
            aload 4 /* days */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            bipush 68
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        13: .line 913
      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 914
            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 915
            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 916
            aload 5 /* hours */
            ifnonnull 17
            aload 6 /* minutes */
            ifnonnull 17
            aload 7 /* seconds */
            ifnull 24
        17: .line 917
      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 918
            aload 5 /* hours */
            ifnull 20
        19: .line 919
            aload 1 /* buf */
            aload 5 /* hours */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            bipush 72
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        20: .line 921
      StackMap locals:
      StackMap stack:
            aload 6 /* minutes */
            ifnull 22
        21: .line 922
            aload 1 /* buf */
            aload 6 /* minutes */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            bipush 77
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        22: .line 924
      StackMap locals:
      StackMap stack:
            aload 7 /* seconds */
            ifnull 24
        23: .line 925
            aload 1 /* buf */
            aload 0 /* this */
            aload 7 /* seconds */
            invokevirtual javax.xml.datatype.Duration.toString:(Ljava/math/BigDecimal;)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            bipush 83
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        24: .line 929
      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 943
            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 944
            aload 1 /* bd */
            invokevirtual java.math.BigDecimal.scale:()I
            istore 3 /* scale */
        start local 3 // int scale
         2: .line 946
            iload 3 /* scale */
            ifne 4
         3: .line 947
            aload 2 /* intString */
            areturn
         4: .line 952
      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 953
            iload 5 /* insertionPoint */
            ifne 7
         6: .line 954
            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 956
      StackMap locals: javax.xml.datatype.Duration java.math.BigDecimal java.lang.String int top int
      StackMap stack:
            iload 5 /* insertionPoint */
            ifle 11
         8: .line 957
            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 958
            aload 4 /* buf */
            iload 5 /* insertionPoint */
            bipush 46
            invokevirtual java.lang.StringBuffer.insert:(IC)Ljava/lang/StringBuffer;
            pop
        10: .line 959
            goto 19
        end local 4 // java.lang.StringBuffer buf
        11: .line 961
      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 962
            aload 4 /* buf */
            ldc "0."
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        13: .line 963
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        14: goto 17
        15: .line 964
      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 963
            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 966
            aload 4 /* buf */
            aload 2 /* intString */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        19: .line 968
      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 984
            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