diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileParser.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileParser.java | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileParser.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileParser.java deleted file mode 100644 index 1fa3ec90a..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileParser.java +++ /dev/null @@ -1,164 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM - Initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * Gerry Kessler/Oracle - code borrowed and repurposed for JSF subproject - * - *******************************************************************************/ -package org.eclipse.jst.jsf.contentmodel.annotation.internal; - -import java.io.IOException; -import java.io.InputStream; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.eclipse.jst.jsf.common.JSFCommonPlugin; -import org.eclipse.jst.jsf.contentmodel.annotation.CMAnnotationSourceFileLocator; -import org.eclipse.jst.jsf.contentmodel.annotation.ICMAnnotationFileParser; -import org.xml.sax.Attributes; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -/** - * Default implementation of ICMAnnotationFileParser that will parse xml files conforming to - * http://org.eclipse.jst.jsf.contentmodel.annotations/grammarAnnotationSchema. - * - * @author Gerry Kessler - Oracle - * - * also see http://org.eclipse.jst.jsf.contentmodel.annotations/grammarAnnotationSchema - * @deprecated see common.metadata package - */ -public class CMAnnotationFileParser implements ICMAnnotationFileParser { - - public static final String TAG_ID_ANNOTATIONS = "grammar-annotations"; //$NON-NLS-1$ - public static final String TAG_ID_ELEMENT = "cm-element"; //$NON-NLS-1$ - public static final String TAG_ID_ATTRIBUTE = "cm-attribute"; //$NON-NLS-1$ - public static final String TAG_ID_PROPERTY = "property"; //$NON-NLS-1$ - public static final String TAG_ID_PROPERTY_VALUE = "value"; //$NON-NLS-1$ - - /** - * This method is called to parse an annotation file and store the contents - * into an annotationMap via the advisor - */ - private void parse(ICMAnnotationAdvisor advisor, InputStream input) throws Exception { - ClassLoader prevClassLoader = Thread.currentThread().getContextClassLoader(); - try { - SAXParserFactory factory = SAXParserFactory.newInstance(); - factory.setNamespaceAware(true); - SAXParser parser = factory.newSAXParser(); - parser.parse(new InputSource(input), new CMAnnotationMapContentHandler(advisor)); - } finally { - Thread.currentThread().setContextClassLoader(prevClassLoader); - if (input != null){ - try { - input.close(); - } catch (IOException e) { - JSFCommonPlugin.log(e, "error closing annotation file"); - } - } - } - } - - /* (non-Javadoc) - * @see org.eclipse.jst.jsf.contentmodel.annotation.ICMAnnotationFileParser#parse(org.eclipse.jst.jsf.contentmodel.annotation.internal.ICMAnnotationAdvisor, org.eclipse.jst.jsf.contentmodel.annotation.CMAnnotationSourceFileLocator) - */ - public void parse(ICMAnnotationAdvisor advisor, CMAnnotationSourceFileLocator locator) - throws Exception { - - InputStream inputStream = locator.getAnnotationSourceInputStream(); - parse(advisor, inputStream); - } - - /** - * Default content handler for annotation files following grammar-annotations schema - * - * @author Gerry Kessler - Oracle - */ - protected class CMAnnotationMapContentHandler extends DefaultHandler { - private ICMAnnotationAdvisor advisor; - private String elementName; - private String attributeName; - private String currentPropertyName; - private String currentPropertyValue; - private StringBuffer propertyValueBuffer; - - private boolean isInCMAttribute = false; - - private boolean doCaptureNodeText; - - /** - * Constructor - * @param advisor - */ - public CMAnnotationMapContentHandler(ICMAnnotationAdvisor advisor) { - this.advisor = advisor; - } - - public void startElement(String uri, String localName, String qName, Attributes attributes) - throws SAXException { - 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("caseSensitive")) { //$NON-NLS-1$ - if (attributeValue.trim().equals("false")) {//$NON-NLS-1$ - advisor.setCaseSensitive(false); - } - } - } - } else if (localName.equals(TAG_ID_ELEMENT)) { - isInCMAttribute = false; - elementName = attributes.getValue("name"); //$NON-NLS-1$ - } else if (localName.equals(TAG_ID_ATTRIBUTE)) { - isInCMAttribute = true; - attributeName = attributes.getValue("name"); //$NON-NLS-1$ - } else if (localName.equals(TAG_ID_PROPERTY)) { - currentPropertyName = attributes.getValue("name"); //$NON-NLS-1$ - } else if (localName.equals(TAG_ID_PROPERTY_VALUE)) { - propertyValueBuffer = new StringBuffer(); - doCaptureNodeText = true; - } - } - - public void endElement(String uri, String localName, String qName) throws SAXException { - if (currentPropertyName != null && localName.equals(TAG_ID_PROPERTY_VALUE)) { - doCaptureNodeText = false; - currentPropertyValue = propertyValueBuffer.toString(); - if (currentPropertyValue != null) { - if (isInCMAttribute) - advisor.addAttributeAnnotation(elementName, attributeName, - currentPropertyName, currentPropertyValue); - else - advisor.addElementAnnotation(elementName, currentPropertyName, - currentPropertyValue); - } - } - - if (localName.equals(TAG_ID_ELEMENT)) { - elementName = null; - } else if (localName.equals(TAG_ID_ATTRIBUTE)) { - isInCMAttribute = false; - attributeName = null; - } else if (localName.equals(TAG_ID_PROPERTY)) { - currentPropertyName = null; - } else if (localName.equals(TAG_ID_PROPERTY_VALUE)) { - currentPropertyValue = null; - } - } - - public void characters(char[] ch, int start, int length) { - if (doCaptureNodeText) - propertyValueBuffer.append(ch, start, length); - } - - } -} |