protected long doRange(int start, int end, int step, int field) throws ANTLRException { rangeCheck(start, field); rangeCheck(end, field); if (step <= 0) error(Messages.BaseParser_MustBePositive(step)); if (start>end) error(Messages.BaseParser_StartEndReversed(end,start)); long bits = 0; for (int i = start; i <= end; i += step) { bits |= 1L << i; } return bits; }
protected long doHash(int s, int e, int step, int field) throws ANTLRException { rangeCheck(s, field); rangeCheck(e, field); if (step > e - s + 1) { error(Messages.BaseParser_OutOfRange(step, 1, e - s + 1)); throw new AssertionError(); } else if (step > 1) { long bits = 0; for (int i = hash.next(step) + s; i <= e; i += step) { bits |= 1L << i; } assert bits != 0; return bits; } else if (step <=0) { error(Messages.BaseParser_MustBePositive(step)); throw new AssertionError(); } else { assert step==NO_STEP; // step=1 (i.e. omitted) in the case of hash is actually special; means pick one value, not step by 1 return 1L << (s+hash.next(e+1-s)); } }
public static CronTabList create(@Nonnull String format, Hash hash) throws ANTLRException { Vector<CronTab> r = new Vector<>(); int lineNumber = 0; String timezone = null; for (String line : format.split("\\r?\\n")) { lineNumber++; line = line.trim(); if(lineNumber == 1 && line.startsWith("TZ=")) { timezone = getValidTimezone(line.replace("TZ=","")); if(timezone != null) { LOGGER.log(Level.CONFIG, "CRON with timezone {0}", timezone); } else { throw new ANTLRException("Invalid or unsupported timezone '" + timezone + "'"); } continue; } if(line.length()==0 || line.startsWith("#")) continue; // ignorable line try { r.add(new CronTab(line,lineNumber,hash,timezone)); } catch (ANTLRException e) { throw new ANTLRException(Messages.CronTabList_InvalidInput(line,e.toString()),e); } } return new CronTabList(r); }
return Messages.CronTab_do_you_really_mean_every_minute_when_you(spec, "H " + spec.substring(spec.indexOf(' ') + 1)); return Messages.CronTab_short_cycles_in_the_day_of_month_field_w(); return Messages.CronTab_spread_load_evenly_by_using_rather_than_(hashified, spec);
protected void rangeCheck(int value, int field) throws ANTLRException { if( value<LOWER_BOUNDS[field] || UPPER_BOUNDS[field]<value ) { error(Messages.BaseParser_OutOfRange(value,LOWER_BOUNDS[field],UPPER_BOUNDS[field])); } }
protected void rangeCheck(int value, int field) throws ANTLRException { if( value<LOWER_BOUNDS[field] || UPPER_BOUNDS[field]<value ) { error(Messages.BaseParser_OutOfRange(value,LOWER_BOUNDS[field],UPPER_BOUNDS[field])); } }
return Messages.CronTab_do_you_really_mean_every_minute_when_you(spec, "H " + spec.substring(spec.indexOf(' ') + 1)); return Messages.CronTab_short_cycles_in_the_day_of_month_field_w(); return Messages.CronTab_spread_load_evenly_by_using_rather_than_(hashified, spec);
protected long doRange(int start, int end, int step, int field) throws ANTLRException { rangeCheck(start, field); rangeCheck(end, field); if (step <= 0) error(Messages.BaseParser_MustBePositive(step)); if (start>end) error(Messages.BaseParser_StartEndReversed(end,start)); long bits = 0; for (int i = start; i <= end; i += step) { bits |= 1L << i; } return bits; }
protected long doHash(int s, int e, int step, int field) throws ANTLRException { rangeCheck(s, field); rangeCheck(e, field); if (step > e - s + 1) { error(Messages.BaseParser_OutOfRange(step, 1, e - s + 1)); throw new AssertionError(); } else if (step > 1) { long bits = 0; for (int i = hash.next(step) + s; i <= e; i += step) { bits |= 1L << i; } assert bits != 0; return bits; } else if (step <=0) { error(Messages.BaseParser_MustBePositive(step)); throw new AssertionError(); } else { assert step==NO_STEP; // step=1 (i.e. omitted) in the case of hash is actually special; means pick one value, not step by 1 return 1L << (s+hash.next(e+1-s)); } }
protected void rangeCheck(int value, int field) throws ANTLRException { if( value<LOWER_BOUNDS[field] || UPPER_BOUNDS[field]<value ) { error(Messages.BaseParser_OutOfRange(value,LOWER_BOUNDS[field],UPPER_BOUNDS[field])); } }
public static CronTabList create(String format) throws ANTLRException { Vector<CronTab> r = new Vector<CronTab>(); int lineNumber = 0; for (String line : format.split("\\r?\\n")) { lineNumber++; line = line.trim(); if(line.length()==0 || line.startsWith("#")) continue; // ignorable line try { r.add(new CronTab(line,lineNumber)); } catch (ANTLRException e) { throw new ANTLRException(Messages.CronTabList_InvalidInput(line,e.toString()),e); } } return new CronTabList(r); } }
protected long doRange(int start, int end, int step, int field) throws ANTLRException { rangeCheck(start, field); rangeCheck(end, field); if (step <= 0) error(Messages.BaseParser_MustBePositive(step)); if (start>end) error(Messages.BaseParser_StartEndReversed(end,start)); long bits = 0; for (int i = start; i <= end; i += step) { bits |= 1L << i; } return bits; }
protected void rangeCheck(int value, int field) throws ANTLRException { if( value<LOWER_BOUNDS[field] || UPPER_BOUNDS[field]<value ) { error(Messages.BaseParser_OutOfRange(value,LOWER_BOUNDS[field],UPPER_BOUNDS[field])); } }
public static CronTabList create(String format) throws ANTLRException { Vector<CronTab> r = new Vector<CronTab>(); int lineNumber = 0; for (String line : format.split("\\r?\\n")) { lineNumber++; line = line.trim(); if(line.length()==0 || line.startsWith("#")) continue; // ignorable line try { r.add(new CronTab(line,lineNumber)); } catch (ANTLRException e) { throw new ANTLRException(Messages.CronTabList_InvalidInput(line,e.toString()),e); } } return new CronTabList(r); } }
protected long doRange(int start, int end, int step, int field) throws ANTLRException { rangeCheck(start, field); rangeCheck(end, field); if (step <= 0) error(Messages.BaseParser_MustBePositive(step)); if (start>end) error(Messages.BaseParser_StartEndReversed(end,start)); long bits = 0; for (int i = start; i <= end; i += step) { bits |= 1L << i; } return bits; }
protected void rangeCheck(int value, int field) throws RecognitionException { if (value < LOWER_BOUNDS[field] || UPPER_BOUNDS[field] < value) { error(Messages.BaseParser_OutOfRange(value, LOWER_BOUNDS[field], UPPER_BOUNDS[field])); } }
public static CronTabList create(String format) throws ANTLRException { Vector<CronTab> r = new Vector<CronTab>(); int lineNumber = 0; for (String line : format.split("\\r?\\n")) { lineNumber++; line = line.trim(); if(line.length()==0 || line.startsWith("#")) continue; // ignorable line try { r.add(new CronTab(line,lineNumber)); } catch (ANTLRException e) { throw new ANTLRException(Messages.CronTabList_InvalidInput(line,e.toString()),e); } } return new CronTabList(r); } }
protected long doRange(int start, int end, int step, int field) throws ANTLRException { rangeCheck(start, field); rangeCheck(end, field); if (step <= 0) error(Messages.BaseParser_MustBePositive(step)); if (start>end) error(Messages.BaseParser_StartEndReversed(end,start)); long bits = 0; for (int i = start; i <= end; i += step) { bits |= 1L << i; } return bits; }
protected void rangeCheck(int value, int field) throws ANTLRException { if( value<LOWER_BOUNDS[field] || UPPER_BOUNDS[field]<value ) { error(Messages.BaseParser_OutOfRange(value,LOWER_BOUNDS[field],UPPER_BOUNDS[field])); } }
public static CronTabList create(String format) throws RecognitionException { List<CronTab> r = new ArrayList<CronTab>(); int lineNumber = 0; for (String line : format.split("\\r?\\n")) { lineNumber++; line = line.trim(); if (line.length() == 0 || line.startsWith("#")) { continue; // ignorable line } try { r.add(new CronTab(line, lineNumber)); } catch (RecognitionException e) { throw new BaseParser.SemanticException(Messages.CronTabList_InvalidInput(line, e.toString()), e); } } return new CronTabList(r); } }