code: protected org.cp.elements.util.search.annotation.Searchable getSearchableMetaData(final Object obj) {
      Assert.notNull(obj, "The object to search cannot be null!");
  
      org.cp.elements.util.search.annotation.Searchable searchableAnnotation = obj.getClass().getAnnotation(
        org.cp.elements.util.search.annotation.Searchable.class);
  
      Assert.notNull(searchableAnnotation, new SearchException(String.format(
        "To search an object of type (%1$s), the class must be annotated with the (%2$s) annotation!",
          obj.getClass().getName(), org.cp.elements.util.search.annotation.Searchable.class.getName())));
  
      return searchableAnnotation;
    }
docs: Gets the @Searchable annotation and meta-data from the specified object.
  
  @param obj the object who's Class type must be annotated with the @Searchable annotation.
  @return the @Searchable annotation meta-data as specified on the object's Class type.
  @throws NullPointerException if the object is null.
  @throws SearchException if the object's Class type is not annotated with @Searchable annotation meta-data.
  @see org.cp.elements.util.search.annotation.Searchable