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 }