/**
         * Método de adição de nodos filhos ao artefato.
         * @param Nodo a ser adicionado como filho.
         * @return Retorna status da operção.
         */
        public bool AddChildNode(gBConcrete child_node)
        {
            if (this != child_node)
            {
                //Adiciona nodo na lista de nodos filhos
                this.child_nodes.Add(child_node);

                //Notifica gerenciador que estrutura de nodos fora alterada
                gBManager.Instance.NodeHierarchyChanged();

                child_node.parent_node = this;
                child_node.OnParentNodeSet(this);

                this.OnChildNodeAdd(child_node);

                return true;
            }
            else
            {
                return false;
            }
        }
        /**
         * Método de remoção de nodo filho do artefato.
         * @param Nodo a ser removido da lista de nodos filhos.
         * @return Retorna o status da operação.
         */
        public bool RemoveChildNode(gBConcrete child_node)
        {
            if (this.child_nodes.Remove(child_node))
            {

                //Notifica gerenciador que estrutura de nodos fora alterada
                gBManager.Instance.NodeHierarchyChanged();

                child_node.parent_node = null;
                child_node.OnParentNodeSet(null);

                this.OnChildNodeRemove(child_node);

                return true;
            }

            return false;
        }