001 package org.crsh.cmdline;
002
003 import org.crsh.cmdline.spi.ValueCompletion;
004
005 /**
006 * A completion result.
007 *
008 * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
009 */
010 public final class CommandCompletion {
011
012 /** . */
013 private final Delimiter delimiter;
014
015 /** . */
016 private final ValueCompletion value;
017
018 public CommandCompletion(Delimiter delimiter, ValueCompletion value) throws NullPointerException {
019 if (delimiter == null) {
020 throw new NullPointerException("No null delimiter accepted");
021 }
022 if (value == null) {
023 throw new NullPointerException("No null value accepted");
024 }
025
026 //
027 this.delimiter = delimiter;
028 this.value = value;
029 }
030
031 public Delimiter getDelimiter() {
032 return delimiter;
033 }
034
035 public ValueCompletion getValue() {
036 return value;
037 }
038
039 @Override
040 public boolean equals(Object obj) {
041 if (obj == this) {
042 return true;
043 }
044 if (obj instanceof CommandCompletion) {
045 CommandCompletion that = (CommandCompletion)obj;
046 return delimiter.equals(that.delimiter) && value.equals(that.value);
047 }
048 return false;
049 }
050
051 @Override
052 public String toString() {
053 return "CommandCompletion[delimiter=" + delimiter + ",value=" + value + "]";
054 }
055 }