Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/conformance/JAXRPCWebServiceRuleEngine.java')
-rw-r--r--bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/conformance/JAXRPCWebServiceRuleEngine.java278
1 files changed, 0 insertions, 278 deletions
diff --git a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/conformance/JAXRPCWebServiceRuleEngine.java b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/conformance/JAXRPCWebServiceRuleEngine.java
deleted file mode 100644
index 33597f06f..000000000
--- a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/conformance/JAXRPCWebServiceRuleEngine.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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 Corporation - initial API and implementation
- * yyyymmdd bug Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060419 132905 cbrealey@ca.ibm.com - Chris Brealey
- * 20060711 149411 cbrealey@ca.ibm.com - Chris Brealey
- *******************************************************************************/
-package org.eclipse.jst.ws.internal.conformance;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.Stack;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jst.ws.internal.WSPluginMessages;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author cbrealey
- * This engine navigated JDT classes according to a JAX-RPC
- * interpretation. The root class is considered to be a
- * candidate JAX-RPC service class, and any non-standard
- * or non-primitive types used by the methods of the service
- * class are considered to be candidates for JAX-RPC value
- * type classes.
- */
-public class JAXRPCWebServiceRuleEngine implements IJavaWebServiceRuleEngine
-{
- /**
- * Creates a new JAX-RPC analysis engine with the given
- * progress monitor.
- * @param progressMonitor The progress monitor for the
- * engine to use, or null if monitoring is not desired.
- */
- public JAXRPCWebServiceRuleEngine ( IProgressMonitor progressMonitor )
- {
- progressMonitor_ = progressMonitor;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.ws.internal.conformance.IJavaWebServiceRuleEngine#analyze(org.eclipse.core.resources.IProject, org.eclipse.jdt.core.IType, org.eclipse.jst.ws.internal.conformance.JavaWebServiceRuleSet, org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus analyze ( IProject project, IType rootClass, JavaWebServiceRuleSet rules )
- {
- visited_ = new HashSet();
- peanutTrail_ = new Stack();
- resolver_ = new JDTResolver(project,progressMonitor_);
- IStatus status = null;
- rules.init(this);
- try
- {
- analyzeServiceClass(rootClass,rules);
- String inCaseOfFailureMessage = NLS.bind(WSPluginMessages.MSG_JAXRPC11_NOT_COMPLIANT,rootClass.getFullyQualifiedName());
- status = rules.getResults(inCaseOfFailureMessage);
- }
- catch (JavaModelException e)
- {
- status = new Status(IStatus.ERROR,"org.eclipse.jst.ws",0,"Internal Error",e);
- }
- return status;
- }
-
- private void analyzeServiceClass ( IType type, JavaWebServiceRuleSet rules )
- throws JavaModelException
- {
- rules.visitClass(type,peanutTrail_);
- visited_.add(type.getFullyQualifiedName());
- push(type);
- try
- {
- IType[] superClasses = resolver_.getSuperClasses(type);
- IMethod[] methods = resolver_.getPublicMethods(type,superClasses);
- for (int m=0; m<methods.length; m++)
- {
- analyzeMethod(methods[m],rules);
- }
- }
- finally
- {
- pop();
- }
- }
-
- private void analyzeMethod ( IMethod method, JavaWebServiceRuleSet rules )
- throws JavaModelException
- {
- rules.visitMethod(method,peanutTrail_);
- push(method);
- try
- {
- IType returnType = resolver_.getReturnType(method);
- analyzeDataType(returnType,rules);
- IType[] parameterTypes = resolver_.getParameterTypes(method);
- for (int p=0; p<parameterTypes.length; p++)
- {
- analyzeDataType(parameterTypes[p],rules);
- }
- IType[] exceptionTypes = resolver_.getExceptionTypes(method);
- for (int e=0; e<exceptionTypes.length; e++)
- {
- analyzeExceptionType(exceptionTypes[e],rules);
- }
- }
- finally
- {
- pop();
- }
- }
-
- private void analyzeDataType ( IType type, JavaWebServiceRuleSet rules )
- throws JavaModelException
- {
- if (type != null && !resolver_.isStandardType(type.getFullyQualifiedName()) && !visited_.contains(type.getFullyQualifiedName()))
- {
- rules.visitClass(type,peanutTrail_);
- visited_.add(type.getFullyQualifiedName());
- push(type);
- try
- {
- IType[] superClasses = resolver_.getSuperClasses(type);
- IField[] fields = resolver_.getPublicFields(type,superClasses);
- for (int f=0; f<fields.length; f++)
- {
- analyzeField(fields[f],rules);
- }
- IJavaBeanProperty[] properties = resolver_.getPublicProperties(type,superClasses);
- for (int p=0; p<properties.length; p++)
- {
- analyzeProperty(properties[p],rules);
- }
- }
- finally
- {
- pop();
- }
- }
- }
-
- private void analyzeField ( IField field, JavaWebServiceRuleSet rules )
- throws JavaModelException
- {
- if (field != null)
- {
- rules.visitField(field,peanutTrail_);
- push(field);
- try
- {
- //TODO: Get qualified name of the field type
- //and determine if we need to build an IType
- //for it and analyze it.
- IType type = resolver_.getFieldType(field);
- analyzeDataType(type,rules);
- }
- finally
- {
- pop();
- }
- }
- }
-
- private void analyzeProperty ( IJavaBeanProperty property, JavaWebServiceRuleSet rules )
- throws JavaModelException
- {
- if (property != null)
- {
- rules.visitProperty(property,peanutTrail_);
- push(property);
- try
- {
- IType type = resolver_.getPropertyType(property);
- analyzeDataType(type,rules);
- }
- finally
- {
- pop();
- }
- }
- }
-
- private void analyzeExceptionType ( IType type, JavaWebServiceRuleSet rules )
- throws JavaModelException
- {
- if (type != null && !resolver_.isStandardType(type.getFullyQualifiedName()) && !visited_.contains(type.getFullyQualifiedName()))
- {
- rules.visitException(type,peanutTrail_);
- visited_.add(type.getFullyQualifiedName());
- push(type);
- try
- {
- // We trust java.lang.Exception/Throwable as superclasses
- // for service specific exception classes, therefore we do
- // not try to analyze their properties (some of which would
- // otherwise violate JAX-RPC's rules anyways).
- IType[] superClasses = resolver_.getSuperClasses(type,"java.lang.Exception");
- IJavaBeanProperty[] properties = resolver_.getPublicProperties(type,superClasses);
- for (int p=0; p<properties.length; p++)
- {
- analyzeProperty(properties[p],rules);
- }
- }
- finally
- {
- pop();
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.ws.internal.conformance.IJavaWebServiceRuleEngine#getJDTResolver()
- */
- public JDTResolver getJDTResolver ()
- {
- return resolver_;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.ws.internal.conformance.IJavaWebServiceRuleEngine#getProgressMonitor()
- */
- public IProgressMonitor getProgressMonitor ()
- {
- return progressMonitor_;
- }
-
- /*
- * Pushes a peanut onto the peanut trail.
- */
- private void push ( Object peanut )
- {
- peanutTrail_.push(peanut);
- }
-
- /*
- * Pops a peanut off the peanut trail.
- */
- private void pop ()
- {
- peanutTrail_.pop();
- }
-
- /*
- * The JDTResolver used by this analyzer.
- */
- private JDTResolver resolver_;
-
- /*
- * The progress monitor used by this analyzer.
- */
- private IProgressMonitor progressMonitor_;
-
- /*
- * This set keeps track of the fully qualified names of
- * classes we have visited so that we don't visit the same
- * service class, value type or exception class more than once.
- */
- private Set visited_;
-
- /*
- * This stack keeps a trail of JDT objects back to the
- * service class we began with. This can be useful to
- * visitors that need to inspect the JDT elements that
- * enclose the currently visited element.
- */
- private Stack peanutTrail_;
-}

Back to the top