Class Index | File Index

Classes


Class bdo.orm.EntitySet


Defined in: entityset.js.

Class Summary
Constructor Attributes Constructor Name and Description
 
bdo.orm.EntitySet(baseClass, dataSet, opt_options)
Classe que permite a manipulação de um conjunto de bdo.orm.Entity dentro uma transação.
Field Summary
Field Attributes Field Name and Description
 
Indica se os dados serão persistidos automaticamente no banco de dados quando forem realizadas alterações nas entidades que fazem parte desta coleção.
 
Classe mãe de todas as entidades contidas nesta conjunto de entidades.
Method Summary
Method Attributes Method Name and Description
 
bindDataSet(dataSet)
Informa um novo DataSet onde os dados da entidade serão persistidos.
 
findByKey(key)
Pesquisa a entidade informada pela chave e retorna a instância dela caso a encontre ou null caso contrário.
 
forEach(callback, opt_context)
Itera na coleção de entidades fornecendo uma entidade que é alterada a cada iteração.
<static>  
bdo.orm.EntitySet.fromClass(classKey, opt_options)
Obtém uma instância de bdo.orm.EntitySet que permite consultar ou alterar os registros da classe de dados informada.
<static>  
bdo.orm.EntitySet.fromDataSet(baseClass, dataSet, opt_options)
Obtém uma instância de bdo.orm.EntitySet que permite consultar ou alterar os registros do DataSet informado respeitando as regras de negócio definidas nos arquivos de x-model e as permissões do usuário.
 
insert(data)
Cria uma nova entidade com valores de propriedades informados.
 
merge(data)
Insere e atualiza as entidades com os dados informados.
 
newEntity(data)
Cria uma nova entidade com a classe informada.
<static>  
bdo.orm.EntitySet.persist(entitySets)
Persiste as alterações realizadas em um ou várias instâncias de EntitySet em uma única transação do banco de dados.
 
Persiste as modificações realizadas nas entidades desta coleção.
 
remove(entity)
Remove a entidade informada.
 
Remove todas as entidades deste coleção.
 
some(callback, opt_context)
Itera na coleção de entidades fornecendo uma entidade que pode ser alterada a cada iteração até que o resultado do callback fornecido seja verdadeira.
 
Cria uma representação JSON destas entidades.
 
Exporta a definição de uma coleção de entidades da classe informada no construtor, no formato JSON Schema.
 
update(key, data)
Atualiza a entidade identificada por key com valores das propriedades informadas.
Class Detail
bdo.orm.EntitySet(baseClass, dataSet, opt_options)
Classe que permite a manipulação de um conjunto de bdo.orm.Entity dentro uma transação.
Parameters:
{number} baseClass
Classe mãe de todas as entidades contidas nesta conjunto de entidades.
{DataSet} dataSet
DataSet que será utilizado para persistir os dados das entidades.
{(bdo.orm.EntitySetOptions|Object)=} opt_options
Opções da entidade a ser criada.
See:
bdo.orm.Entity
Field Detail
autoPersist
Indica se os dados serão persistidos automaticamente no banco de dados quando forem realizadas alterações nas entidades que fazem parte desta coleção.
See:
#persist

baseClass
Classe mãe de todas as entidades contidas nesta conjunto de entidades.
Method Detail
bindDataSet(dataSet)
Informa um novo DataSet onde os dados da entidade serão persistidos. O DataSet informado deve ter a mesma estrutura do dataSet utilizado para construir a instância, ou seja, deve ter os mesmos campos, com os mesmos tipos, na mesma ordem.
var entitySet = bdo.orm.EntitySet.fromClass(ngin.keys.Classes.GROUPS);
var ds = classes.getCachedDataSet(ngin.keys.Classes.GROUPS);
entitySet.bindDataSet(ds);
Parameters:
{DataSet} dataSet
DataSet que será utilizado para gravar os dados da entidade.

{bdo.orm.Entity} findByKey(key)
Pesquisa a entidade informada pela chave e retorna a instância dela caso a encontre ou null caso contrário.
Parameters:
{number} key
Identificado da instância.
Returns:
{bdo.orm.Entity} Instância da entidade ou null, caso não haja uma com a chave informada.

forEach(callback, opt_context)
Itera na coleção de entidades fornecendo uma entidade que é alterada a cada iteração. Deve-se ter o cuidado para não utilizar a entidade fornecida ao iterador fora dele. Para coletar entidades dentro do iterador utilize o método bdo.orm.Entity#clone()
var chosenEntities = [];
entitySet.forEach(function (entity) {
  if (entity.get('iClass') === ngin.keys.Classes.GROUPS) {
    // errado
    chosenEntities.push(entity);

    // correto
    chosenEntities.push(entity.clone());
  }
});
Parameters:
{function (bdo.orm.Entity)} callback
Função parametrizada.
{*=} opt_context
Contexto do callback, a palavra reservada "this" é equivalente ao objeto que deseja-se contextualizar. Se nenhum contexto for fornecido, a própria instância de bdo.orm.EntitySet será utilizada.

