1 40 41 package com.sun.jmx.examples.scandir.config; 42 43 import java.util.Date ; 44 import javax.xml.bind.annotation.XmlElement; 45 import javax.xml.bind.annotation.XmlList; 46 import javax.xml.bind.annotation.XmlRootElement; 47 import com.sun.jmx.examples.scandir.config.DirectoryScannerConfig.Action; 48 import java.io.File ; 49 import java.util.Arrays ; 50 51 61 @XmlRootElement(name="ResultRecord",namespace=XmlConfigUtils.NAMESPACE) 62 public class ResultRecord { 63 64 67 private String filename; 68 69 72 private Date date; 73 74 78 private String directoryScanner; 79 80 83 private Action[] actions; 84 85 88 public ResultRecord() { 89 } 90 91 98 public ResultRecord(DirectoryScannerConfig scan, Action[] actions, 99 File f) { 100 directoryScanner = scan.getName(); 101 this.actions = actions; 102 date = new Date (); 103 filename = f.getAbsolutePath(); 104 } 105 106 110 @XmlElement(name="Filename",namespace=XmlConfigUtils.NAMESPACE) 111 public String getFilename() { 112 return this.filename; 113 } 114 115 120 public void setFilename(String filename) { 121 this.filename = filename; 122 } 123 124 128 @XmlElement(name="Date",namespace=XmlConfigUtils.NAMESPACE) 129 public Date getDate() { 130 synchronized(this) { 131 return (date==null)?null:(new Date (date.getTime())); 132 } 133 } 134 135 139 public void setDate(Date date) { 140 synchronized (this) { 141 this.date = (date==null)?null:(new Date (date.getTime())); 142 } 143 } 144 145 152 @XmlElement(name="DirectoryScanner",namespace=XmlConfigUtils.NAMESPACE) 153 public String getDirectoryScanner() { 154 return this.directoryScanner; 155 } 156 157 164 public void setDirectoryScanner(String directoryScanner) { 165 this.directoryScanner = directoryScanner; 166 } 167 168 172 @XmlElement(name="Actions",namespace=XmlConfigUtils.NAMESPACE) 173 @XmlList 174 public Action[] getActions() { 175 return (actions == null)?null:actions.clone(); 176 } 177 178 182 public void setActions(Action[] actions) { 183 this.actions = (actions == null)?null:actions.clone(); 184 } 185 186 private Object [] toArray() { 188 final Object [] thisconfig = { 189 filename, date, directoryScanner, actions 190 }; 191 return thisconfig; 192 } 193 194 @Override 195 public boolean equals(Object o) { 196 if (this == o) return true; 197 if (!(o instanceof ResultRecord)) return false; 198 return Arrays.deepEquals(toArray(),((ResultRecord)o).toArray()); 199 } 200 201 @Override 202 public int hashCode() { 203 return Arrays.deepHashCode(toArray()); 204 } 205 } 206 | Popular Tags |