View Javadoc

1   package org.kuali.common.util.property.processor;
2   
3   import java.io.File;
4   import java.util.Properties;
5   
6   import org.kuali.common.util.Mode;
7   import org.kuali.common.util.PropertyUtils;
8   import org.kuali.common.util.property.Constants;
9   import org.kuali.common.util.property.GlobalPropertiesMode;
10  import org.springframework.util.Assert;
11  
12  public class HomeProcessor implements PropertyProcessor {
13  	private static final String FS = File.separator;
14  
15  	Mode propertyOverwriteMode = Constants.DEFAULT_PROPERTY_OVERWRITE_MODE;
16  	String userHomeKey = Constants.DEFAULT_USER_HOME_KEY;
17  	GlobalPropertiesMode globalPropertiesOverrideMode = GlobalPropertiesMode.BOTH;
18  
19  	String orgGroupIdKey;
20  	String projectGroupIdKey;
21  
22  	String codeSuffix = Constants.DEFAULT_CODE_SUFFIX;
23  	String homeSuffix = Constants.DEFAULT_HOME_SUFFIX;
24  
25  	String orgGroupCodeKey;
26  	String projectGroupCodeKey;
27  	String orgHomeKey;
28  	String groupHomeKey;
29  
30  	public HomeProcessor() {
31  		this(null, null, GlobalPropertiesMode.BOTH);
32  	}
33  
34  	public HomeProcessor(String orgGroupIdKey, String projectGroupIdKey, GlobalPropertiesMode globalPropertiesOverrideMode) {
35  		super();
36  		this.orgGroupIdKey = orgGroupIdKey;
37  		this.projectGroupIdKey = projectGroupIdKey;
38  
39  		this.orgGroupCodeKey = orgGroupIdKey + "." + codeSuffix;
40  		this.projectGroupCodeKey = projectGroupIdKey + "." + codeSuffix;
41  		this.globalPropertiesOverrideMode = globalPropertiesOverrideMode;
42  	}
43  
44  	@Override
45  	public void process(Properties properties) {
46  		Assert.notNull(userHomeKey);
47  		Assert.notNull(orgGroupCodeKey);
48  		Assert.notNull(projectGroupCodeKey);
49  		Properties duplicate = PropertyUtils.getProperties(properties, globalPropertiesOverrideMode);
50  
51  		String userHome = duplicate.getProperty(userHomeKey);
52  		String orgGroupCode = duplicate.getProperty(orgGroupCodeKey);
53  		String projectGroupCode = duplicate.getProperty(projectGroupCodeKey);
54  
55  		if (userHome == null || orgGroupCode == null || projectGroupCode == null) {
56  			return;
57  		}
58  
59  		String orgHome = userHome + FS + "." + orgGroupCode;
60  		String groupHome = orgHome + FS + projectGroupCode;
61  
62  		if (orgHomeKey == null) {
63  			this.orgHomeKey = orgGroupCode + ".home";
64  		}
65  		if (groupHomeKey == null) {
66  			this.groupHomeKey = orgGroupCode + "." + projectGroupCode + ".home";
67  		}
68  
69  		PropertyUtils.addOrOverrideProperty(properties, orgHomeKey, orgHome, propertyOverwriteMode);
70  		PropertyUtils.addOrOverrideProperty(properties, groupHomeKey, groupHome, propertyOverwriteMode);
71  	}
72  
73  	public Mode getPropertyOverwriteMode() {
74  		return propertyOverwriteMode;
75  	}
76  
77  	public void setPropertyOverwriteMode(Mode propertyOverwriteMode) {
78  		this.propertyOverwriteMode = propertyOverwriteMode;
79  	}
80  
81  	public String getUserHomeKey() {
82  		return userHomeKey;
83  	}
84  
85  	public void setUserHomeKey(String userHomeKey) {
86  		this.userHomeKey = userHomeKey;
87  	}
88  
89  	public String getOrgGroupCodeKey() {
90  		return orgGroupCodeKey;
91  	}
92  
93  	public void setOrgGroupCodeKey(String orgGroupCodeKey) {
94  		this.orgGroupCodeKey = orgGroupCodeKey;
95  	}
96  
97  	public String getProjectGroupCodeKey() {
98  		return projectGroupCodeKey;
99  	}
100 
101 	public void setProjectGroupCodeKey(String projectGroupCodeKey) {
102 		this.projectGroupCodeKey = projectGroupCodeKey;
103 	}
104 
105 	public String getOrgHomeKey() {
106 		return orgHomeKey;
107 	}
108 
109 	public void setOrgHomeKey(String orgHomeKey) {
110 		this.orgHomeKey = orgHomeKey;
111 	}
112 
113 	public String getGroupHomeKey() {
114 		return groupHomeKey;
115 	}
116 
117 	public void setGroupHomeKey(String groupHomeKey) {
118 		this.groupHomeKey = groupHomeKey;
119 	}
120 
121 	public String getOrgGroupIdKey() {
122 		return orgGroupIdKey;
123 	}
124 
125 	public void setOrgGroupIdKey(String orgGroupIdKey) {
126 		this.orgGroupIdKey = orgGroupIdKey;
127 	}
128 
129 	public String getProjectGroupIdKey() {
130 		return projectGroupIdKey;
131 	}
132 
133 	public void setProjectGroupIdKey(String projectGroupIdKey) {
134 		this.projectGroupIdKey = projectGroupIdKey;
135 	}
136 
137 	public String getCodeSuffix() {
138 		return codeSuffix;
139 	}
140 
141 	public void setCodeSuffix(String codeSuffix) {
142 		this.codeSuffix = codeSuffix;
143 	}
144 
145 	public String getHomeSuffix() {
146 		return homeSuffix;
147 	}
148 
149 	public void setHomeSuffix(String homeSuffix) {
150 		this.homeSuffix = homeSuffix;
151 	}
152 
153 	public GlobalPropertiesMode getGlobalPropertiesOverrideMode() {
154 		return globalPropertiesOverrideMode;
155 	}
156 
157 	public void setGlobalPropertiesOverrideMode(GlobalPropertiesMode globalPropertiesOverrideMode) {
158 		this.globalPropertiesOverrideMode = globalPropertiesOverrideMode;
159 	}
160 
161 }