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 }