code: @Override
    public <E> E search(final Object searchableAnnotatedObject) {
      try {
        return search(this.<E>asList(searchableAnnotatedObject, configureMatcher(getSearchableMetaData(
          searchableAnnotatedObject))));
      }
      finally {
        MatcherHolder.unset();
      }
    }
docs: Searches the @Searchable annotated object in order to find the element or elements matching the criteria
  defined by the Matcher.
  
  @param <E> the Class type of elements to search in the @Searchable annotated object.
  @param searchableAnnotatedObject the @Searchable annotated object to search.
  @return the element in the @Searchable annotated object matching the search criteria defined by the Matcher.
  @see #getSearchableMetaData(Object)
  @see #configureMatcher(org.cp.elements.util.search.annotation.Searchable)
  @see #asList(Object, org.cp.elements.util.search.annotation.Searchable)
  @see #search(java.util.Collection)
  @see org.cp.elements.util.search.annotation.Searchable#listMethod()