Skip to main content
summaryrefslogtreecommitdiffstats
blob: ae939f7e1dad365d312d5fd6599046750e39237d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*******************************************************************************
 * Copyright (c) 2001, 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
 *******************************************************************************/
package org.eclipse.wst.wsdl.ui.internal.commands;

import org.eclipse.wst.wsdl.Definition;
import org.eclipse.wst.wsdl.Message;
import org.eclipse.wst.wsdl.MessageReference;
import org.eclipse.wst.wsdl.Operation;
import org.eclipse.wst.wsdl.WSDLElement;

abstract public class AddMessageReferenceCommand extends WSDLElementCommand
{
  protected String name;
  protected MessageReference messageReference;
  protected Operation operation;
  protected boolean createMessage = false;
  private final String DEFAULT_MESSAGE_NAME = "NewMessage"; //$NON-NLS-1$

  public AddMessageReferenceCommand(Operation operation, String name)
  {
    this.operation = operation;
    this.name = name;
  }
  
  public AddMessageReferenceCommand(Operation operation, String name, boolean createMessage)
  {
    this.operation = operation;
    this.name = name;
    this.createMessage = createMessage;
  }

  protected void createMessage()
  {
    Definition definition = operation.getEnclosingDefinition();
    AddMessageCommand command = 
      new AddMessageCommand(definition,DEFAULT_MESSAGE_NAME,createMessage);      
    command.run();
    messageReference.setEMessage((Message)command.getWSDLElement());
  }
  
  /*
   * Overloaded createMessage(arg) method.  Similar to to createMessage() but takes in a MessageReference.
   * Method used to create a copy of the original Message (contained in the passed in MessageReference).
   */
  protected void createMessage(MessageReference originalMRef, String newMessageRefName) {
    Definition definition = operation.getEnclosingDefinition();
    Message tMessage = originalMRef.getEMessage();
    AddMessageCommand command = 
      new AddMessageCommand(definition, tMessage, newMessageRefName, true);
    command.run();
    messageReference.setEMessage((Message)command.getWSDLElement());
  }
  
  public WSDLElement getWSDLElement()
  {
    return messageReference;
  }
  
  public void setName(String name)
  {
    this.name = name;
  }
}

Back to the top