Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPDirectiveValidator.java')
-rw-r--r--bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPDirectiveValidator.java189
1 files changed, 0 insertions, 189 deletions
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPDirectiveValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPDirectiveValidator.java
deleted file mode 100644
index 3553ea9da7..0000000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPDirectiveValidator.java
+++ /dev/null
@@ -1,189 +0,0 @@
-package org.eclipse.jst.jsp.core.internal.validation;
-
-import java.io.IOException;
-import java.util.HashMap;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-
-/**
- * Checks for: - duplicate taglib prefix values - reserved taglib prefix
- * values
- *
- */
-public class JSPDirectiveValidator extends JSPValidator implements ISourceValidator {
-
- private HashMap fReservedPrefixes = new HashMap();
- private HashMap fDuplicatePrefixes = new HashMap();
- private IDocument fDocument;
-
- public JSPDirectiveValidator() {
- fReservedPrefixes.put("jsp", ""); //$NON-NLS-1$ //$NON-NLS-2$
- fReservedPrefixes.put("jspx", ""); //$NON-NLS-1$ //$NON-NLS-2$
- fReservedPrefixes.put("javax", ""); //$NON-NLS-1$ //$NON-NLS-2$
- fReservedPrefixes.put("servlet", ""); //$NON-NLS-1$ //$NON-NLS-2$
- fReservedPrefixes.put("sun", ""); //$NON-NLS-1$ //$NON-NLS-2$
- fReservedPrefixes.put("sunw", ""); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * batch validation call
- */
- protected void validateFile(IFile f, IReporter reporter) {
-
- // when validating an entire file
- // need to clear dupes or else you're comparing between files
- fDuplicatePrefixes.clear();
-
- // for batch validation
- IStructuredModel sModel = null;
- try {
- sModel = StructuredModelManager.getModelManager().getModelForRead(f);
- if (sModel != null) {
- IStructuredDocument sDoc = sModel.getStructuredDocument();
- // need to set this for partial validate call to work
- fDocument = sDoc;
- // iterate all document regions
- IStructuredDocumentRegion region = sDoc.getFirstStructuredDocumentRegion();
- while (region != null && !reporter.isCancelled()) {
- // only checking directives
- if (region.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
- validateDirective(reporter, f, sDoc, region);
- }
- region = region.getNext();
- }
- }
- }
- catch (IOException e) {
- Logger.logException(e);
- }
- catch (CoreException e) {
- Logger.logException(e);
- }
- finally {
- if (sModel != null)
- sModel.releaseFromRead();
- }
- }
-
- public void connect(IDocument document) {
- fDocument = document;
- }
-
- public void disconnect(IDocument document) {
- fDuplicatePrefixes.clear();
- }
-
- /**
- * for as you type validation (partial document)
- */
- public void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
- validate(dirtyRegion, helper, reporter, null);
- }
-
- private void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter, IFile file) {
-
- // check for restricted and duplicate prefixes
- if (fDocument instanceof IStructuredDocument) {
- IStructuredDocument sDoc = (IStructuredDocument) fDocument;
- IStructuredDocumentRegion[] regions = sDoc.getStructuredDocumentRegions(dirtyRegion.getOffset(), dirtyRegion.getLength());
- for (int i = 0; i < regions.length; i++) {
- // only checking directives
- if (regions[i].getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
- validateDirective(reporter, file, sDoc, regions[i]);
- }
- }
- }
- }
-
- private void validateDirective(IReporter reporter, IFile file, IStructuredDocument sDoc, IStructuredDocumentRegion sdRegion) {
-
- // we only care about taglib directive
- if (getDirectiveName(sdRegion).equals("taglib")) { //$NON-NLS-1$
-
- ITextRegion valueRegion = getAttributeValueRegion(sdRegion, JSP11Namespace.ATTR_NAME_PREFIX);
- if (valueRegion == null)
- return;
-
- String taglibPrefix = sdRegion.getText(valueRegion);
- int start = sdRegion.getStartOffset(valueRegion);
- // length before stripquotes
- int length = taglibPrefix.length();
- taglibPrefix = StringUtils.stripQuotes(taglibPrefix);
-
- int sev = IMessage.HIGH_SEVERITY;
- LocalizedMessage message = null;
-
- // check for errors
- // use file if available (for markers)
- if (isReservedPrefix(taglibPrefix)) {
-
- String msgText = JSPCoreMessages.JSPDirectiveValidator_0 + taglibPrefix + "'"; //$NON-NLS-2$ //$NON-NLS-1$
- message = (file == null ? new LocalizedMessage(sev, msgText) : new LocalizedMessage(sev, msgText, file));
- }
- else if (isDuplicatePrefix(sdRegion, taglibPrefix)) {
-
- String msgText = JSPCoreMessages.JSPDirectiveValidator_2 + taglibPrefix + "'"; //$NON-NLS-2$ //$NON-NLS-1$
- message = (file == null ? new LocalizedMessage(sev, msgText) : new LocalizedMessage(sev, msgText, file));
- }
-
- // if there's a message, there was an error found
- if (message != null) {
- int lineNo = sDoc.getLineOfOffset(start);
- message.setLineNo(lineNo);
- message.setOffset(start);
- message.setLength(length);
-
- reporter.addMessage(this, message);
- }
- }
- }
-
- private boolean isDuplicatePrefix(IStructuredDocumentRegion region, String taglibPrefix) {
- boolean dupe = false;
- Object o = fDuplicatePrefixes.get(taglibPrefix);
- if (o == null) {
- // prefix doesn't exist, not a dupe
- fDuplicatePrefixes.put(taglibPrefix, region);
- }
- else if (o instanceof IStructuredDocumentRegion) {
- if (((IStructuredDocumentRegion) o).isDeleted()) {
- // region was deleted, replace w/ new region
- // not a dupe
- fDuplicatePrefixes.put(taglibPrefix, region);
- }
- else if (region != o) {
- // region exists and it's not this one
- // it's a dupe
- dupe = true;
- }
- }
- return dupe;
-
- }
-
- public void cleanup(IReporter reporter) {
- super.cleanup(reporter);
- fDuplicatePrefixes.clear();
- }
-
- private boolean isReservedPrefix(String name) {
- return fReservedPrefixes.get(name) != null;
- }
-}

Back to the top