001 package org.kuali.common.deploy.appserver.tomcat;
002
003 import org.kuali.common.util.Assert;
004
005 public final class TomcatDirs {
006
007 private final String basedir;
008 private final String conf;
009 private final String catalina;
010 private final String logs;
011 private final String bin;
012 private final String lib;
013 private final String webapps;
014 private final String work;
015 private final String temp;
016
017 public static class Builder {
018
019 // Required
020 private final String basedir;
021
022 // Optional
023 private String logs;
024 private String bin;
025 private String lib;
026 private String webapps;
027 private String work;
028 private String temp;
029 private String conf;
030 private String catalina;
031
032 public Builder(String basedir) {
033 this.basedir = basedir;
034 this.logs = basedir + "/logs";
035 this.bin = basedir + "/bin";
036 this.lib = basedir + "/lib";
037 this.webapps = basedir + "/webapps";
038 this.work = basedir + "/work";
039 this.temp = basedir + "/temp";
040 this.conf = basedir + "/conf";
041 this.catalina = conf + "/Catalina"; // The "Catalina" dir under conf has a special meaning to Tomcat
042 }
043
044 public Builder logs(String logs) {
045 this.logs = logs;
046 return this;
047 }
048
049 public Builder bin(String bin) {
050 this.bin = bin;
051 return this;
052 }
053
054 public Builder lib(String lib) {
055 this.lib = lib;
056 return this;
057 }
058
059 public Builder webapps(String webapps) {
060 this.webapps = webapps;
061 return this;
062 }
063
064 public Builder work(String work) {
065 this.work = work;
066 return this;
067 }
068
069 public Builder temp(String temp) {
070 this.temp = temp;
071 return this;
072 }
073
074 public Builder conf(String conf) {
075 this.conf = conf;
076 return this;
077 }
078
079 public Builder catalina(String catalina) {
080 this.catalina = catalina;
081 return this;
082 }
083
084 public TomcatDirs build() {
085 Assert.noBlanks(basedir, logs, bin, lib, webapps, work, temp, conf, catalina);
086 return new TomcatDirs(this);
087 }
088
089 }
090
091 private TomcatDirs(Builder builder) {
092 this.basedir = builder.basedir;
093 this.logs = builder.logs;
094 this.bin = builder.bin;
095 this.lib = builder.lib;
096 this.webapps = builder.webapps;
097 this.work = builder.work;
098 this.temp = builder.temp;
099 this.conf = builder.conf;
100 this.catalina = builder.catalina;
101 }
102
103 public String getConf() {
104 return conf;
105 }
106
107 public String getLogs() {
108 return logs;
109 }
110
111 public String getBin() {
112 return bin;
113 }
114
115 public String getLib() {
116 return lib;
117 }
118
119 public String getWebapps() {
120 return webapps;
121 }
122
123 public String getWork() {
124 return work;
125 }
126
127 public String getTemp() {
128 return temp;
129 }
130
131 public String getBasedir() {
132 return basedir;
133 }
134
135 public String getCatalina() {
136 return catalina;
137 }
138
139 }