@Nullable
  private final PropListItem removeProp(@Nullable PropListItem item, byte propType) {
    if (item == null) {
      return null;
    } else if (item.propType == propType) {
      return item.next;
    } else {
      PropListItem result = removeProp(item.next, propType);
      if (result != item.next) {
        return item.chain(result);
      } else {
        return item;
      }
    }
  }
@ Nullable private final PropListItem removeProp ( @ Nullable PropListItem item , byte propType ) { if ( item == null ) { return null ; } else if ( item . propType == propType ) { return item . next ; } else { PropListItem result = removeProp ( item . next , propType ) ; if ( result != item . next ) { return item . chain ( result ) ; } else { return item ; } } }
@param item The item to inspect
@param propType The property to look for
@return The replacement list if the property was removed, or 'item' otherwise.