diff options
Diffstat (limited to 'core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/codegen/javamofvisitoractions/JavaMofParameterVisitorAction.java')
-rw-r--r-- | core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/codegen/javamofvisitoractions/JavaMofParameterVisitorAction.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/codegen/javamofvisitoractions/JavaMofParameterVisitorAction.java b/core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/codegen/javamofvisitoractions/JavaMofParameterVisitorAction.java new file mode 100644 index 000000000..42f541e0b --- /dev/null +++ b/core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/codegen/javamofvisitoractions/JavaMofParameterVisitorAction.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * Copyright (c) 2000, 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 Corporation - initial API and implementation + *******************************************************************************/ + +package org.eclipse.jst.ws.internal.consumption.codegen.javamofvisitoractions; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.jst.ws.internal.consumption.ConsumptionMessages; +import org.eclipse.jst.ws.internal.consumption.codegen.javamofvisitors.JavaMofTypeVisitor; +import org.eclipse.jst.ws.internal.consumption.datamodel.beanmodel.BeanModelElementsFactory; +import org.eclipse.jst.ws.internal.consumption.datamodel.beanmodel.ParameterElement; +import org.eclipse.wst.command.internal.env.core.common.StatusUtils; +import org.eclipse.wst.common.environment.Choice; +import org.eclipse.wst.common.environment.IEnvironment; +import org.eclipse.wst.ws.internal.datamodel.Element; + + + +/** +* Objects of this class represent a JavaMofBeanVisitorAction. +* This VisitorAction will create a parameterElement using the +* JavaClass and the BeanModelElementsFactory +* It will also automatically walk to its type +* */ +public class JavaMofParameterVisitorAction extends JavaMofBeanVisitorAction +{ + + + /* + *Constructor + **/ + public JavaMofParameterVisitorAction(Element parentElement,String project, IEnvironment env) + { + super(parentElement,project, env); + } + + /** + * Create a parameter element from the method + * @param JavaParameter the mof element to be used to create the Parameter + **/ + public IStatus visit (Object ijavaParameter) + { + IStatus status = Status.OK_STATUS; + Choice OKChoice = new Choice('O',ConsumptionMessages.LABEL_OK, ConsumptionMessages.DESCRIPTION_OK); + Choice CancelChoice = new Choice('C', ConsumptionMessages.LABEL_CANCEL, ConsumptionMessages.DESCRIPTION_CANCEL); + + ParameterElement parameterElement = (ParameterElement)BeanModelElementsFactory.getBeanModelElement(ijavaParameter,fParentElement); + JavaMofTypeVisitorAction typeVisitorAction = new JavaMofTypeVisitorAction(parameterElement,clientProject, env_); + //typeVisitorAction.setStatusMonitor(getStatusMonitor()); + typeVisitorAction.setReturnParam(parameterElement.isReturn()); + JavaMofTypeVisitor typeVisitor = new JavaMofTypeVisitor(env_); + typeVisitor.setClientProject(getProject()); + status = typeVisitor.run(ijavaParameter,typeVisitorAction); + // + int severity = status.getSeverity(); + if (severity==Status.ERROR) + return status; + + if (severity==Status.WARNING) + { + Choice result = env_.getStatusHandler().report(status, new Choice[]{OKChoice, CancelChoice}); + if (result.getLabel().equals(CancelChoice.getLabel())) + { + //return an error status since the user canceled + return StatusUtils.errorStatus( ConsumptionMessages.MSG_ERROR_SAMPLE_CREATION_CANCELED ); + } + + } + // + return status; + } +} |