View Javadoc

1   package cz.cuni.amis.pogamut.sposh.elements;
2   
3   /**
4    * This class specifies call to some primitive (either sense or action). To do that, it requires
5    * <ul>
6    * <li>name of primitive</li>
7    * <li>list of parameters</li>
8    * <ul>
9    */
10  public class PrimitiveCall {
11  
12  	private final String name;
13  	private final Arguments parameters;
14  
15  	/**
16  	 * This is a sensecall without parameters
17  	 * 
18  	 * @param name
19  	 */
20  	protected PrimitiveCall(String name) {
21  		this.name = name;
22  		this.parameters = new Arguments();
23  	}
24  
25      /**
26       * Copy constructor.
27       * @param original Original primitive call from which we take the data.
28       */
29  	protected PrimitiveCall(PrimitiveCall original) {
30  		this.name = original.getName();
31  		this.parameters = new Arguments(original.getParameters());
32  	}
33      
34  	protected PrimitiveCall(String name, Arguments parameters) {
35  		this.name = name;
36  		this.parameters = new Arguments(parameters);
37  	}
38  
39  	public String getName() {
40  		return name;
41  	}
42  
43  	/**
44  	 * @return unmodifiable list of parameters in correct order.
45  	 */
46  	public Arguments getParameters() {
47  		return parameters;
48  	}
49  
50  	@Override
51  	public String toString() {
52  		StringBuilder sb = new StringBuilder(name);
53  		if (!parameters.isEmpty()) {
54  			sb.append('(');
55  			sb.append(parameters.toString());
56  			sb.append(')');
57  		}
58  		return sb.toString();
59  	}
60  }