haul 01/09/18 07:58:40 Modified: src/org/apache/cocoon/selection Tag: cocoon_20_branch HeaderSelectorFactory.java Log: - changed *SessionState(Matcher|Selector)* to more general *SessionAttribute(Matcher|Selector)* updated docs + samples accordingly - make some SourceFactories fail in a friendlier way when parameters are missing Revision Changes Path No revision No revision 1.1.2.4 +31 -8 xml-cocoon2/src/org/apache/cocoon/selection/HeaderSelectorFactory.java Index: HeaderSelectorFactory.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/selection/HeaderSelectorFactory.java,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -r1.1.2.3 -r1.1.2.4 --- HeaderSelectorFactory.java 2001/08/20 14:07:32 1.1.2.3 +++ HeaderSelectorFactory.java 2001/09/18 14:58:40 1.1.2.4 @@ -22,7 +22,7 @@ * </table> * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> - * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/08/20 14:07:32 $ + * @version CVS $Revision: 1.1.2.4 $ $Date: 2001/09/18 14:58:40 $ */ public class HeaderSelectorFactory extends ParameterSelectorFactory { @@ -45,13 +45,36 @@ } StringBuffer sb = new StringBuffer(); - sb.append("String compareToString = null;") - .append("if (param == null) {") - .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, \""+parameterName+"\");") - .append("} else { ") - .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, param.getParameter(\"state-key\",\""+parameterName+"\"));") - .append("}") - .append("return compareToString != null && compareToString.equals (pattern);"); + sb + .append("String compareToString = null;") + .append("if (param.getNames().length == 0) {"); + if ( parameterName == null ) { + sb + .append(" getLogger().warn(\"No request header name and no default name given. FAILING\");") + .append("} else { ") + .append(" String parameterName = param.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request header name and no default name given. FAILING\");") + .append(" } else {") + .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, parameterName);") + .append(" }"); + } else { + sb + .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, \""+parameterName+"\");") + .append("} else { ") + .append(" String parameterName = param.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request header name given, will use default\");") + .append(" parameterName = \""+parameterName+"\";") + .append(" }") + .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, parameterName);"); + } + sb + .append("}") + .append("if ( compareToString == null ) {") + .append(" getLogger().debug(\"request header not set\");") + .append("}") + .append("return compareToString != null && compareToString.equals (pattern);"); return sb.toString(); } } ---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]