Class: KeysUtilities

@nginstack/engine/lib/database/KeysUtilities~ KeysUtilities


new KeysUtilities()

Classe que contém um conjunto de funções estáticas de controle no uso de chaves.

Essa API é mantida apenas para compatibilidade com códigos antigos. Ela faz uso de práticas não recomendadas como lista de chaves por meio strings, prefixadas com -1 e a identificação de classes pelo nome.

Methods


<static> getInstance()

Obtém uma instância compartilhada desta classe.

Returns:
Type
KeysUtilities

copyKeys(keys, startPosition, count)

Copia chaves de uma lista de chaves.

Parameters:
Name Type Description
keys String

Lista de chaves separadas por "," ( virgula ).

startPosition Number

Posição inicial de chave. Similar ao índice de um array e é zero indexado.

count Number

Quantidade de chaves para ser copiada.

Returns:

Lista de chaves separadas por ','.

Type
String
Example
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

var chaves = keysUtilities.copyKey( '-1,1235,557,5578', 1, 2 ) // 1235,557

extract(keysForExtract, keys [, separator])

Extrai chaves de uma lista de chaves, retornando a lista sem as chaves.

Parameters:
Name Type Argument Description
keysForExtract Object

Pode ser um Array ou uma String. As chaves que devem ser extraídas.

keys Object

Pode ser um Array ou uma String. A lista de chaves.

separator String <optional>

Indicará como suas chaves estão separadas em ambos os parâmetros forem Strings. Como default, receberá o valor "," (virgula).

Returns:

Retorna a lista de chaves sem as chaves usadas para a extração.

Type
string
Example
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

keysUtilities.extract("1,2,3","1,2,3,4") // retorna 4
keysUtilities.extract("1;2;3","1;2;3;4",';') // retorna 4

getChildrenFromClassesKeys(keys [, userKey])

Pega filhas de classes em uma lista.

Parameters:
Name Type Argument Description
keys String

Lista de chaves de classes separadas por "," ( virgula ).

userKey Number <optional>

Chave do usuário para que seja feito o filtro de visão.

Returns:

Lista de chaves separadas por ','.

Type
String
Example
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

var classes = keysUtilities.getChildrenFromClassesKeys(123456, session.userKey)

getDistinctKeys(keys)

Retorna somente as chaves distintas de uma lista de chaves.

Parameters:
Name Type Description
keys String

Lista de chaves separadas por "," (virgula)

Returns:

Lista de chaves distintas

Type
String
Example
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

// retorna 1,2,3
keysUtilities.getDistinctKeys("1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3")

getIntersectKeys(keys1, keys2)

Pega lista de chaves que são comuns entre duas listas de chaves.

Parameters:
Name Type Description
keys1 String

Lista de chaves 1.

keys2 String

Lista de chaves 2.

Returns:

Lista de chaves separadas por ',' que são comuns entre "keys1" e "keys2". Se não houver chaves comuns, será retornado "-1".

Type
String

getIntersectKeysFromKeyList(keys)

A partir duas ou mais listas de chaves, retorna uma lista de chaves comuns a todas as listas.

Parameters:
Name Type Description
keys Array

Esse parâmetro deve ser um array de um ou mais arrays de chaves

Returns:
Type
Array

getKeysCount(keys)

Retorna a quantidade de chaves da lista.

Parameters:
Name Type Description
keys String

Lista de chaves separadas por "," ( virgula ) ou ponto e vírgula.

Returns:

Quantidade de chaves da lista.

Type
Number
Example
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

// A variável ficará com 4
var qde = keysUtilities.getKeysCount( '-1,1235,557,5578' )

getKeysFromCode(classKey, code [, classesFilter] [, ds])

Pega chaves de um único código ou incompleto ou múltiplo. Se não for passado código trará todos os registros da classe, exceto quando o classKey for a classe Classes.

Parameters:
Name Type Argument Description
classKey Object

Pode ser uma String ou um Number. Nome ou chave da classe onde será pesquisadas as chaves.

code String

Conteúdo do campo CODIGO de uma determinada tabela do banco de dados, tabela esta que contém os dados da classe informada no parâmetro classKey.

