- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 05 Aug 2009 17:21:43 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3/unicorn/util In directory hutz:/tmp/cvs-serv13417/src/org/w3/unicorn/util Added Files: Tag: dev2 UCNProperties.java Property.java Log Message: modified xmlbean ant task +changed package name from w3c to w3 --- NEW FILE: Property.java --- package org.w3.unicorn.util; import java.util.Properties; public class Property { private static Properties unicornProperties; public static String get(String key) { return unicornProperties.getProperty(key); } public static String get(String key1, String key2) { return unicornProperties.getProperty(key1) + unicornProperties.getProperty(key2); } public static void setUnicornProperties(Properties unicornProperties) { Property.unicornProperties = unicornProperties; } public static Properties getUnicornProperties() { return unicornProperties; } } --- NEW FILE: UCNProperties.java --- package org.w3.unicorn.util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.log4j.Logger; public class UCNProperties extends Properties { private static final long serialVersionUID = 1L; static Logger logger = Logger.getLogger("Init"); private Pattern pattern = Pattern.compile("\\$\\{[a-zA-Z_0-9]*\\}"); @Override public synchronized void load(InputStream inStream) throws IOException { super.load(inStream); this.parse(); } public void parse() { for(Object key : this.keySet()) { logger.debug("-----------------------------------------------------------------------------"); logger.debug("> Parsing Property : \"" + key + "\" => \"" + this.getProperty((String) key)); Matcher matcher = pattern.matcher(this.getProperty((String) key)); if (matcher.find()) { matcher.reset(); while (matcher.find()) { String match = matcher.group(); logger.debug(">> Pattern matched with: \"" + match + "\""); String foundKey = (String) match.subSequence(2, match.length()-1); if (!this.containsKey(foundKey)) { logger.warn(">> String \"" + foundKey + "\" is not an existing property."); } else { String foundProp = this.getProperty(foundKey); logger.debug(">> Found coresponding property: \"" + foundKey + "\" => \"" + foundProp +"\""); String subst = this.getProperty((String) key); subst = subst.replace(match, foundProp); this.put(key, subst); matcher = pattern.matcher(this.getProperty((String) key)); } } logger.debug(">> Parsed property: \"" + key + "\" => \"" + this.getProperty((String) key) + "\""); } else { logger.debug(">> No nested property found"); } } } @Override public String toString() { String result = ""; for(Object key : this.keySet()) { result += "\n"+key+"\t=>\t"+this.getProperty((String) key); } return result; } }
Received on Wednesday, 5 August 2009 17:21:53 UTC