View Javadoc
1   package org.kuali.common.devops.archive.sweep.model;
2   
3   import static com.google.common.base.Optional.absent;
4   
5   import java.io.File;
6   
7   import org.kuali.common.core.base.TimedInterval;
8   import org.kuali.common.core.build.ValidatingBuilder;
9   
10  import com.google.common.base.Optional;
11  import com.google.common.base.Stopwatch;
12  
13  public final class PutFileResult {
14  
15  	private final File file;
16  	private final Optional<Exception> exception;
17  	private final TimedInterval timing;
18  
19  	private PutFileResult(Builder builder) {
20  		this.file = builder.file;
21  		this.exception = builder.exception;
22  		this.timing = builder.timing;
23  	}
24  
25  	public static Builder builder() {
26  		return new Builder();
27  	}
28  
29  	public static class Builder extends ValidatingBuilder<PutFileResult> {
30  
31  		private File file;
32  		private Optional<Exception> exception = absent();
33  		private TimedInterval timing;
34  
35  		public Builder withFile(File file) {
36  			this.file = file;
37  			return this;
38  		}
39  
40  		public Builder withException(Optional<Exception> exception) {
41  			this.exception = exception;
42  			return this;
43  		}
44  
45  		public Builder withException(Exception exception) {
46  			return withException(Optional.of(exception));
47  		}
48  
49  		public Builder withTiming(TimedInterval timing) {
50  			this.timing = timing;
51  			return this;
52  		}
53  
54  		public Builder time(Stopwatch sw) {
55  			return withTiming(TimedInterval.build(sw));
56  		}
57  
58  		@Override
59  		public PutFileResult build() {
60  			return validate(new PutFileResult(this));
61  		}
62  	}
63  
64  	public File getFile() {
65  		return file;
66  	}
67  
68  	public Optional<Exception> getException() {
69  		return exception;
70  	}
71  
72  	public TimedInterval getTiming() {
73  		return timing;
74  	}
75  
76  }