You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Command.java 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.uqac.rthoni.java_rmi.common;
  2. import java.io.Serializable;
  3. import java.util.Arrays;
  4. import java.util.Collections;
  5. import java.util.Vector;
  6. import java.util.stream.Collectors;
  7. /**
  8. * Created by robin on 9/15/16.
  9. */
  10. public class Command implements Serializable {
  11. private String _commandName = "";
  12. private Vector<String> _arguments = new Vector<>();
  13. private transient String _result;
  14. public Command(String commandName)
  15. {
  16. setCommandName(commandName);
  17. }
  18. public String toString()
  19. {
  20. StringBuilder stringBuilder = new StringBuilder();
  21. stringBuilder.append(_commandName);
  22. if (!_arguments.isEmpty()) {
  23. stringBuilder.append("#");
  24. stringBuilder.append(_arguments.stream().collect(Collectors.joining("#")));
  25. }
  26. return stringBuilder.toString();
  27. }
  28. public static Command fromString(String str)
  29. {
  30. if (str == null || str.isEmpty()) {
  31. return null;
  32. }
  33. String[] parts = str.split("#");
  34. Command command = new Command(parts[0]);
  35. for (int i = 1; i < parts.length; ++i) {
  36. command.addArgument(parts[i]);
  37. }
  38. return command;
  39. }
  40. public void setCommandName(String commandName)
  41. {
  42. if (commandName == null || commandName.isEmpty()) {
  43. commandName = "Unknown";
  44. }
  45. _commandName = commandName;
  46. }
  47. public String getCommandName()
  48. {
  49. return _commandName;
  50. }
  51. public void addArgument(String argument)
  52. {
  53. if (argument == null) {
  54. argument = "";
  55. }
  56. _arguments.add(argument);
  57. }
  58. public int getArgumentCount()
  59. {
  60. return _arguments.size();
  61. }
  62. public String getArgument(int i, boolean optional)
  63. {
  64. if (i >= _arguments.size() && optional) {
  65. return "";
  66. }
  67. return _arguments.get(i);
  68. }
  69. public Vector<String> getArgumentAsList(int i, boolean optional)
  70. {
  71. if (i >= _arguments.size() && optional) {
  72. return new Vector<>();
  73. }
  74. return new Vector<>(Arrays.asList(_arguments.get(i).split(",")));
  75. }
  76. public void setResult(String result)
  77. {
  78. _result = result;
  79. }
  80. public String getResult()
  81. {
  82. return _result;
  83. }
  84. }