web.rawXSLT-mediator.update-mediator.jsp Maven / Gradle / Ivy
<%@page import="org.apache.synapse.mediators.Value" %>
<%@page import="org.wso2.carbon.mediator.service.ui.Mediator" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
<%@ page import="org.wso2.carbon.mediator.service.util.MediatorProperty" %>
<%@ page import="org.wso2.carbon.sequences.ui.util.SequenceEditorHelper" %>
<%@ page import="org.wso2.carbon.sequences.ui.util.ns.XPathFactory" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ page import="org.wso2.carbon.mediator.fastXSLT.FastXSLTMediator" %>
<%
try {
Mediator mediator = SequenceEditorHelper.getEditingMediator(request, session);
if (!(mediator instanceof FastXSLTMediator)) {
// todo : proper error handling
throw new RuntimeException("Unable to edit the mediator");
}
FastXSLTMediator xsltMediator = (FastXSLTMediator) mediator;
xsltMediator.setXsltKey(null);
String keyVal;
String keyExp;
XPathFactory xPathFactory = XPathFactory.getInstance();
String keyGroup = request.getParameter("keygroup");
if (keyGroup != null && !keyGroup.equals("")) {
if (keyGroup.equals("StaticKey")) {
keyVal = request.getParameter("mediator.xslt.key.static_val");
if (keyVal != null && !keyVal.equals("")) {
Value staticKey = new Value(keyVal);
xsltMediator.setXsltKey(staticKey);
}
} else if (keyGroup.equals("DynamicKey")) {
keyExp = request.getParameter("mediator.xslt.key.dynamic_val");
if (keyExp != null && !keyExp.equals("")) {
Value dynamicKey = new Value(xPathFactory.createSynapseXPath(
"mediator.xslt.key.dynamic_val", request.getParameter("mediator.xslt.key.dynamic_val"), session));
xsltMediator.setXsltKey(dynamicKey);
}
}
}
xsltMediator.setSource(xPathFactory.createSynapseXPath("mediator.xslt.source",
request.getParameter("mediator.xslt.source"), session));
String propertyCountParameter = request.getParameter("propertyCount");
if (propertyCountParameter != null && !"".equals(propertyCountParameter)) {
int propertyCount = 0;
try {
propertyCount = Integer.parseInt(propertyCountParameter.trim());
xsltMediator.getProperties().clear();
for (int i = 0; i <= propertyCount; i++) {
String name = request.getParameter("propertyName" + i);
if (name != null && !"".equals(name)) {
String valueId = "propertyValue" + i;
String value = request.getParameter(valueId);
String expression = request.getParameter("propertyTypeSelection" + i);
boolean isExpression = expression != null && "expression".equals(expression.trim());
MediatorProperty mp = new MediatorProperty();
mp.setName(name.trim());
if (value != null) {
if (isExpression) {
mp.setExpression(xPathFactory.createSynapseXPath(valueId, value.trim(), session));
} else if (value != null) {
mp.setValue(value.trim());
}
}
xsltMediator.addProperty(mp);
}
}
} catch (NumberFormatException ignored) {
}
}
String featureCountParameter = request.getParameter("featureCount");
if (featureCountParameter != null && !"".equals(featureCountParameter)) {
int featureCount = 0;
try {
featureCount = Integer.parseInt(featureCountParameter.trim());
xsltMediator.getFeatures().clear();
for (int i = 0; i <= featureCount; i++) {
String name = request.getParameter("featureName" + i);
if (name != null && !"".equals(name)) {
String value = request.getParameter("featureValue" + i);
if (value != null) {
xsltMediator.addFeature(name.trim(), Boolean.valueOf(value.trim()));
}
}
}
} catch (NumberFormatException ignored) {
}
}
String resourceList = request.getParameter("resourceList");
Map resources = new HashMap();
Map resourcesOld = xsltMediator.getResources(); //TODO need proper fix
if (resourceList != null && !"".equals(resourceList)) {
String[] resourceValues = resourceList.split("::");
for (String resourceValue : resourceValues) {
int index = resourceValue.indexOf(',');
resources.put(resourceValue.substring(0, index),
resourceValue.substring(index + 1));
resources.putAll(resourcesOld); //put already available resources also
}
xsltMediator.setResources(resources);
}
%>
<%
} catch (Exception e) {
%>
<%
return;
}
%>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy