.NET API Reference for Oracle Identity Connector Framework 11.1.2
E41516-01
Base class to make it easier to implement Search.

Namespace: Org.IdentityConnectors.Framework.Common.Objects.Filters
Assembly: Framework (in Framework.dll) Version: 1.4.0.0 (1.4.0.0)

Syntax

C#
public abstract class AbstractFilterTranslator<T> : FilterTranslator<T>
where T : class

Type Parameters

T
The result type of the translator. Commonly this will be a string, but there are cases where you might need to return a more complex data structure. For example if you are building a SQL query, you will need not *just* the base WHERE clause but a list of tables that need to be joined together.

Remarks

A search filter may contain operators (such as 'contains' or 'in') or may contain logical operators (such as 'AND', 'OR' or 'NOT') that a connector cannot implement using the native API of the target system or application. A connector developer should subclass
 Copy imageCopy
AbstractFilterTranslator
in order to declare which filter operations the connector does support. This allows the
 Copy imageCopy
FilterTranslator
instance to analyze a specified search filter and reduce the filter to its most efficient form. The default (and worst-case) behavior is to return a null expression, which means that the connector should return "everything" (that is, should return all values for every requested attribute) and rely on the common code in the framework to perform filtering. This "fallback" behavior is good (in that it ensures consistency of search behavior across connector implementations) but it is obviously better for performance and scalability if each connector performs as much filtering as the native API of the target can support.

A subclass should override each of the following methods where possible:

  1. CreateAndExpression(T, T)
  2. CreateOrExpression(T, T)
  3. CreateContainsExpression(ContainsFilter, Boolean)
  4. CreateEndsWithExpression(EndsWithFilter, Boolean)
  5. CreateEqualsExpression(EqualsFilter, Boolean)
  6. CreateGreaterThanExpression(GreaterThanFilter, Boolean)
  7. CreateGreaterThanOrEqualExpression(GreaterThanOrEqualFilter, Boolean)
  8. CreateStartsWithExpression(StartsWithFilter, Boolean)

Translation can then be performed using Translate(Filter).

Inheritance Hierarchy

System..::..Object
  Org.IdentityConnectors.Framework.Common.Objects.Filters..::..AbstractFilterTranslator<(Of <(<'T>)>)>

See Also