<static> {bdo.orm.EntitySet} bdo.orm.EntitySet.fromClass(classKey, opt_options)
Obtém uma instância de bdo.orm.EntitySet que permite consultar ou alterar os registros da classe de dados informada.
. Esta função somente poder ser utilizada com classes de dados que façam parte do cache local do Engine, como os cadastros do sistema.
Por padrão, a EntitySet criada terá a propriedade bdo.orm.EntitySet#autoPersist ativa.
 var users = bdo.orm.EntitySet.fromKey(ngin.keys.Classes.Users);
 users.toJSON();
Parameters:
{number} classKey
Classe mãe das entidades que farão parte da coleção retornada.
{{userKey: number|fields: Array|function(Field):boolean}|Object=} opt_options
Opções disponíveis:
userKey: usuário que será utilizado para validar as permissões. Mais detalhes em bdo.orm.EntitySetOptions#userKey; e
fields: campos da definição da classe que devem ser manipulados por essa entidade. Mais detalhes em bdo.orm.EntitySetOptions#fields.
modelDef: definição do modelo de dados que deve ser utilizada. Por padrão, a definição do modelo de dados utilizada é a da classe da entidade. No entanto, em alguns cenários de uso é necessário retirar ou complementar comportamentos do modelo. O uso desta opção não é recomendada, pois ela desabilita a capacidade da entidade ajustar dinamicamente as regras de modelo quando a classe é alterada. Mais detalhes em bdo.orm.EntitySetOptions#modelDef.
Throws:
{bdo.orm.EntityError}
Será gerado um erro caso a classe informada não exista ou se o usuário corrente não tiver permissão de visão para essa classe.
Returns:
{bdo.orm.EntitySet} Conjunto com todas as entidades da classe informada.

<static> {bdo.orm.EntitySet} bdo.orm.EntitySet.fromDataSet(baseClass, dataSet, opt_options)
Obtém uma instância de bdo.orm.EntitySet que permite consultar ou alterar os registros do DataSet informado respeitando as regras de negócio definidas nos arquivos de x-model e as permissões do usuário.
A EntitySet criada terá a propriedade bdo.orm.EntitySet#autoPersist configurada com o mesmo valor da propriedade DataSet#automaticApplyUpdates do DataSet informado.
 var itemsPedido = bdo.orm.EntitySet.fromDataSet(-2008879000, operacao.pedido);
 itemsPedido.toJSON();
Parameters:
{number} baseClass
Classe mãe das entidades que farão parte da coleção retornada.
{DataSet} dataSet
DataSet que contém os registros que representam as entidades no banco de dados.
{({userKey: number|fields: Array|function(Field):boolean}|Object)=} opt_options
Opções disponíveis:
userKey: usuário que será utilizado para validar as permissões. Mais detalhes em bdo.orm.EntitySetOptions#userKey; e
fields: campos da definição da classe que devem ser manipulados por essa entidade. Mais detalhes em bdo.orm.EntitySetOptions#fields.
modelDef: definição do modelo de dados que deve ser utilizada. Por padrão, a definição do modelo de dados utilizada é a da classe da entidade. No entanto, em alguns cenários de uso é necessário retirar ou complementar comportamentos do modelo. O uso desta opção não é recomendada, pois ela desabilita a capacidade da entidade ajustar dinamicamente as regras de modelo quando a classe é alterada. Mais detalhes em bdo.orm.EntitySetOptions#modelDef.
Returns:
{bdo.orm.EntitySet} Conjunto de entidades contidas no dataSet informado.

{number} insert(data)
Cria uma nova entidade com valores de propriedades informados. Caso a classe não seja informada em data, será utilizado o valor da propriedade #baseClass.
Este método possui um desempenho superior ao de criar uma entidade pelo #newEntity e atualizá-la com o método bdo.orm.Entity#assign. Prefira o seu uso quando não for necessário ter acesso à instância da entidade criada.
Parameters:
{Object} data
Valores das propriedades que devem ser atribuídos a nova entidade.
Returns:
{number} Chave que identifica unicamente a entidade criada.

{{inserted: Array|updated: Array}} merge(data)
Insere e atualiza as entidades com os dados informados. Caso os dados informados tenham informado o campo chave, será atualizada a entidade existente com essa chave, ou será gerado um erro caso não exista uma. Caso não seja informada uma chave, será criada uma entidade com os dados informados.
Parameters:
{Object|Array} data
Dados de uma entidade ou um array com os dados das entidades a serem atualizados.
Throws:
{bdo.orm.EntityError}
Será gerado um erro caso a chave informada não exista ou se o usuário corrente não tiver permissão de visão para a classe desta entidade.
Returns:
{{inserted: Array|updated: Array}} Retorna um objeto com as propriedades inserted e updated. Essas propriedades serão um array das chaves das entidades inseridas ou modificadas por este método.

