Objeto Nodo

.html ›› .html ›› .html ››
Parent Previous Next

Objeto Nodo de um NodeDatabase

Um Objeto Nodo é uma tabela LUA com um comportamento diferenciado que representa um nó/nodo de um NodeDatabase. Suas principais características são:




Alterando atributos de um Objeto Nodo


Para alterar um atributo de um Objeto Nodo basta fazer uma atribuição como você faria em qualquer outra tabela/objeto Lua.


Exemplo:

require("ndb.lua");
local nodoRaiz = ndb.load("MeuNodeDatabase.xml"); 

--[[ nodoRaiz é um Objeto Nodo --]]

nodoRaiz.atributo1 = "valor em string";
nodoRaiz.atributo2 = 2;
nodoRaiz.atributo3 = true;
nodoRaiz.atributoDeOutroNome = 6.7; 

nodoRaiz["atributo5"] = "outro valor em string";
nodoRaiz["atributo6"] = 9999;
nodoRaiz["atributo7"] = false;



Não tem mistério! Você atribui normalmente.... Só não são aceitos function como valores. 

As alterações são salvas automaticamente no documento.


Lendo atributos de um Objeto Nodo.

Mais uma vez, não há mistério: Basta acessar normalmente como uma tabela LUA qualquer.


Exemplo:

require("ndb.lua");
local nodoRaiz = ndb.load("MeuNodeDatabase.xml"); 

--[[ nodoRaiz é um Objeto Nodo --]]

 showMessage(nodoRaiz.atributo1); 

if nodoRaiz.atributo2 == 2 then
        -- faz alguma coisa....
end; 

nodoRaiz.atributo200 = nodoRaiz.atributo3;
nodoRaiz.atributo250 = nodoRaiz.atributo2 + 50;

local valor = nodoRaiz["atributoDeOutroNome"];
valor = nodoRaiz["atributo3"];


Removendo um atributo de um Objeto Nodo


Basta atribuir nil ao atributo que deseja remover.


Exemplo:

require("ndb.lua");
local nodoRaiz = ndb.load("MeuNodeDatabase.xml"); 

--[[ nodoRaiz é um Objeto Nodo --]] 

nodoRaiz.atributoQueDesejoRemover = nil;
nodoRaiz.atributo1 = nil;
nodoRaiz["atributo2"] = nil;


As alterações são salvas automaticamente no documento.


Criando um Objeto Nodo filho


Basta atribuir uma tabela a uma propriedade....


Exemplo:

require("ndb.lua");
local nodoRaiz = ndb.load("MeuNodeDatabase.xml"); 

--[[ nodoRaiz é um Objeto Nodo --]] 

-- Após a linha abaixo, nodoRaiz.nodoFilho será um Objeto Nodo filho de "nodoRaiz" de nome "nodoFilho"
nodoRaiz.nodoFilho = {};   

-- Na linha abaixo, nodoRaiz.nodoFilho2 será um Objeto Nodo filho de "nodoRaiz" de nome "nodoFilho2".
-- Além disso, o novo Objeto Nodo já possuirá os valores nome="Meu Nome" e idade=7.
nodoRaiz.nodoFilho2 = {nome="Meu Nome", idade=7};

 -- Como nodoRaiz.nodoFilho é um Objeto Nodo, você pode criar um nodo filho "nodoNeto" dentro de 
 --"nodoRaiz.nodoFilho" facilmente:
nodoRaiz.nodoFilho.nodoNeto = {}; 

-- E pode atribuir propriedades a ele normalmente, pois "nodoNeto" também é um Objeto Nodo.
nodoRaiz.nodoFilho.nodoNeto.atributoDoNeto = "Valor";


As alterações são salvas automaticamente no documento.


Deletando um Objeto Nodo

basta atribuir nil ou usar a função "ndb.deleteNode(nodo)"


Exemplo:

require("ndb.lua");
local nodoRaiz = ndb.load("MeuNodeDatabase.xml"); 

--[[ nodoRaiz é um Objeto Nodo --]] 

-- apagando o nodo "nodoFilho" e todos seus filhos recursivamente do nodo raiz
nodoRaiz.nodoFilho = nil; 

-- apgando usando a função ndb.deleteNode(node)
ndb.deleteNode(nodoRaiz.nodoFilho2);


As alterações são salvas automaticamente no documento.



Duplicando um Objeto Nodo

Basta fazer uma atribuição simples...


Exemplo:

require("ndb.lua");
local nodoRaiz = ndb.load("MeuNodeDatabase.xml"); 

--[[ nodoRaiz é um Objeto Nodo --]] 

-- criando um nodo filho com valores padrões:
nodoRaiz.nodoFilho = {nome="José", idade=75, corFavorita="red", nodoNeto={}}; 

-- duplicando o nodo filho.
nodoRaiz.nodoClone = nodoRaiz.nodoFilho;


As alterações são salvas automaticamente no documento.



Outras operações em um Objeto Nodo





Created with the Personal Edition of HelpNDoc: Easily create PDF Help documents