Merge branch 'feature/JAL-3551Pymol' into develop
[jalview.git] / src / jalview / structure / StructureCommand.java
1 package jalview.structure;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class StructureCommand implements StructureCommandI
7 {
8   private String command;
9
10   private List<String> parameters;
11
12   public StructureCommand(String cmd, String... params)
13   {
14     command = cmd;
15     if (params != null)
16     {
17       for (String p : params)
18       {
19         addParameter(p);
20       }
21     }
22   }
23
24   @Override
25   public void addParameter(String param)
26   {
27     if (parameters == null)
28     {
29       parameters = new ArrayList<>();
30     }
31     parameters.add(param);
32   }
33
34   @Override
35   public String getCommand()
36   {
37     return command;
38   }
39
40   @Override
41   public List<String> getParameters()
42   {
43     return parameters;
44   }
45
46   @Override
47   public boolean hasParameters()
48   {
49     return parameters != null && !parameters.isEmpty();
50   }
51
52   @Override
53   public String toString()
54   {
55     if (!hasParameters()) 
56     {
57       return command;
58     }
59     StringBuilder sb = new StringBuilder(32);
60     sb.append(command).append("(");
61     boolean first = true;
62     for (String p : parameters)
63     {
64       if (!first)
65       {
66         sb.append(",");
67       }
68       first = false;
69       sb.append(p);
70     }
71     sb.append(")");
72     return sb.toString();
73   }
74
75 }