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.2KB

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