/* package whatever; // don't place package name! */
import java.util.* ;
import java.math.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
SomeClass someClass = new SomeClass( ) ;
EntityOne one = new EntityOne( ) ;
MyResult myResult = someClass.getSomething ( one, 1L) ;
System .
out .
println ( myResult.
getAdvice ( ) ) ;
myResult = someClass.getSomething ( null , 1L) ;
System .
out .
println ( myResult.
getAdvice ( ) ) ; }
}
class SomeClass {
//@EJB
SomeEJB someEJB = new SomeEJB( ) ;
public MyResult getSomething
( EntityOne entityOne,
Long someId
) { boolean isOne = false ;
if ( entityOne != null ) {
value = entityOne.getOneValue ( ) ;
date = entityOne.getOneDate ( ) ;
isOne = true ; // i need to know if the values are from 'one' or 'x'
} else {
EntityX entityX = this .someEJB .findInDatabase ( someId) ;
value = entityX.getSomeValue ( ) ;
date = entityX.getDateHour ( ) ;
}
return new MyResult( value, date, isOne) ;
}
}
class EntityOne {
}
public Date getOneDate
( ) { }
}
class MyResult {
private boolean isOne;
this .value = value;
this .date = date;
this .isOne = isOne;
}
String answer
= this .
isOne ? "yes" : "no" ; return "Hi, user! This value and date is from One? " + answer + ". So, be sure about that when you do your stuff." ;
}
}
class SomeEJB {
public EntityX findInDatabase
( Long id
) { return new EntityX( ) ;
}
}
class EntityX {
}
public Date getDateHour
( ) { }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5tYXRoLio7CmltcG9ydCBqYXZhLmxhbmcuKjsKaW1wb3J0IGphdmEuaW8uKjsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU29tZUNsYXNzIHNvbWVDbGFzcyA9IG5ldyBTb21lQ2xhc3MoKTsKCQlFbnRpdHlPbmUgb25lID0gbmV3IEVudGl0eU9uZSgpOwoJCU15UmVzdWx0IG15UmVzdWx0ID0gc29tZUNsYXNzLmdldFNvbWV0aGluZyhvbmUsIDFMKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4obXlSZXN1bHQuZ2V0QWR2aWNlKCkpOwoJCQoJCW15UmVzdWx0ID0gc29tZUNsYXNzLmdldFNvbWV0aGluZyhudWxsLCAxTCk7CgkJU3lzdGVtLm91dC5wcmludGxuKG15UmVzdWx0LmdldEFkdmljZSgpKTsKCX0KfQoKY2xhc3MgU29tZUNsYXNzIHsKCQoJLy9ARUpCCglTb21lRUpCIHNvbWVFSkIgPSBuZXcgU29tZUVKQigpOwoJCglwdWJsaWMgTXlSZXN1bHQgZ2V0U29tZXRoaW5nKEVudGl0eU9uZSBlbnRpdHlPbmUsIExvbmcgc29tZUlkKSB7CgkgICAgQmlnRGVjaW1hbCB2YWx1ZSA9IEJpZ0RlY2ltYWwuWkVSTzsKCSAgICBEYXRlIGRhdGUgPSBudWxsOwoJICAgIGJvb2xlYW4gaXNPbmUgPSBmYWxzZTsKCSAgICBpZiAoZW50aXR5T25lICE9IG51bGwpIHsKCSAgICAgICAgdmFsdWUgPSBlbnRpdHlPbmUuZ2V0T25lVmFsdWUoKTsKCSAgICAgICAgZGF0ZSA9IGVudGl0eU9uZS5nZXRPbmVEYXRlKCk7CgkgICAgICAgIGlzT25lID0gdHJ1ZTsgLy8gaSBuZWVkIHRvIGtub3cgaWYgdGhlIHZhbHVlcyBhcmUgZnJvbSAnb25lJyBvciAneCcKCSAgICB9IGVsc2UgewoJICAgICAgICBFbnRpdHlYIGVudGl0eVggPSB0aGlzLnNvbWVFSkIuZmluZEluRGF0YWJhc2Uoc29tZUlkKTsKCSAgICAgICAgdmFsdWUgPSBlbnRpdHlYLmdldFNvbWVWYWx1ZSgpOwoJICAgICAgICBkYXRlID0gZW50aXR5WC5nZXREYXRlSG91cigpOwoJICAgIH0KCQoJICAgIHJldHVybiBuZXcgTXlSZXN1bHQodmFsdWUsIGRhdGUsIGlzT25lKTsKCX0KCQp9CgpjbGFzcyBFbnRpdHlPbmUgewoJcHVibGljIEJpZ0RlY2ltYWwgZ2V0T25lVmFsdWUoKSB7CgkJcmV0dXJuIG5ldyBCaWdEZWNpbWFsKCIxLjAwIik7Cgl9CgkKCXB1YmxpYyBEYXRlIGdldE9uZURhdGUoKSB7CgkJcmV0dXJuIG5ldyBEYXRlKCk7Cgl9Cn0KCgpjbGFzcyBNeVJlc3VsdCB7Cglwcml2YXRlIEJpZ0RlY2ltYWwgdmFsdWU7Cglwcml2YXRlIERhdGUgZGF0ZTsKCXByaXZhdGUgYm9vbGVhbiBpc09uZTsKCXB1YmxpYyBNeVJlc3VsdChCaWdEZWNpbWFsIHZhbHVlLCBEYXRlIGRhdGEsIGJvb2xlYW4gaXNPbmUpewoJCXRoaXMudmFsdWUgPSB2YWx1ZTsKCQl0aGlzLmRhdGUgPSBkYXRlOwoJCXRoaXMuaXNPbmUgPSBpc09uZTsKCX0KCXB1YmxpYyBTdHJpbmcgZ2V0QWR2aWNlKCkgewoJCVN0cmluZyBhbnN3ZXIgPSB0aGlzLmlzT25lID8gInllcyIgOiAibm8iOwoJCXJldHVybiAiSGksIHVzZXIhIFRoaXMgdmFsdWUgYW5kIGRhdGUgaXMgZnJvbSBPbmU/ICIgKyBhbnN3ZXIgKyAiLiBTbywgYmUgc3VyZSBhYm91dCB0aGF0IHdoZW4geW91IGRvIHlvdXIgc3R1ZmYuIjsKCX0KfQoKY2xhc3MgU29tZUVKQiB7CglwdWJsaWMgRW50aXR5WCBmaW5kSW5EYXRhYmFzZShMb25nIGlkKSB7CgkJcmV0dXJuIG5ldyBFbnRpdHlYKCk7Cgl9Cn0KCmNsYXNzIEVudGl0eVggewoJcHVibGljIEJpZ0RlY2ltYWwgZ2V0U29tZVZhbHVlKCkgewoJCXJldHVybiBuZXcgQmlnRGVjaW1hbCgiMi4wMCIpOwoJfQoJCglwdWJsaWMgRGF0ZSBnZXREYXRlSG91cigpIHsKCQlyZXR1cm4gbmV3IERhdGUoKTsKCX0KfQ==