1 8 package org.mmbase.applications.crontab; 9 10 11 import java.util.*; 12 13 19 20 public class CronEntryField { 21 private String content; 22 23 boolean[] valid = new boolean[60]; 24 25 public CronEntryField() { 26 } 27 28 public CronEntryField(String content) { 29 setTimeVal(content); 30 } 31 32 35 public void setTimeVal(String content){ 36 this.content = content; 37 38 for (int x =0 ; x < valid.length ; x++){ 39 valid[x] = false; 40 } 41 42 StringTokenizer st = new StringTokenizer(content,","); 43 while(st.hasMoreTokens()){ 45 String subentry = st.nextToken(); 46 parseEntry(subentry); 47 } 48 } 49 50 public void parseEntry(String subentry){ 51 StringTokenizer st = new StringTokenizer(subentry,"/"); 52 String timelist = st.nextToken(); 53 54 55 int step =1; 56 if (st.hasMoreTokens()){ 57 step = Integer.parseInt(st.nextToken()); 58 } 59 60 if (timelist.indexOf("-") != -1){ StringTokenizer rangeSplit = new StringTokenizer(timelist,"-"); 67 String start = rangeSplit.nextToken(); 68 String end = rangeSplit.nextToken(); 69 for (int x = Integer.parseInt(start); x <= Integer.parseInt(end); x += step){ 70 valid[x] = true; 71 } 72 } else if (timelist.indexOf("*") != -1){ for (int x =0 ; x < valid.length; x += step){ 74 valid[x]= true; 75 } 76 } else { 77 int number = Integer.parseInt(timelist); 78 valid[number] = true; 79 } 80 } 81 82 public boolean valid(int otherValue){ 83 return valid[otherValue]; 84 } 85 86 public int hashCode() { 87 return content.hashCode(); 88 } 89 90 public boolean equals(Object o) { 91 if (! (o instanceof CronEntryField)) { 92 return false; 93 } 94 CronEntryField f = (CronEntryField) o; 95 return content.equals(f.content); 96 } 97 } 98 | Popular Tags |