classesFilter String <optional>

Lista de chaves de classes filhas de "classKey" nas quais deve ser feito a pesquisa do código.

ds DataSet <optional>

DataSet para pesquisa, é passado para otimização, caso já se tenha o dataset da classe.

See:
  • KeysUtilities#getKeysFromIncompleteCode
  • KeysUtilities#getKeysFromMultipleCode
Returns:

Lista de chaves de acordo com o código informado ( "code" )

Type
String
Examples
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

var chaves = keysUtilities.getKeysFromCode( 'Proventos', 'INSS..;FGTS',
 filtroProventos )
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

var chave = keysUtilities.getKeysFromCode( 'Proventos', 'INSS', filtroProventos )

getKeysFromField(dataSet, fieldName, distinct)

Pega a lista de chaves de um determinado campo de um dataset. Essa função retornará juntamente com a lista de chaves uma chave com o valor -1. Esse comportamento está correto e serve para manter a compatibilidade com vários processos no sistema.

Parameters:
Name Type Description
dataSet DataSet

Dataset para percorrer.

fieldName String

Nome do campo que será pegue as chaves.

distinct Boolean

Se a lista de chaves resultante é de chaves distintas.

Returns:

Lista de chaves separadas por ','.

Type
String

getKeysFromIncompleteCode(classKey, code [, classesFilter] [, ds])

Pesquisa quais as chaves cujo código esteja incompleto, ou seja com ".." no código.

Parameters:
Name Type Argument Description
classKey Object

Pode ser uma String ou um Number. Nome ou chave da classe onde será pesquisadas as chaves.

code String

Conteúdo do campo CODIGO de uma determinada tabela do banco de dados, tabela esta que contém os dados da classe informada no parâmetro classKey. Este código pode ter ".." para pesquisa com código incompleto.

classesFilter String <optional>

Lista com as chaves das classes filhas, que o usuário tem permissão para visualização, da informada no parâmetro "classKey" nas quais deve ser feito a pesquisa do código.

ds DataSet <optional>

DataSet para pesquisa, é passado para otimização, caso já se tenha o dataset da classe.

See:
  • KeysUtilities#getKeysFromMultipleCode
  • KeysUtilities#getKeysFromCode
Returns:

Lista de chaves de acordo com o código informado ( "code" )

Type
String
Examples
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();
var chaves = keysUtilities.getKeysFromIncompleteCode( 'Pessoas', 'José..')

//Retorno: Existindo 8 cadastros no banco classificados como Pessoas cujo
//código iniciem por 'José', a string retornada será como a exemplificada
//abaixo:
//  'chaves' é igual a "-1,813,178447,178458,185558,46766,924,622348,1928"
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

var filtroClientes = connection.getChildren( 'Clientes' )
var chaves = keysUtilities.getKeysFromIncompleteCode( 'Pessoas', 'José..',
 filtroClientes )

//Retorno: Não existindo nenhum cadastro de Pessoas cujo código inicie por
//'José' e que esteja classificado como Clientes, a string retornada será
//como a exemplificada abaixo:
//   'chaves' é igual a "-1"

getKeysFromLocateKeys(classKey, fieldName, keys [, filter])

Pega chaves de registro cujo campo passado como parâmetro tenha pelo menos uma das chaves da lista informada.

Parameters:
Name Type Argument Description
classKey Object

Pode ser uma String ou um Number. Nome ou chave da classe onde será pesquisadas as chaves.

fieldName String

Nome do campo para pesquisa das chaves.

keys String

Lista de chaves separadas por "," ( virgula ) para pesquisa no campo.

filter String <optional>

Lista de chaves de classes filhas de "classKey" nas quais deve ser feito a pesquisa do código que o usuário tem acesso.

Returns:

Lista de chaves.

Type
String

getKeysFromMultipleCode(classKey, code [, filter] [, ds])

Pega chaves de vários códigos separados por ";" ( ponto-e-virgula ). Estes códigos também podem ser incompletos, ou seja, com ".." no código.

Parameters:
Name Type Argument Description
classKey Object

Pode ser uma String ou um Number. Nome ou chave da classe onde será pesquisadas as chaves.

