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 }