question: void addRule ( int startYear , int endYear , int month , int dayOfMonthIndicator , int dayOfWeek , LocalTime time , boolean timeEndOfDay , TimeDefinition timeDefinition , int savingAmountSecs ) { if ( fixedSavingAmountSecs != null ) { throw new IllegalStateException ( "Window has a fixed DST saving, so cannot have DST rules" ) ; } if ( ruleList . size ( ) >= 2000 ) { throw new IllegalStateException ( "Window has reached the maximum number of allowed rules" ) ; } boolean lastRule = false ; if ( endYear == YEAR_MAX_VALUE ) { lastRule = true ; endYear = startYear ; } int year = startYear ; while ( year <= endYear ) { TZRule rule = new TZRule ( year , month , dayOfMonthIndicator , dayOfWeek , time , timeEndOfDay , timeDefinition , savingAmountSecs ) ; if ( lastRule ) { lastRuleList . add ( rule ) ; } else { ruleList . add ( rule ) ; } maxLastRuleStartYear = Math . max ( startYear , maxLastRuleStartYear ) ; year ++ ; } }
target:  Adds a rule to the current window.