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.
applyDefaultInOperators()
Aplica automáticamente el operador IN a cada campo que no tenga
operador explícito.
Este método se invoca antes de ejecutar la búsqueda para asegurar que los valores simples sean interpretados como colecciones de filtro.
SecondaryLevelFilter.builder()
.name("Atención")
.primaryLevelName("Casos")
.build();
El resultado interno equivalente será:
name = "in:Atención"
primaryLevelName = "in:Casos"
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.