SecondaryLevelFilter
Filtro fluido para búsquedas de Niveles Secundarios en Shori.
Permite construir consultas dinámicas sobre el recurso Secondary Level utilizando una sintaxis fluida y consistente con el resto del SDK.
Características
- Soporta operadores dinámicos por campo.
- Incluye paginación mediante
PaginationRequest. - Permite avanzar a la siguiente página con
#nextPage(). Clona el estado actual para la siguiente página con#copyForNextPage(). Aplica automáticamente el operadorINcuando el usuario no especifica uno.
Operadores soportados
FilterOperator.EQ // Igual
FilterOperator.NE // Diferente
FilterOperator.GT // Mayor que
FilterOperator.GE // Mayor o igual
FilterOperator.LT // Menor que
FilterOperator.LE // Menor o igual
FilterOperator.IN // Lista de valores
FilterOperator.NOT_IN // No en la lista
FilterOperator.BETWEEN // Rango
FilterOperator.LIKE // Contiene
FilterOperator.LIKE_AFTER // Empieza con
FilterOperator.LIKE_BEFORE // Termina con
FilterOperator.IS_NULL // Es nulo
FilterOperator.IS_NOT_NULL // No es nulo
Ejemplo básico
SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Atención")
.primaryLevelName(FilterOperator.EQ, "Casos")
.active(FilterOperator.EQ, "true")
.pageNumber(0)
.pageSize(20)
.orderBy("name")
.sortDirection("desc")
.build();
SecondaryLevelSearchResponse response = client
.caso()
.secondaryLevel()
.search(filter);
Ejemplo usando operador implícito IN
SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.secondaryLevelId("sec-001", "sec-002", "sec-003")
.primaryLevelId("prim-100")
.build();
Ejemplo de paginación
SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Soporte")
.pageNumber(1)
.pageSize(50)
.orderBy("name")
.sortDirection("desc")
.build();
SecondaryLevelFilter nextPage = filter.copyForNextPage();
Campos
| Campo | Tipo | Restricciones | Descripción |
|---|---|---|---|
secondaryLevelId | String | Opcional | UUID del proceso |
name | String | Opcional | Nombre del proceso |
systemName | String | Opcional | Nombre del sistema |
responsibleId | String | Opcional | UUID del responsable |
active | String | Opcional | Indica si está activo el proceso |
primaryLevelId | String | Opcional | UUID del servicio |
primaryLevelName | String | Opcional | Nombre del servicio |
primaryLevelSystemName | String | Opcional | Nombre del sistema del proceso |
caseTypeCount | String | Opcional | Cantidad de productos |
pagination | PaginationRequest | Opcional | Paginación |
Metodos
builder()
Crea una nueva instancia del filtro.
SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Cliente")
.build();
Retorna: instancia fluida del filtro lista para ser configurada.
secondaryLevelId(FilterOperator operator, String... values)
Aplica el filtro sobre el identificador del secondary level.
filter.secondaryLevelId(FilterOperator.EQ, "sec-001");
Parametros:
operator— operador a utilizar.values— valores a filtrar.
Retorna: la misma instancia del filtro.
secondaryLevelId(String... values)
Aplica el operador IN por defecto sobre el identificador.
filter.secondaryLevelId("sec-001", "sec-002");
Parametros:
values— valores a filtrar.
Retorna: la misma instancia del filtro.
name(FilterOperator operator, String... values)
Aplica el filtro sobre el nombre del secondary level.
filter.name(FilterOperator.LIKE, "Atención");
Parametros:
operator— operador a utilizar.values— valores a filtrar.
Retorna: la misma instancia del filtro.
name(String... values)
Aplica el operador IN por defecto sobre el nombre.
Parametros:
values— valores a filtrar.
Retorna: la misma instancia del filtro.
systemName(FilterOperator operator, String... values)
Aplica el filtro sobre el system name del secondary level.
Parametros:
operator— operador a utilizar.values— valores a filtrar.
Retorna: la misma instancia del filtro.
systemName(String... values)
Aplica el operador IN por defecto sobre el system name.
Parametros:
values— valores a filtrar.
Retorna: la misma instancia del filtro.
responsibleId(FilterOperator operator, String... values)
Aplica el filtro sobre los responsables asociados.
Parametros:
operator— operador a utilizar.values— valores a filtrar.
Retorna: la misma instancia del filtro.
responsibleId(String... values)
Aplica el operador IN por defecto sobre los responsables.
Parametros:
values— valores a filtrar.
Retorna: la misma instancia del filtro.
active(FilterOperator operator, String... values)
Aplica el filtro sobre el estado activo/inactivo del secondary level.
Parametros:
operator— operador a utilizar.values— valores a filtrar.
Retorna: la misma instancia del filtro.
active(String... values)
Aplica el operador IN por defecto sobre el estado activo/inactivo.
Parametros:
values— valores a filtrar.
Retorna: la misma instancia del filtro.
primaryLevelId(FilterOperator operator, String... values)
Aplica el filtro sobre el identificador del primary level padre.
Parametros:
operator— operador a utilizar.values— valores a filtrar.
Retorna: la misma instancia del filtro.
primaryLevelId(String... values)
Aplica el operador IN por defecto sobre el identificador del primary
level padre.
Parametros:
values— valores a filtrar.
Retorna: la misma instancia del filtro.
primaryLevelName(FilterOperator operator, String... values)
Aplica el filtro sobre el nombre del primary level padre.
Parametros:
operator— operador a utilizar.values— valores a filtrar.
Retorna: la misma instancia del filtro.
primaryLevelName(String... values)
Aplica el operador IN por defecto sobre el nombre del primary level
padre.
Parametros:
values— valores a filtrar.
Retorna: la misma instancia del filtro.
primaryLevelSystemName(FilterOperator operator, String... values)
Aplica el filtro sobre el system name del primary level padre.
Parametros:
operator— operador a utilizar.values— valores a filtrar.
Retorna: la misma instancia del filtro.
primaryLevelSystemName(String... values)
Aplica el operador IN por defecto sobre el system name del primary
level padre.
Parametros:
values— valores a filtrar.
Retorna: la misma instancia del filtro.
caseTypeCount(FilterOperator operator, String... values)
Aplica el filtro sobre la cantidad de tipos de caso asociados.
Parametros:
operator— operador a utilizar.values— valores a filtrar.
Retorna: la misma instancia del filtro.
caseTypeCount(String... values)
Aplica el operador IN por defecto sobre la cantidad de tipos de caso
asociados.
Parametros:
values— valores a filtrar.
Retorna: la misma instancia del filtro.
pageNumber(int pageNumber)
Configura el número de página.
Por defecto: 0.
filter.pageNumber(0);
Parametros:
pageNumber— número de página basado en cero.
Retorna: la misma instancia del filtro.
pageSize(int pageSize)
Establece el tamaño de página.
Por defecto: 20.
filter.pageSize(50);
Parametros:
pageSize— cantidad de registros por página
Retorna: la misma instancia del filtro.
orderBy(String orderBy)
Establece el campo por el que se ordenan los resultados.
Por defecto: "name".
Parametros:
orderBy— nombre del campo de ordenamiento
Retorna: la misma instancia del filtro.
sortDirection(SortDirection sortDirection)
Establece la dirección del ordenamiento.
Por defecto: SortDirection#DESC.
Parametros:
sortDirection—SortDirection#ASCoSortDirection#DESC
Retorna: la misma instancia del filtro.
build()
Finaliza la construcción del filtro.
SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Soporte")
.pageSize(50)
.build();
Retorna: el filtro configurado.
nextPage()
Avanza el filtro a la siguiente página manteniendo todos los criterios actuales.
filter.nextPage();
Retorna: la misma instancia, actualizada para la siguiente página.
copyForNextPage()
Crea una copia del filtro apuntando a la siguiente página.
La instancia original permanece intacta, lo que permite conservar los criterios de búsqueda reutilizando el mismo estado base.
SecondaryLevelFilter next = currentFilter.copyForNextPage();
Retorna: una nueva instancia con el mismo criterio de búsqueda y la página incrementada en uno.