Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java')
-rw-r--r--bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java705
1 files changed, 0 insertions, 705 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java
deleted file mode 100644
index b72ce34c3..000000000
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java
+++ /dev/null
@@ -1,705 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002-2005 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
- *******************************************************************************/
-package org.eclipse.wst.wsi.internal.core.profile.validator.impl;
-
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.TreeMap;
-import java.util.Vector;
-
-import org.eclipse.wst.wsi.internal.core.WSIException;
-import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext;
-import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact;
-import org.eclipse.wst.wsi.internal.core.profile.TestAssertion;
-import org.eclipse.wst.wsi.internal.core.profile.validator.BaseValidator;
-import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext;
-import org.eclipse.wst.wsi.internal.core.profile.validator.EnvelopeValidator;
-import org.eclipse.wst.wsi.internal.core.report.AssertionResult;
-import org.eclipse.wst.wsi.internal.core.report.Entry;
-import org.eclipse.wst.wsi.internal.core.report.FailureDetail;
-import org.eclipse.wst.wsi.internal.core.report.PrereqFailedList;
-import org.eclipse.wst.wsi.internal.core.report.ReportArtifact;
-import org.eclipse.wst.wsi.internal.core.report.Reporter;
-import org.eclipse.wst.wsi.internal.core.report.impl.PrereqFailedListImpl;
-import org.eclipse.wst.wsi.internal.core.util.EntryType;
-import org.eclipse.wst.wsi.internal.core.xml.XMLDocumentCacheUser;
-import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation;
-
-/**
- * The WSDL validator will verify that the WSDL and associated XML schema definitions
- * are in conformance with the profile.
- *
- * @version 1.0.1
- * @author Peter Brittenham (peterbr@us.ibm.com)
- * @author Graham Turrell (gturrell@uk.ibm.com)
- */
-public abstract class BaseValidatorImpl
- extends XMLDocumentCacheUser
- implements BaseValidator
-{
-
- /**
- * A hashtable that maps assertion results to their priorities, 0 is lowest
- */
- private static final Hashtable resultPriority = new Hashtable(6);
- static {
- resultPriority.put(AssertionResult.RESULT_PASSED, new Integer(0));
- resultPriority.put(AssertionResult.RESULT_NOT_APPLICABLE, new Integer(1));
- resultPriority.put(AssertionResult.RESULT_MISSING_INPUT, new Integer(2));
- resultPriority.put(AssertionResult.RESULT_WARNING, new Integer(3));
- resultPriority.put(AssertionResult.RESULT_PREREQ_FAILED, new Integer(4));
- resultPriority.put(AssertionResult.RESULT_FAILED, new Integer(5));
- }
-
- /**
- * The highest priority value being passed when processing pre-requisites
- */
- private static final int MAX_VALID_PRIORITY = 1;
-
- /**
- * Analyzer context.
- */
- public AnalyzerContext analyzerContext;
-
- /**
- * Profile artifact.
- */
- protected ProfileArtifact profileArtifact;
-
- /**
- * Reporter.
- */
- protected Reporter reporter;
-
- /**
- * Entry.
- */
- // protected Entry entry;
-
- /**
- * Report artifact.
- */
- protected ReportArtifact reportArtifact;
-
- /**
- * Verbose option.
- */
- public boolean verboseOption = false;
-
- /**
- * Test assertion processed count.
- */
- protected int assertionCount = 0;
-
- /**
- * Constructor.
- */
- public BaseValidatorImpl()
- {
- }
-
- /**
- * Initiailize validation test procedure.
- * @param analyzerContext the analyzerContext.
- * @param profileArtifact the profile artifiact.
- * @param reportArtifact the report artifact.
- * @param reporter a Reporter object.
- * @throws WSIException if validator could not be initialized.
- */
- public void init(
- AnalyzerContext analyzerContext,
- ProfileArtifact profileArtifact,
- ReportArtifact reportArtifact,
- Reporter reporter)
- throws WSIException
- {
- // Save input references
- this.analyzerContext = analyzerContext;
- this.profileArtifact = profileArtifact;
- this.reportArtifact = reportArtifact;
- this.reporter = reporter;
-
- // Get verbose option
- verboseOption =
- reporter
- .getReport()
- .getReportContext()
- .getAnalyzer()
- .getAnalyzerConfig()
- .getVerboseOption();
- }
-
- /**
- * Process all of the test assertions for one entry.
- * @param classPrefix a class prefix.
- * @param entryContext an entry context.
- * @throws WSIException if serious problems occur while processing
- * all of the test assertions for an entry.
- */
- protected void processAssertions(
- String classPrefix,
- EntryContext entryContext)
- throws WSIException
- {
- long startTime = 0;
-
- HashMap processList = new HashMap();
- TestAssertion testAssertion = null;
- AssertionProcess assertionProcess;
- AssertionResult assertionResult;
-
- TreeMap preReqResults;
- PrereqFailedList prereqFailedList;
- String preReqId;
-
- Class[] paramTypes = new Class[1];
- // If this is an instance of MessageValidator or EnvelopeValidator
- // then use BaseMessageValidator as a param type of assertions constructor
- paramTypes[0] = this instanceof BaseMessageValidator ?
- BaseMessageValidator.class : this.getClass();
-
- Object[] params = new Object[1];
- params[0] = this;
-
- // Get entry from context
- Entry entry = entryContext.getEntry();
-
- // Add entry to artifact
- this.reportArtifact.addEntry(entry);
-
- // Add entry to report
- if (this instanceof EnvelopeValidator)
- this.reporter.setCurrentEnvelopeEntry(entry);
- else this.reporter.setCurrentEntry(entry);
-
- try
- {
- // Go through the list of test assertions for the artifact
- Iterator iterator = profileArtifact.getTestAssertionList().iterator();
- while (iterator.hasNext())
- {
- // Get next test assertion
- testAssertion = (TestAssertion) iterator.next();
-
- // Reset variables
- assertionResult = null;
-
- // If the test assertion is enabled, then continue
- // if ((testAssertion.isEnabled()) &&
- // testAssertion.getEntryTypeName().equals(targetContext.getEntry().getEntryType().getTypeName())) {
- if (testAssertion.isEnabled()
- && isPrimaryEntryTypeMatch(testAssertion, entryContext))
- {
- try
- {
- // Add 1 to assertion processed count
- assertionCount++;
-
- // If the assertion process hasn't been created yet, then create it
- if ((assertionProcess =
- (AssertionProcess) processList.get(testAssertion.getId()))
- == null)
- {
-
- // Create a new assertion process
- Class assertionClass =
- Class.forName(classPrefix + testAssertion.getId());
-
- assertionProcess =
- (AssertionProcess) assertionClass.getConstructor(
- paramTypes).newInstance(
- params);
-
- // Add it to the list
- processList.put(testAssertion.getId(), assertionProcess);
- }
-
- // Check whether entry is null
- if (entry.getEntryDetail() == null)
- {
- assertionResult =
- createAssertionResult(
- testAssertion,
- AssertionResult.RESULT_MISSING_INPUT,
- (String) null);
- }
-
- // Check to see if the test assertion should be run
- //if (isNotApplicable(testAssertion, entryContext)) {
- else if (isNotApplicable(testAssertion))
- {
- assertionResult =
- createAssertionResult(
- testAssertion,
- AssertionResult.RESULT_NOT_APPLICABLE,
- (String) null);
- }
- else
- {
- // Processing all the assertion pre-requisites
-
- preReqResults = null;
- prereqFailedList = null;
- // Get list of pre-reqs for specified assertion
- Iterator i = testAssertion.getPrereqIdList().iterator();
- while (i.hasNext())
- {
- if (preReqResults == null)
- preReqResults = new TreeMap();
- // Get next id
- preReqId = (String) i.next();
- // Get the prereq result
- AssertionResult preReqResult = reporter.getAssertionResult(preReqId);
-
- // Adding a result priority value to preReqResults
- preReqResults.put(
- resultPriority.get(preReqResult.getResult()),
- preReqResult.getResult());
-
- // If the prereq failed, then add it to the list
- if (((Integer)resultPriority.get(preReqResult.getResult())).intValue()
- > MAX_VALID_PRIORITY)
- {
- // Adding failed prereq ID to the list
- if (prereqFailedList == null)
- prereqFailedList = new PrereqFailedListImpl();
- prereqFailedList.addTestAssertionID(preReqId);
- }
- }
-
- if (prereqFailedList != null) {
- // Getting the highest pre-requisites' result
- Integer maxRes = (Integer)preReqResults.lastKey();
- String resString = (String)preReqResults.get(maxRes);
- if (resString.equals(AssertionResult.RESULT_FAILED)
- ||resString.equals(AssertionResult.RESULT_WARNING)) {
- resString = AssertionResult.RESULT_PREREQ_FAILED;
- }
- // Create assertion result based on pre-requisites which are not passed
- assertionResult = createAssertionResult(testAssertion, resString, prereqFailedList);
- }
-
- // Pre-requisites are passed, validate current assertion
- else {
-
- // Reset test assertion
- assertionProcess.reset();
-
- // VERBOSE
- if (verboseOption)
- {
- System.err.println(
- " Processing "
- + testAssertion.getId()
- + " for entry reference ID ["
- + entry.getReferenceID()
- + "] ...");
- startTime = System.currentTimeMillis();
- }
-
- // Validate the target
- assertionResult =
- assertionProcess.validate(testAssertion, entryContext);
-
- // VERBOSE
- if (verboseOption)
- {
- System.err.println(
- " Elapsed time: "
- + (System.currentTimeMillis() - startTime)
- + "ms");
- }
- }
- }
-
- // Add result to the report
- reporter.addAssertionResult(assertionResult);
- }
-
- catch (ClassNotFoundException cnfe)
- {
- // DEBUG:
- if (testAssertion != null)
- {
- reporter
- .getReport()
- .getReportContext()
- .getAnalyzer()
- .printMessage(
- "WARNING: "
- + testAssertion.getId()
- + " is not supported currently.");
- }
- }
- }
- }
- }
-
- catch (Exception e)
- {
- System.err.println("EXECEPTION: " + e.getMessage());
- if (verboseOption)
- e.printStackTrace();
-
- if (e instanceof WSIException)
- throw (WSIException) e;
- else
- throw new WSIException(e.getMessage(), e);
- }
-
- finally
- {
- // Indicate that we are done with this assertion target
- this.reporter.endCurrentEntry();
- }
- }
-
- /**
- * Determine if the test assertion should be processed for the current entry.
- * @param testAssertion a test assertion.
- * @param entryContext the entry context.
- * @return true if the test assertion should be processed for the current entry.
- */
- protected abstract boolean isPrimaryEntryTypeMatch(
- TestAssertion testAssertion,
- EntryContext entryContext);
-
- /**
- * Determine if the test assertion should be processed for the current entry.
- * @param testAssertion a test assertion.
- * @param entry an Entry object
- * @return true if the test assertion should be processed for the current entry.
- */
- protected boolean isPrimaryEntryTypeMatch(
- TestAssertion testAssertion,
- Entry entry)
- {
- boolean match = false;
-
- // If the test assertion entry type matches the target context entry type, then contine
- if (testAssertion
- .getEntryTypeName()
- .equals(entry.getEntryType().getTypeName()))
- {
- match = true;
- }
-
- return match;
- }
-
- /**
- * Determine if the test assertion is not applicable.
- * @param testAssertion a test assertion.
- * @return true if the test assertion is not applicable.
- */
- protected abstract boolean isNotApplicable(TestAssertion testAssertion);
-
- /* (non-Javadoc)
- * @see org.wsi.test.profile.validator.BaseValidator#cleanup()
- */
- public void cleanup() throws WSIException
- {
- // If no assertions were processed, then set all missingInput
- if (assertionCount == 0)
- setAllMissingInput();
- }
-
- /**
- * Create assertion result.
- * @param testAssertion a test assertion.
- * @param result a String object.
- * @param failureDetail a FailureDetail object.
- * @return newly created test result.
- */
- public AssertionResult createAssertionResult(
- TestAssertion testAssertion,
- String result,
- FailureDetail failureDetail)
- {
- Vector failureDetailList = null;
-
- // Create failure detail list
- if (failureDetail != null)
- {
- failureDetailList = new Vector();
- failureDetailList.add(failureDetail);
- }
-
- return createAssertionResult(testAssertion, result, failureDetailList);
- }
-
- /**
- * Create assertion result.
- * @param testAssertion a test assertion.
- * @param result a String object.
- * @param failureDetailMessage a failure detail message.
- * @return newly created test result.
- */
- public AssertionResult createAssertionResult(
- TestAssertion testAssertion,
- String result,
- String failureDetailMessage)
- {
- return createAssertionResult(
- testAssertion,
- result,
- failureDetailMessage,
- null);
- }
-
- /**
- * Create assertion result.
- * @param testAssertion a test assertion.
- * @param result a String object.
- * @param failureDetailMessage a failure detail message.
- * @param elementLocation element location.
- * @return newly created test result.
- */
- public AssertionResult createAssertionResult(
- TestAssertion testAssertion,
- String result,
- String failureDetailMessage,
- ElementLocation elementLocation)
- {
- // Create failure detail list
- Vector failureDetailList = null;
- if (failureDetailMessage != null)
- {
- failureDetailList = new Vector();
- FailureDetail failureDetail = reporter.createFailureDetail();
- failureDetail.setFailureMessage(failureDetailMessage);
- failureDetail.setElementLocation(elementLocation);
- failureDetailList.add(failureDetail);
- }
-
- return createAssertionResult(testAssertion, result, failureDetailList);
- }
-
- /**
- * Create assertion result.
- * @param testAssertion a test assertion.
- * @param result a String object.
- * @param failureDetailList a failure detail list.
- * @return newly created test result.
- */
- public AssertionResult createAssertionResult(
- TestAssertion testAssertion,
- String result,
- Vector failureDetailList)
- {
- // Create assertion result
- AssertionResult assertionResult = reporter.createAssertionResult();
-
- // Set values in assertion result
- assertionResult.setAssertion(testAssertion);
- assertionResult.setResult(result);
- assertionResult.setEntry(reporter.getReport().getCurrentEntry());
-
- // Set failure detail list
- assertionResult.setFailureDetailList(failureDetailList);
-
- return assertionResult;
- }
-
- /**
- * Create assertion result.
- * @param testAssertion a test assertion.
- * @param result a String object.
- * @param prereqFailedList a list failed pre-requisite assertions.
- * @return newly created test result.
- */
- public AssertionResult createAssertionResult(
- TestAssertion testAssertion,
- String result,
- PrereqFailedList prereqFailedList)
- {
- // Create assertion result
- AssertionResult assertionResult = reporter.createAssertionResult();
-
- // Set values in assertion result
- assertionResult.setAssertion(testAssertion);
- assertionResult.setResult(result);
- assertionResult.setEntry(reporter.getReport().getCurrentEntry());
- assertionResult.setPrereqFailedList(prereqFailedList);
-
- return assertionResult;
- }
-
- /**
- * Add assertion result to report.
- * @param assertionId assertion id.
- * @param result assertion result.
- * @throws WSIException if the assertion result cannot be added to the report.
- */
- protected void addAssertionResult(String assertionId, String result)
- throws WSIException
- {
- // Create test assertion result
- AssertionResult assertionResult = reporter.createAssertionResult();
-
- // Set assertion, result and target
- assertionResult.setAssertion(profileArtifact.getTestAssertion(assertionId));
- assertionResult.setResult(result);
- assertionResult.setEntry(reporter.getReport().getCurrentEntry());
-
- // Add it to the report
- reporter.addAssertionResult(assertionResult);
- }
-
- /**
- * Add assertion result to report with an error detail message.
- * @param assertionId assertion id.
- * @param result assertion result.
- * @param failureDetailMessage an error detail message.
- * @throws WSIException if the assertion result cannot be added to the report.
- */
- protected void addAssertionResult(
- String assertionId,
- String result,
- String failureDetailMessage)
- throws WSIException
- {
- // Convert message to vector
- Vector failureDetailList = null;
- if (failureDetailMessage != null)
- {
- failureDetailList = new Vector();
- FailureDetail failureDetail = reporter.createFailureDetail();
- failureDetailList.add(failureDetail);
- }
-
- // Add assertion result
- addAssertionResult(assertionId, result, failureDetailList);
- }
-
- /**
- * Add assertion result to report.
- * @param assertionId assertion id.
- * @param result assertion result.
- * @param failureDetailList a list of error detail messages.
- * @throws WSIException if the assertion result cannot be added to the report.
- */
- protected void addAssertionResult(
- String assertionId,
- String result,
- Vector failureDetailList)
- throws WSIException
- {
- // Create test assertion result
- AssertionResult assertionResult = reporter.createAssertionResult();
-
- // Set assertion, result and target
- assertionResult.setAssertion(profileArtifact.getTestAssertion(assertionId));
- assertionResult.setResult(result);
- assertionResult.setEntry(reporter.getReport().getCurrentEntry());
- assertionResult.setFailureDetailList(failureDetailList);
-
- // Add it to the report
- reporter.addAssertionResult(assertionResult);
- }
-
- /**
- * Add missingInput assertion result to report.
- * @param testAssertion a test assertion.
- * @throws WSIException if there is any problem adding missingInput
- * assertion result to report.
- */
- protected void addMissingInputResult(TestAssertion testAssertion)
- throws WSIException
- {
- // Create test assertion result
- AssertionResult assertionResult = reporter.createAssertionResult();
-
- // Set assertion, result and target
- assertionResult.setAssertion(testAssertion);
- assertionResult.setResult(AssertionResult.RESULT_MISSING_INPUT);
- assertionResult.setEntry(reporter.getReport().getCurrentEntry());
-
- // Add it to the report
- reporter.addAssertionResult(assertionResult);
- }
-
- /* (non-Javadoc)
- * @see org.wsi.test.profile.validator.BaseValidator#setAllMissingInput()
- */
- public void setAllMissingInput() throws WSIException
- {
- // If profile artifact is set
- if (profileArtifact != null)
- {
- TestAssertion testAssertion;
-
- // Create entry
- Entry entry = this.reporter.getReport().createEntry();
- entry.setArtifactName(this.reportArtifact.getType().getTypeName());
-
- // Add entry to artifact
- this.reportArtifact.addEntry(entry);
-
- // Add entry to report
- this.reporter.setCurrentEntry(entry);
-
- // Go through the list of test assertions for the artifact
- Iterator iterator = profileArtifact.getTestAssertionList().iterator();
- while (iterator.hasNext())
- {
- // Get next test assertion
- testAssertion = (TestAssertion) iterator.next();
-
- // Add missingInput result
- if (testAssertion.isEnabled())
- addMissingInputResult(testAssertion);
- }
-
- // Indicate that we are done with this assertion target
- this.reporter.endCurrentEntry();
- }
- }
-
- /**
- * Set all results for an entry type to missingInput.
- * @param entryType an EntryType object.
- * @throws WSIException if there is any problem while processing.
- */
- protected void setMissingInput(EntryType entryType) throws WSIException
- {
- TestAssertion testAssertion;
-
- // Create entry
- Entry entry = this.reporter.getReport().createEntry();
- entry.setEntryType(entryType);
- entry.setReferenceID("[" + entryType.getTypeName() + "]");
-
- // Add entry to artifact
- this.reportArtifact.addEntry(entry);
-
- // Add entry to report
- this.reporter.setCurrentEntry(entry);
-
- //try {
- // Go through the list of test assertions for the artifact
- Iterator iterator = profileArtifact.getTestAssertionList().iterator();
- while (iterator.hasNext())
- {
- // Get next test assertion
- testAssertion = (TestAssertion) iterator.next();
- if (testAssertion.isEnabled()
- && isPrimaryEntryTypeMatch(testAssertion, entry))
- {
- addMissingInputResult(testAssertion);
- }
- }
-
- // Indicate that we are done with this entry
- this.reporter.endCurrentEntry();
- }
-}

Back to the top