code: protected void handleComputeFields(int julianDay) {
          internalSet(MONTH, getGregorianMonth());
          internalSet(DAY_OF_MONTH, getGregorianDayOfMonth());
          internalSet(DAY_OF_YEAR, getGregorianDayOfYear());
          int eyear = getGregorianYear();
          internalSet(EXTENDED_YEAR, eyear);
          int era = GregorianCalendar.AD;
          if (eyear < 1) {
              era = GregorianCalendar.BC;
              eyear = 1 - eyear;
          }
          internalSet(ERA, era);
          internalSet(YEAR, eyear);
      }
docs: Subclasses may override this method to compute several fields
  specific to each calendar system.  These are:
  
  <ul><li>ERA
  <li>YEAR
  <li>MONTH
  <li>DAY_OF_MONTH
  <li>DAY_OF_YEAR
  <li>EXTENDED_YEAR</ul>
  
  Subclasses can refer to the DAY_OF_WEEK and DOW_LOCAL fields, which
  will be set when this method is called.  Subclasses can also call
  the getGregorianXxx() methods to obtain Gregorian calendar
  equivalents for the given Julian day.
  
  <p>In addition, subclasses should compute any subclass-specific
  fields, that is, fields from BASE_FIELD_COUNT to
  getFieldCount() - 1.
  
  <p>The default implementation in <code>Calendar</code> implements
  a pure proleptic Gregorian calendar.