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