use of org.eclipse.wst.xsl.jaxp.launching.internal.OutputPropertyPreferences in project webtools.sourceediting by eclipse.
the class ProcessorTypeRegistry method getProcessorTypes.
public IProcessorType[] getProcessorTypes() {
if (installTypes == null) {
List<ProcessorType> types = new ArrayList<ProcessorType>();
String featureXMLString = JAXPLaunchingPlugin.getDefault().getPluginPreferences().getString(JAXPRuntime.PREF_FEATURE_XML);
// If the preference was found, load VMs from it into memory
FeaturePreferences prefs = null;
if (featureXMLString.length() > 0) {
try {
ByteArrayInputStream inputStream = new ByteArrayInputStream(featureXMLString.getBytes());
prefs = FeaturePreferences.fromXML(inputStream);
} catch (CoreException e) {
JAXPLaunchingPlugin.log(e);
}
}
String propXMLString = JAXPLaunchingPlugin.getDefault().getPluginPreferences().getString(JAXPRuntime.PREF_OUTPUT_PROPERTIES_XML);
// If the preference was found, load VMs from it into memory
OutputPropertyPreferences outputprefs = null;
if (propXMLString.length() > 0) {
try {
ByteArrayInputStream inputStream = new ByteArrayInputStream(propXMLString.getBytes());
outputprefs = OutputPropertyPreferences.fromXML(inputStream);
} catch (CoreException e) {
JAXPLaunchingPlugin.log(e);
}
}
for (Iterator<IConfigurationElement> iter = elements.iterator(); iter.hasNext(); ) {
IConfigurationElement element = iter.next();
String id = element.getAttribute(ProcessorTypeRegistryReader.ATT_ID);
String label = element.getAttribute(ProcessorTypeRegistryReader.ATT_LABEL);
Map<String, String> featureValues = new HashMap<String, String>();
Map<String, String> propertyValues = new HashMap<String, String>();
if (prefs != null && prefs.getFeaturesValues(id) != null)
featureValues.putAll(prefs.getFeaturesValues(id));
if (outputprefs != null && outputprefs.getOutputPropertyValues(id) != null)
propertyValues.putAll(outputprefs.getOutputPropertyValues(id));
String outputProperties = element.getAttribute(ProcessorTypeRegistryReader.ATT_OUTPUT_PROPERTIES);
URL outputPropertiesURL = FileLocator.find(Platform.getBundle(element.getContributor().getName()), new Path(outputProperties), null);
String featureProperties = element.getAttribute(ProcessorTypeRegistryReader.ATT_ATTRIBUTE_PROPERTIES);
URL featurePropertiesURL = FileLocator.find(Platform.getBundle(element.getContributor().getName()), new Path(featureProperties), null);
List<ITransformerFactory> transFactoryList = new ArrayList<ITransformerFactory>();
IConfigurationElement[] transFactEls = element.getChildren(ProcessorTypeRegistryReader.EL_TRANSFORMER_FACTORY);
for (IConfigurationElement transFactEl : transFactEls) {
String transFactoryName = transFactEl.getAttribute(ProcessorTypeRegistryReader.ATT_TRANSFORMER_FACTORY_NAME);
String transFactoryClass = transFactEl.getAttribute(ProcessorTypeRegistryReader.ATT_TRANSFORMER_FACTORY_CLASS);
transFactoryList.add(new TransformerFactory(transFactoryName, transFactoryClass));
}
types.add(new ProcessorType(id, label, featurePropertiesURL, outputPropertiesURL, featureValues, propertyValues, transFactoryList.toArray(new ITransformerFactory[0])));
}
installTypes = types.toArray(new IProcessorType[0]);
}
return installTypes;
}
use of org.eclipse.wst.xsl.jaxp.launching.internal.OutputPropertyPreferences in project webtools.sourceediting by eclipse.
the class JAXPRuntime method saveOutputPropertyPreferences.
public static void saveOutputPropertyPreferences(Map<IProcessorType, Map<String, String>> typeProperties, IProgressMonitor monitor) throws CoreException {
if (monitor.isCanceled())
return;
try {
monitor.beginTask(Messages.XSLTRuntime_7, 100);
OutputPropertyPreferences prefs = new OutputPropertyPreferences();
for (IProcessorType type : typeProperties.keySet()) {
prefs.setOutputPropertyValues(type.getId(), typeProperties.get(type));
}
String xml = prefs.getAsXML();
monitor.worked(40);
if (monitor.isCanceled())
return;
JAXPRuntime.getPreferences().setValue(JAXPRuntime.PREF_OUTPUT_PROPERTIES_XML, xml);
monitor.worked(30);
if (monitor.isCanceled())
return;
JAXPRuntime.savePreferences();
monitor.worked(30);
} catch (Exception e) {
throw new CoreException(new Status(IStatus.ERROR, JAXPLaunchingPlugin.PLUGIN_ID, Messages.XSLTRuntime_8, e));
} finally {
monitor.done();
}
}
Aggregations