1997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu 2997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yupackage org.ksoap2.serialization; 3997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu 4997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu/** 5997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * A class that implements only {@link NullSoapObject#toString()}. 6997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * This is useful in the case where you have a {@link SoapObject} representing an optional 7997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * property in your SOAP response.<br/><br/> 8997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * 9997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * Example: 10997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * <pre> 11997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * <code> 12997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * private String getAge(SoapObject person) { 13997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * return person.getPropertySafely("age").toString(); 14997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * } 15997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * </code> 16997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * </pre> 17997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * <ul> 18997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * <li> When the person object has an {@code age} property, the {@code age} will be returned. </li> 19997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * <li> 20997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * When the person object does not have an {@code age} property, 21997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * {@link SoapObject#getPropertySafely(String)} 22997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * returns a NullSoapObject, which in turn returns {@code null} for {@link NullSoapObject#toString()}. 23997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * </li> 24997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * </ul> 25997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * Now it is safe to always try and get the {@code age} property (assuming your downstream 26997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * code can handle {@code age}). 27997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu */ 28997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu 29997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yupublic class NullSoapObject { 30997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu /** 31997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * Overridden specifically to always return null. 32997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * See the example in this class's description as to how this can be useful. 33997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * 34997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * @return {@code null} 35997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * @see SoapObject#getPropertySafely(String) 36997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu */ 37997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu public String toString() { 38997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu return null; 39997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu } 40997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu} 41