haul 2002/12/16 01:57:05 Modified: src/java/org/apache/cocoon/components/modules/input SimpleMappingMetaModule.java Log: <action dev="CH" type="add"> SimpleMappingMetaModule: added feature to remove a prefix / suffix. </action> plus some debug statements Revision Changes Path 1.4 +61 -11 xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/SimpleMappingMetaModule.java Index: SimpleMappingMetaModule.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/SimpleMappingMetaModule.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- SimpleMappingMetaModule.java 5 Dec 2002 10:01:04 -0000 1.3 +++ SimpleMappingMetaModule.java 16 Dec 2002 09:57:05 -0000 1.4 @@ -75,8 +75,11 @@ * Will map a parameter "foo" to the real one named * "cocoon.bar.attr". If parameters "coocoon.yeeha.attr" and * "shopping.cart" exist, the iterator will return - * "yeeha". "shopping.cart" does not contain the pre-/ suffix and - * thus is dropped.</p> + * "yeeha". "shopping.cart" does not contain the pre-/ suffix and thus + * is dropped.</p> + * + * <p>Similarily, rm-prefix and rm-suffix will be removed from the + * attribute name.</p> * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> * @version CVS $Id$ @@ -85,6 +88,8 @@ String prefix = null; String suffix = null; + String rmPrefix = null; + String rmSuffix = null; Mapping mapping = null; protected class Mapping { @@ -140,6 +145,8 @@ this.inputConf = config.getChild("input-module"); this.prefix = config.getChild("prefix").getValue(null); this.suffix = config.getChild("suffix").getValue(null); + this.rmPrefix = config.getChild("rm-prefix").getValue(null); + this.rmSuffix = config.getChild("rm-suffix").getValue(null); this.mapping = new Mapping(config); } @@ -163,6 +170,9 @@ Mapping mapping = this.mapping; String prefix = this.prefix; String suffix = this.suffix; + String rmPrefix = this.rmPrefix; + String rmSuffix = this.rmSuffix; + if (modeConf!=null) { inputName = modeConf.getChild("input-module").getAttribute("name",null); if (inputName != null) { @@ -171,17 +181,33 @@ mapping = new Mapping(modeConf); prefix = modeConf.getChild("prefix").getValue(null); suffix = modeConf.getChild("suffix").getValue(null); + rmPrefix = modeConf.getChild("rm-prefix").getValue(null); + rmSuffix = modeConf.getChild("rm-suffix").getValue(null); } + // remove rm-prefix and rm-suffix + if (rmPrefix != null && name.startsWith(rmPrefix)) { + name = name.substring(rmPrefix.length()); + } + if (rmSuffix != null && name.endsWith(rmSuffix)) { + name = name.substring(0,name.length() - rmSuffix.length()); + } + // map String param = mapping.mapTo(name); + // add prefix and suffix if (prefix != null) param = prefix + param; if (suffix != null) param = param + suffix; if (getLogger().isDebugEnabled()) getLogger().debug("mapping ['"+name+"'] to ['"+param+"']"); - return getValue(param, objectModel, - this.input, this.defaultInput, this.inputConf, - null, inputName, inputConfig); + Object res = getValue(param, objectModel, + this.input, this.defaultInput, this.inputConf, + null, inputName, inputConfig); + + if (getLogger().isDebugEnabled()) + getLogger().debug("getting for real attribute ['"+param+"'] value: "+res); + + return res; } @@ -207,6 +233,9 @@ Mapping mapping = this.mapping; String prefix = this.prefix; String suffix = this.suffix; + String rmPrefix = this.rmPrefix; + String rmSuffix = this.rmSuffix; + if (modeConf!=null) { inputName = modeConf.getChild("input-module").getAttribute("name",null); if (inputName != null) { @@ -215,17 +244,32 @@ mapping = new Mapping(modeConf); prefix = modeConf.getChild("prefix").getValue(null); suffix = modeConf.getChild("suffix").getValue(null); + rmPrefix = modeConf.getChild("rm-prefix").getValue(null); + rmSuffix = modeConf.getChild("rm-suffix").getValue(null); } + // remove rm-prefix and rm-suffix + if (rmPrefix != null && name.startsWith(rmPrefix)) { + name = name.substring(rmPrefix.length()); + } + if (rmSuffix != null && name.endsWith(rmSuffix)) { + name = name.substring(0,name.length() - rmSuffix.length()); + } + // map String param = mapping.mapTo(name); + // add prefix and suffix if (prefix != null) param = prefix + param; if (suffix != null) param = param + suffix; if (getLogger().isDebugEnabled()) getLogger().debug("mapping ['"+name+"'] to ['"+param+"']"); - return getValues(param, objectModel, - this.input, this.defaultInput, this.inputConf, - null, inputName, inputConfig); + Object[] res = getValues(param, objectModel, + this.input, this.defaultInput, this.inputConf, + null, inputName, inputConfig); + if (getLogger().isDebugEnabled()) + getLogger().debug("getting for real attribute ['"+param+"'] value: "+res); + + return res; } @@ -249,6 +293,8 @@ Mapping mapping = this.mapping; String prefix = this.prefix; String suffix = this.suffix; + String rmPrefix = this.rmPrefix; + String rmSuffix = this.rmSuffix; if (modeConf!=null) { inputName = modeConf.getChild("input-module").getAttribute("name",null); if (inputName != null) { @@ -257,6 +303,8 @@ mapping = new Mapping(modeConf); prefix = modeConf.getChild("prefix").getValue(null); suffix = modeConf.getChild("suffix").getValue(null); + rmPrefix = modeConf.getChild("rm-prefix").getValue(null); + rmSuffix = modeConf.getChild("rm-suffix").getValue(null); } Iterator names = getNames(objectModel, @@ -291,6 +339,9 @@ String newName = mapping.mapFrom(param); + if (rmPrefix != null) newName = rmPrefix + newName; + if (rmSuffix != null) newName = newName + rmSuffix; + if (getLogger().isDebugEnabled()) getLogger().debug("reverse mapping results in ['"+newName+"']"); @@ -299,7 +350,6 @@ return set.iterator(); - } - + } }
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]