/*
* Copyright 2013-2014 Grzegorz Ligas <ligasgr@gmail.com> and other contributors
* (see the CONTRIBUTORS file).
*
* 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://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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 org.intellij.xquery.runner.state.run;
import org.jdom.CDATA;
import org.jdom.Element;
/**
* User: ligasgr
* Date: 18/11/13
* Time: 13:58
*/
public class XmlConfigurationAccessor {
public static final String CONFIGURATION_TAG = "xQueryConfiguration";
public void readConfiguration(Element element, XQueryRunConfiguration runConfiguration) {
Element configuration = element.getChild(CONFIGURATION_TAG);
if (configuration == null) return;
runConfiguration.setMainFileName(configuration.getAttributeValue("mainFileName"));
runConfiguration.setVMParameters(configuration.getAttributeValue("vmParameters"));
runConfiguration.setProgramParameters(configuration.getAttributeValue("programParameters"));
runConfiguration.setRawWorkingDirectory(configuration.getAttributeValue("workingDirectory"));
String alternativeJrePathEnabledString = configuration.getAttributeValue("alternativeJrePathEnabled");
if (alternativeJrePathEnabledString != null)
runConfiguration.setAlternativeJrePathEnabled(new Boolean(alternativeJrePathEnabledString));
runConfiguration.setAlternativeJrePath(configuration.getAttributeValue("alternativeJrePath"));
String contextItemEnabledString = configuration.getAttributeValue("contextItemEnabled");
if (contextItemEnabledString != null)
runConfiguration.setContextItemEnabled(new Boolean(contextItemEnabledString));
String contextItemFromEditorEnabledString = configuration.getAttributeValue("contextItemFromEditorEnabled");
if (contextItemFromEditorEnabledString != null)
runConfiguration.setContextItemFromEditorEnabled(new Boolean(contextItemFromEditorEnabledString));
Element contextItemTextElement = configuration.getChild("contextItemText");
if (contextItemTextElement != null) {
runConfiguration.setContextItemText(contextItemTextElement.getText());
}
runConfiguration.setContextItemFile(configuration.getAttributeValue("contextItemFile"));
runConfiguration.setContextItemType(configuration.getAttributeValue("contextItemType"));
runConfiguration.setDataSourceName(configuration.getAttributeValue("dataSourceName"));
}
public void writeConfiguration(XQueryRunConfiguration runConfiguration, Element element) {
Element configuration = new Element(CONFIGURATION_TAG);
element.addContent(configuration);
if (runConfiguration.getMainFileName() != null)
configuration.setAttribute("mainFileName", runConfiguration.getMainFileName());
if (runConfiguration.getVMParameters() != null)
configuration.setAttribute("vmParameters", runConfiguration.getVMParameters());
if (runConfiguration.getProgramParameters() != null)
configuration.setAttribute("programParameters", runConfiguration.getProgramParameters());
if (runConfiguration.getRawWorkingDirectory() != null)
configuration.setAttribute("workingDirectory", runConfiguration.getRawWorkingDirectory());
configuration.setAttribute("alternativeJrePathEnabled", Boolean.toString(runConfiguration.isAlternativeJrePathEnabled()));
if (runConfiguration.getAlternativeJrePath() != null)
configuration.setAttribute("alternativeJrePath", runConfiguration.getAlternativeJrePath());
configuration.setAttribute("contextItemEnabled", Boolean.toString(runConfiguration.isContextItemEnabled()));
configuration.setAttribute("contextItemFromEditorEnabled", Boolean.toString(runConfiguration.isContextItemFromEditorEnabled()));
if (runConfiguration.getContextItemText() != null) {
Element contextItemTextElement = new Element("contextItemText");
contextItemTextElement.addContent(new CDATA(runConfiguration.getContextItemText()));
configuration.addContent(contextItemTextElement);
}
if (runConfiguration.getContextItemFile() != null) {
configuration.setAttribute("contextItemFile", runConfiguration.getContextItemFile());
}
if (runConfiguration.getContextItemType() != null) {
configuration.setAttribute("contextItemType", runConfiguration.getContextItemType());
}
if (runConfiguration.getDataSourceName() != null) {
configuration.setAttribute("dataSourceName", runConfiguration.getDataSourceName());
}
}
}