{bdo.orm.Entity} newEntity(data)
Cria uma nova entidade com a classe informada. Este método deve ser utilizado apenas quando deseja-se obter a instância da entidade. Por questões de desempenho sempre prefira usar #insert para criar uma entidade.
Parameters:
{number|Object} data
Classe da nova entidade ou um objeto contendo os valores das propriedades da entidade a ser criada. Caso seja informado um objeto, os nomes dos campos devem ser padronizados em minúsculo.
Returns:
{bdo.orm.Entity} A entidade criada será retornada em edição, sendo responsabilidade do usuário desta API efetivar a inserção por meio do método bdo.orm.Entity#post.

<static> {number} bdo.orm.EntitySet.persist(entitySets)
Persiste as alterações realizadas em um ou várias instâncias de EntitySet em uma única transação do banco de dados.
 __includeOnce('ufs:/ngin/keys/classes.js');
 __includeOnce('ufs:/bdo/orm/entityset.js');
 var users = bdo.orm.EntitySet.fromClass(ngin.keys.Classes.USERS);
 var groups = bdo.orm.EntitySet.fromClass(ngin.keys.Classes.GROUPS);
 try {
   doGoodThingsWith(users);
   doGoodThingsWith(groups);
 } finally {
   bdo.orm.EntitySet.persist([users, groups]);
 }
Parameters:
{bdo.orm.EntitySet|Array} entitySets
Instâncias de EntitySet que devem ter suas alterações persistidas no banco de dados.
Returns:
{number} Versão das alterações no banco de dados.

{number} persist()
Persiste as modificações realizadas nas entidades desta coleção.
As alterações realizadas nas instâncias de bdo.orm.Entity retornadas por esta classe, como as retornadas pelos métodos #findByKey, #newEntity e #forEach, que não tenham sido efetivadas pelo método bdo.orm.Entity#post serão efetivadas antes da persistência dos dados. Caso deseje descartar as alterações de uma entidade obtida de um EntitySet, utilize o método bdo.orm.Entity#cancel.
 __includeOnce('ufs:/ngin/keys/classes.js');
 __includeOnce('ufs:/bdo/orm/entityset.js');
 var users = bdo.orm.EntitySet.fromClass(ngin.keys.Classes.USERS);
 var currentUser = users.findByKey(session.userKey);
 try {
   doGoodThingsWith(currentUser);
 } finally {
   users.persist();
 }
Returns:
{number} Versão das alterações no banco de dados.
See:
#autoPersist

remove(entity)
Remove a entidade informada.
Parameters:
{number|bdo.orm.Entity} entity
Chave ou instância da entidade a ser removida.
Throws:
{bdo.orm.EntityError}
Será gerado um erro caso a chave informada não exista ou se o usuário corrente não tiver permissão de visão para a classe desta entidade.

removeAll()
Remove todas as entidades deste coleção.

{boolean} some(callback, opt_context)
Itera na coleção de entidades fornecendo uma entidade que pode ser alterada a cada iteração até que o resultado do callback fornecido seja verdadeira. O resultado deste método é um valor booleano e será falso somente se o resultado do callback for falso. Deve-se ter o cuidado para não utilizar a entidade fornecida ao callback fora dele.
var entitySet = bdo.orm.EntitySet.fromClass(ngin.keys.Classes.GROUPS_AND_ROLES);
var hasGroup = entitySet.some(function (entity) {
  return entity.get('iClass') === ngin.keys.Classes.GROUPS;
});
Parameters:
{function (bdo.orm.Entity):boolean} callback
Função parametrizada.
{*=} opt_context
Contexto do callback, a palavra reservada "this" é equivalente ao objeto que deseja-se contextualizar. Se nenhum contexto for fornecido, a própria instância de bdo.orm.EntitySet será utilizada.
Returns:
{boolean}

toJSON()
Cria uma representação JSON destas entidades. Serão exportadas apenas as propriedades visíveis pelo usuário.

{Object} toJSONSchema()
Exporta a definição de uma coleção de entidades da classe informada no construtor, no formato JSON Schema. O resultado será similar ao do bdo.orm.Entity#toJSONSchema, apenas que o esquema indicará que é um array de dados desse esquema.
Returns:
{Object}

update(key, data)
Atualiza a entidade identificada por key com valores das propriedades informadas. Será gerado um erro caso não exista uma entidade com a chave indicada.
Este método possui um desempenho superior ao de obter uma entidade pelo #findByKey e atualizá-la com o método bdo.orm.Entity#assign. Prefira o seu uso quando não for necessário ter acesso à instância da entidade alterada.
Parameters:
{number} key
Chave da entidade a ser atualizada.
{Object} data
Valores das propriedades que devem ser atribuídos a nova entidade.
Throws:
{bdo.orm.EntityError}
Será gerado um erro caso a chave informada não exista ou se o usuário corrente não tiver permissão de visão para a classe desta entidade.

Documentation generated by JsDoc Toolkit 2.4.0 on Tue Aug 23 2016 16:17:59 GMT-0300 (GFT)