Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java')
-rw-r--r--bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java207
1 files changed, 0 insertions, 207 deletions
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java
deleted file mode 100644
index 11279e99e5..0000000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM - Initial API and implementation
- * Jens Lukowski/Innoopract - initial renaming/restructuring
- *
- */
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.PropertyResourceBundle;
-import java.util.ResourceBundle;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.Annotation;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-
-/**
- *
- */
-public class AnnotationFileParser {
- public static final String TAG_ID_ANNOTATIONS = "abstractGrammarAnnotations"; //$NON-NLS-1$
- public static final String TAG_ID_ANNOTATION = "annotation"; //$NON-NLS-1$
- public static final String TAG_ID_PROPERTY = "property"; //$NON-NLS-1$
-
- /**
- * This method is called to parse an annotation file and store the
- * contents into an annotationMap
- */
- private void parse(AnnotationMap annotationMap, InputStream input, AnnotationFileInfo fileInfo) throws Exception {
- // move to Xerces-2.... add 'contextClassLoader' stuff
- ClassLoader prevClassLoader = Thread.currentThread().getContextClassLoader();
- try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- factory.setNamespaceAware(true);
- SAXParser parser = factory.newSAXParser();
- parser.parse(new InputSource(input), new AnnotationMapContentHandler(annotationMap, fileInfo));
- }
- finally {
- Thread.currentThread().setContextClassLoader(prevClassLoader);
- }
- }
-
- /**
- * This method is called to parse an annotation file and store the
- * contents into an annotationMap
- */
- public void parse(AnnotationMap map, AnnotationFileInfo fileInfo) throws Exception {
- InputStream inputStream = null;
- try {
- URL url = Platform.find(Platform.getBundle(fileInfo.getBundleId()), Path.fromOSString(fileInfo.getAnnotationFileLocation()));
- if (url != null) {
- inputStream = url.openStream();
- parse(map, inputStream, fileInfo);
- }
- }
- catch (Exception e) {
- Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
- throw (e);
- }
- finally {
- try {
- if (inputStream != null) {
- inputStream.close();
- }
- }
- catch (IOException e) {
- }
- }
- }
-
- protected class AnnotationMapContentHandler extends DefaultHandler {
- private AnnotationMap annotationMap;
- private Annotation currentAnnotation;
- private String currentPropertyName;
- private StringBuffer propertyValueBuffer;
- private ResourceBundle resourceBundle;
- private AnnotationFileInfo fFileInfo;
-
- public AnnotationMapContentHandler(AnnotationMap annotationMap, AnnotationFileInfo fileInfo) {
- this.annotationMap = annotationMap;
- this.fFileInfo = fileInfo;
- }
-
- private URL generatePropertiesFileURL(AnnotationFileInfo fileInfo, String propertiesLocation) {
- URL propertiesURL = null;
-
- // prepend $nl$ variable to location
- IPath annotationPath = Path.fromOSString("$nl$/" + fileInfo.getAnnotationFileLocation()); //$NON-NLS-1$
- // remove the annotation.xml file
- IPath annotationFolder = annotationPath.removeLastSegments(1);
- // append location of propertiles file
- IPath propertiesFile = annotationFolder.append(propertiesLocation);
- // append .properties extension if needed
- if (propertiesFile.getFileExtension() == null)
- propertiesFile = propertiesFile.addFileExtension("properties"); //$NON-NLS-1$
- // create a URL out of the properties file location
- propertiesURL = Platform.find(Platform.getBundle(fileInfo.getBundleId()), propertiesFile);
- return propertiesURL;
- }
-
- public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
- propertyValueBuffer = new StringBuffer();
- if (localName.equals(TAG_ID_ANNOTATIONS)) {
- int attributesLength = attributes.getLength();
- for (int i = 0; i < attributesLength; i++) {
- String attributeName = attributes.getLocalName(i);
- String attributeValue = attributes.getValue(i);
- if (attributeName.equals("propertiesLocation")) //$NON-NLS-1$
- {
- URL bundleURL = generatePropertiesFileURL(fFileInfo, attributeValue);
- if (bundleURL != null) {
- InputStream bundleStream = null;
- try {
- bundleStream = bundleURL.openStream();
- resourceBundle = new PropertyResourceBundle(bundleStream);
- }
- catch (IOException e) {
- Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
- }
- finally {
- try {
- if (bundleStream != null)
- bundleStream.close();
- }
- catch (IOException x) {
- Logger.log(Logger.WARNING_DEBUG, x.getMessage(), x);
- }
- }
- }
- }
- else if (attributeName.equals("caseSensitive")) //$NON-NLS-1$
- {
- if (attributeValue.trim().equals("false")) //$NON-NLS-1$
- {
- annotationMap.setCaseSensitive(false);
- }
- }
- }
- }
- else if (localName.equals(TAG_ID_ANNOTATION)) {
- currentAnnotation = null;
- String specValue = attributes.getValue("spec"); //$NON-NLS-1$
- if (specValue != null) {
- currentAnnotation = new Annotation();
- currentAnnotation.setSpec(specValue);
- }
- annotationMap.addAnnotation(currentAnnotation);
- }
- else if (localName.equals(TAG_ID_PROPERTY)) {
- if (currentAnnotation != null) {
- currentPropertyName = attributes.getValue("name"); //$NON-NLS-1$
- }
- }
- }
-
- public void endElement(String uri, String localName, String qName) throws SAXException {
- if (currentPropertyName != null && currentAnnotation != null) {
- String propertyValue = propertyValueBuffer.toString();
- if (propertyValue != null) {
- if (propertyValue.startsWith("%") && resourceBundle != null) //$NON-NLS-1$
- {
- try {
- propertyValue = resourceBundle.getString(propertyValue.substring(1));
- }
- catch (Exception e) {
- // ignore any exception that occurs while trying
- // to fetch a resource
- }
- }
- currentAnnotation.setProperty(currentPropertyName, propertyValue);
- }
- }
-
- if (localName.equals(TAG_ID_ANNOTATION)) {
- currentAnnotation = null;
- }
- else if (localName.equals(TAG_ID_PROPERTY)) {
- currentPropertyName = null;
- }
- }
-
- public void characters(char[] ch, int start, int length) {
- if (currentPropertyName != null && currentAnnotation != null) {
- propertyValueBuffer.append(ch, start, length);
- }
- }
- }
-}

Back to the top