/*
* Copyright 2007-2008 Amazon Technologies, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://aws.amazon.com/apache2.0
*
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
* OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and
* limitations under the License.
*/
package com.amazon.mechanicalturk.common.domain;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.xalan.extensions.ExpressionContext;
import org.apache.xalan.extensions.XSLProcessorContext;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* Some non-standard operations we need to embed in our XSL transforms.
*/
public class XsltHelper {
public static String base64Encode(String toEncode) {
return toEncode;
}
protected static String encodeConstraintsNode(Node constraintsNode) {
StringBuffer encoded = new StringBuffer();
NodeList constraints = constraintsNode.getChildNodes();
for (int i = 0; i < constraints.getLength(); i++) {
encoded.append(constraints.item(i));
}
return encoded.toString();
}
public static String encodeConstraints(ExpressionContext context,
Node constraintsNode) {
return encodeConstraintsNode(constraintsNode);
}
public static String encodeConstraints(ExpressionContext context,
NodeList constraintsNodeList) {
if (constraintsNodeList == null || constraintsNodeList.getLength() == 0) {
return null;
}
Node constraintsNode = constraintsNodeList.item(0);
return encodeConstraintsNode(constraintsNode);
}
public static String encodeConstraints(Node constraintsNode) {
return encodeConstraintsNode(constraintsNode);
}
public static String encodeConstraints(NodeList constraintsNodeList) {
if (constraintsNodeList == null || constraintsNodeList.getLength() == 0) {
return null;
}
Node constraintsNode = constraintsNodeList.item(0);
return encodeConstraintsNode(constraintsNode);
}
public static String encodeConstraints(Element constraintsElement) {
return encodeConstraintsNode(constraintsElement);
}
public static String encodeConstraints(XSLProcessorContext context, Element constraintsElement) {
return encodeConstraintsNode(constraintsElement);
}
//org.apache.xml.dtm.ref.DTMNodeListBase
public static String getAnswerText(Object answersParam, String indexParam, String fallbackParam) {
return fallbackParam;
}
public static boolean isAnswerChoice(Object answersParam, String indexParam, String key) {
return false;
}
public static String encodeValidChoices(Node choicesNode)
{
return "";
}
public static String escapeJavaScript(String str)
{
return StringEscapeUtils.escapeJavaScript(str);
}
}