Skip navigation links


com.bea.content.paging
Interface IFilterablePagedList<T>

All Superinterfaces
ContentListKeys, IPagedList<T>, Iterable<T>, Serializable
All Known Subinterfaces:
ISortableFilterablePagedList<T>

public interface IFilterablePagedList<T>
extends IPagedList<T>

An IPagedList which can be filtered. This is an application of the com.bea.p13n.pagination.FilterablePagedResult model to the Content PagedList construct.

An overview of PagedList capabilities, including sorting and filtering, is provided in the package documentation at com.bea.content.paging

Filtering is used to restrict a set of IPagedList results to some subset. Supports single-property filtering with a single filter method (begins with, contains, etc) and a single filter string. For example, you can construct a filter such as: 'name' property value begins with 'foo' The set of filterable properties and the set of filter methods can both be identified via queries. Filterable properties and filter methods can either be 'native' or 'non-native'. Native properties and filter methods will perform best.

This interface is intended to be implemented only by Oracle Weblogic Portal. Oracle Systems reserves the right to add abstract methods to this interface without notice. Implementations of this interface by other parties must not be expected to compile without change in future versions of Oracle Weblogic Portal.

Field Summary

 

Fields inherited from interface com.bea.content.paging.ContentListKeys
ALL_ITEMS, BATCH_LOADING_SIZE_KEY, CUSTOM_OBJECT_FILTER, CUSTOM_OBJECT_SORT, FILTER_CRITERIA_KEY, SORT_CRITERIA_KEY

 

Method Summary
 Set<String> getAllFilterableProperties()
          Which properties we can filter on
 Set<FilterMethod> getAllFilterMethods()
          Which FilterMethods we can use (begins with, contains, etc) All implementations must support UNFILTERED, but some may, for example, only be able to support EQUALS and/or BEGINS_WITH.
 Locale getCurrentFilterLocale()
          Returns the current locale used for filtering.
 FilterMethod getCurrentFilterMethod()
          Returns the current filter method (begins with, contains, etc) we are using -- how the results are currently filtered.
 String getCurrentFilterProperty()
          Returns the property (if any) the results are currently filtered on.
 String getCurrentFilterString()
          Returns the current string literal used to filter the result.
 Set<String> getNativeFilterableProperties()
          Behaves the same as getAllFilterableProperties(), except this method returns only high-performing (native) filterable properties.
 Set<FilterMethod> getNativeFilterMethods()
          Behaves the same as getAllFilterMethods(), except this method returns only high-performing (native) filter methods.
 void reFilter(FilterMethod filterMethod, String filterString, String filterProperty, Locale filterLocale)
          Refilter the results.

 

Methods inherited from interface com.bea.content.paging.IPagedList
fullSize, getBatchLoadingSize, isFullyResolved, iterator, nativeSize, setBatchLoadingSize

 

Method Detail

getAllFilterableProperties

Set<String> getAllFilterableProperties()
                                       throws RepositoryRuntimeException
Which properties we can filter on

Note: a special 'custom object filter' property as defined in ContentListKeys may be present in the returned values.

Returns
a set of strings naming filterable properties which can be used with reFilter's filterProperty. May not be null. If there are no filterable properties, then this method should return an empty set.
Throws
RepositoryRuntimeException

getNativeFilterableProperties

Set<String> getNativeFilterableProperties()
                                          throws RepositoryRuntimeException
Behaves the same as getAllFilterableProperties(), except this method returns only high-performing (native) filterable properties.

Note: a special 'custom object filter' property as defined in ContentListKeys may be present in the returned values.

Throws
RepositoryRuntimeException

getAllFilterMethods

Set<FilterMethod> getAllFilterMethods()
                                      throws RepositoryRuntimeException
Which FilterMethods we can use (begins with, contains, etc) All implementations must support UNFILTERED, but some may, for example, only be able to support EQUALS and/or BEGINS_WITH. This method should return the set of supported methods. It must not be null, and needs not include UNFILTERED (but may), as this is implicitly required. Most implementations will probably return something like EnumSet.allOf( FilterMethod.class ).
Throws
RepositoryRuntimeException

getNativeFilterMethods

Set<FilterMethod> getNativeFilterMethods()
                                         throws RepositoryRuntimeException
Behaves the same as getAllFilterMethods(), except this method returns only high-performing (native) filter methods.
Throws
RepositoryRuntimeException

getCurrentFilterProperty

String getCurrentFilterProperty()
                                throws RepositoryRuntimeException
Returns the property (if any) the results are currently filtered on. Generally, must match one of the values returned by getAllFilterableProperties, however it might be null if the filterMethod is UNFILTERED. Some implementations may ignore this property if the results (T) are single-valued (i.e. Strings usually). In this case getFilterableProperties should return an empty array.

Note: this method may return the special 'custom object filter' property as defined in ContentListKeys.

Throws
RepositoryRuntimeException

getCurrentFilterMethod

FilterMethod getCurrentFilterMethod()
                                    throws RepositoryRuntimeException
Returns the current filter method (begins with, contains, etc) we are using -- how the results are currently filtered.
Throws
RepositoryRuntimeException

getCurrentFilterString

String getCurrentFilterString()
                              throws RepositoryRuntimeException
Returns the current string literal used to filter the result. Might be null if the filterMethod is UNFILTERED.
Throws
RepositoryRuntimeException

getCurrentFilterLocale

Locale getCurrentFilterLocale()
                              throws RepositoryRuntimeException
Returns the current locale used for filtering. Null means that Locale is not considered when filtering. Even if set, the implementation might ignore the locale for some properties. In order for locale-based filtering to make sense, the filter property will need different values for various locales.
Throws
RepositoryRuntimeException

reFilter

void reFilter(FilterMethod filterMethod,
              String filterString,
              String filterProperty,
              Locale filterLocale)
              throws UnsupportedOperationException,
                     IllegalArgumentException,
                     RepositoryRuntimeException
Refilter the results. This should result in resetting the IPagedList's current position to "before start", since the results will be quite different. It should also reset the internal state of filterProperty, filterMethod, filterString, and filterLocale to those indicated by the reFilter arguments.
Parameters
filterMethod - the new method to use for filtering. Null is not allowed.
filterString - the string to use for filtering. If filterMethod is UNFILTERED, this is probably ignored, but reFilter should then reissue the query to return a full unfiltered set of results. May not be null or empty, unlesss filterMethod is UNFILTERED.
filterProperty - the property of the result to use for filtering. If filterMethod is UNFILTERED, this property is probably ignored (and reFilter simply resets to the full result set). Must not be null or empty, unless filterMethod is UNFILTERED or the implementation chooses to ignore it. Oherwise this should match one of the names returned by getAllFilterableProperties. This can include the special 'custom object filter' property defined in ContentListKeys.
filterLocale - locale used to filter. Null implies that filtering should not be based on Locale. Might be ignored if the bean or property being filtered does not support locale-based filtering (i.e. the property is an Integer or has no associated localized content).
Throws
UnsupportedOperationException - if filtering can not be performed for the given property or method.
IllegalArgumentException - if filterMethod is null, or if the filterExpression or filterPropery are null or empty string when filterMethod is anything other than UNFILTERED.
RepositoryRuntimeException

Skip navigation links


Copyright © 2010, Oracle. All rights reserved.