use of org.eclipse.wst.xsl.jaxp.launching.internal.ProcessorType 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;
}
Aggregations