001package org.clafer.collection; 002 003import org.clafer.common.Check; 004 005/** 006 * @param <T> the type of maybe 007 * @author jimmy 008 */ 009public class Just<T> extends Maybe<T> { 010 011 private final T t; 012 013 Just(T t) { 014 this.t = Check.notNull(t); 015 } 016 017 @Override 018 public boolean isNothing() { 019 return false; 020 } 021 022 @Override 023 public boolean isJust() { 024 return true; 025 } 026 027 @Override 028 public T fromMaybe(T t) { 029 return this.t; 030 } 031 032 public T get() { 033 return t; 034 } 035 036 @Override 037 public boolean equals(Object obj) { 038 if (obj instanceof Just<?>) { 039 Just<?> other = (Just<?>) obj; 040 return t.equals(other.t); 041 } 042 return false; 043 } 044 045 @Override 046 public int hashCode() { 047 return 934 ^ t.hashCode(); 048 } 049 050 @Override 051 public String toString() { 052 return "Just " + t; 053 } 054}