code String

Conteúdo do campo CODIGO de uma determinada tabela do banco de dados, tabela esta que contém os dados da classe informada no parâmetro classKey. Lista de códigos separados por ";" ( ponto-e-virgula ), Estes códigos também podem ter ".." para pesquisa com código incompleto.

filter String <optional>

Lista com as chaves das classes filhas, que o usuário tem permissão para visualização, da informada no parâmetro "classKey" nas quais deve ser feito a pesquisa do código.

ds DataSet <optional>

DataSet para pesquisa, é passado para otimização, caso já se tenha o dataset da classe.

See:
  • KeysUtilities#getKeysFromIncompleteCode
  • KeysUtilities#getKeysFromCode
Returns:

Lista de chaves de acordo com o código informado ( "code" )

Type
String
Example
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

var filtroClientes = connection.getChildren( 'Pessoas' )
var chaves = keysUtilities.getKeysFromMultipleCode( 'Entidades',
 'Maria Eduarda;José..', filtroPessoas )

//Retorno: Existindo cadastro cujo código inicie por 'José' e cadastro
//cujo código seja 'Maria Eduarda' classificado como Pessoas, a string
//retornada será como a exemplificada abaixo:
//   'chaves' é igual a "-1,284757,-1,813,178447,178458,185558,46766,
//       924,622348,1928"

getNoIntersectKeys(keys1, keys2)

Pega lista de chaves que não são comuns entre duas listas de chaves.

Parameters:
Name Type Description
keys1 String

Lista de chaves 1.

keys2 String

Lista de chaves 2.

Returns:

Lista de chaves separadas por ',' (ou um array) que NÃO são comuns entre "keys1" e "keys2".

Type
String

getUnionKeys(keys1, keys2)

Pega lista de chaves que existem nas duas listas, eliminando redundâncias.

Parameters:
Name Type Description
keys1 String

Lista de chaves 1.

keys2 String

Lista de chaves 2.

Returns:

Lista de chaves separadas por ',' que existem em "keys1" ou "keys2".

Type
String

getUrl(classKey, name)

Gera uma url que identifica um conteúdo dentro do Virtual File System.

Parameters:
Name Type Description
classKey Number

Chave da classe onde o conteúdo está localizado.

name String

Nome do conteúdo.

Deprecated:
  • Utilize o método `formatFilePath` da classe `VirtualFileSystem`.
Returns:

Url utilizada para acessar o conteúdo dentro do Virtual File System.

Type
String

hierarchicalClass(startClass, endClass [, level])

Retorna o path separado por "."(ponto) do caminho entre os nomes das classes começando na classe startClass e terminando na endClass dependendo do nível informado como terceiro parâmetros.

Parameters:
Name Type Argument Description
startClass Number

Classe inicial, obrigatoriamente mãe da endClass.

endClass Number

Classe final, obrigatoriamente filha de startClass

level Number <optional>

A quantidade de níveis a serem exibidos. Por default exibirá todos os níveis do range definido entre startClass e endClass.

Returns:

path separado por "."(ponto).

Type
String
Example
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

// Considere que a classe animais tem chave = 5555 e que a classe cachorro
// tem chave = 565656
// Considere também a hierarquia => animais/mamíferos/quadrupedes/cachorro

//Logo, quando usamos a função:
keysUtilities.hierarchicalClass(5555, 565656)
// retorno = animais.mamíferos.quadrupedes.cachorro

//Veja o que acontece quando informamos o nível para 2:
keysUtilities.hierarchicalClass(5555, 565656, 2)
//retorno = animais.mamíferos

keyInKeysList(key, keyList)

Verifica se uma chave pertence a uma lista de chaves.

Parameters:
Name Type Description
key Object

Pode ser String ou Number. Chave que será verificada.

keyList String

Lista que conterá ou não a chave.

Returns:

True se a chave estiver na lista, False se não estiver.

Type
Boolean
Example
var KeysUtilities = require('@nginstack/engine/lib/database/KeysUtilities');
var keysUtilities = new KeysUtilities();

keysUtilities.keyInKeysList(4,"1,2,3,4")