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 }