001package com.avaje.ebean; 002 003/** 004 * Created by rob on 16/07/15. 005 */ 006public class WhenBeanReturn<T> { 007 008 Class<T> beanType; 009 010 Object id; 011 012 T bean; 013 014 public WhenBeanReturn(Class<T> beanType) { 015 this(beanType, null); 016 } 017 018 public WhenBeanReturn(Class<T> beanType, Object id) { 019 this.beanType = beanType; 020 this.id = id; 021 } 022 023 public void thenReturn(T bean) { 024 this.bean = bean; 025 } 026 027 T val() { 028 return bean; 029 } 030 031 /** 032 * Return true if matched by beanType and there is no specific id set. 033 */ 034 boolean isMatch(Class<?> beanType) { 035 return beanType.equals(this.beanType) && this.id == null; 036 } 037 038 /** 039 * Return true if matched by beanType and id value. 040 */ 041 boolean isMatch(Class<?> beanType, Object id) { 042 043 return beanType.equals(this.beanType) && idMatch(id); 044 } 045 046 boolean idMatch(Object id) { 047 if (id == null) return this.id == null; 048 return id.equals(this.id); 049 } 050}