View Javadoc
1   package org.kuali.common.util.system;
2   
3   import java.io.File;
4   
5   import org.kuali.common.util.bind.api.BindingAlias;
6   import org.kuali.common.util.build.AwesomeBuilder;
7   import org.kuali.common.util.validate.IdiotProofImmutable;
8   
9   @IdiotProofImmutable
10  public final class User {
11  
12  	private final String name;
13  	private final File home;
14  	@BindingAlias(value = "directory", includeFieldName = true)
15  	private final File dir;
16  
17  	private User(Builder builder) {
18  		this.name = builder.name;
19  		this.home = builder.home;
20  		this.dir = builder.dir;
21  	}
22  
23  	public static Builder builder() {
24  		return new Builder();
25  	}
26  
27  	public static class Builder extends AwesomeBuilder<User> {
28  
29  		private String name;
30  		private File home;
31  		private File dir;
32  
33  		public Builder name(String name) {
34  			this.name = name;
35  			return this;
36  		}
37  
38  		public Builder home(File home) {
39  			this.home = home;
40  			return this;
41  		}
42  
43  		public Builder dir(File dir) {
44  			this.dir = dir;
45  			return this;
46  		}
47  
48  		@Override
49  		public User getInstance() {
50  			return new User(this);
51  		}
52  
53  		public String getName() {
54  			return name;
55  		}
56  
57  		public void setName(String name) {
58  			this.name = name;
59  		}
60  
61  		public File getHome() {
62  			return home;
63  		}
64  
65  		public void setHome(File home) {
66  			this.home = home;
67  		}
68  
69  		public File getDir() {
70  			return dir;
71  		}
72  
73  		public void setDir(File dir) {
74  			this.dir = dir;
75  		}
76  	}
77  
78  	public String getName() {
79  		return name;
80  	}
81  
82  	public File getHome() {
83  		return home;
84  	}
85  
86  	public File getDir() {
87  		return dir;
88  	}
89  
90  }