Arquivo completo com todo o volume dos Anais - Departamento de ...
Arquivo completo com todo o volume dos Anais - Departamento de ...
Arquivo completo com todo o volume dos Anais - Departamento de ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Quadro 3: Aspecto <strong>de</strong> autenticaçãoAAutenticacao = AspectImplementationAutenticaInsert : Pointcut = (* *.SQLInsert(*));AutenticaUpdate : Pointcut = (* *.SQLUpdate(*));AutenticaDelete : Pointcut = (* *.SQLDelete(*));Advice AutenticaInsert: Before;beginWith DMTaskMan.qryAutentica dobeginClose;Sql.Clear;Sql.Add(’Select count(*) from DIREITO_USUARIO’);Sql.Add(’Where IDUSUARIO = :IDUSUARIO and OPERACAO = :OPERACAO’);Sql.Add(’ and TABELA = :TABELA’);ParamByName(’IDUSUARIO’).AsInteger := giCodUsuario;ParamByName(’OPERACAO’).AsInteger := 1; //1=Insert, 2=Update, 3=DeleteParamByName(’TABELA’).AsInteger := Self.NomeTabela;ExecSQL;ifFields[0].AsInteger = 0 thenRaise Exception.Create('Você não tem permissão para essa ativida<strong>de</strong>. '+ Chr(13) + 'Entre em contato <strong>com</strong> o seu superior.');end;EndAdvice;Advice AutenticaUpdate: Before;beginWith DMTaskMan.qryAutentica dobegin...ParamByName('OPERACAO').AsInteger := 2;...end;EndAdvice;Advice AutenticaDelete: Before;beginWith DMTaskMan.qryAutentica dobegin...ParamByName('OPERACAO').AsInteger := 3;...end;EndAdvice;//1=Insert, 2=Update, 3=Delete//1=Insert, 2=Update, 3=DeleteEnd.Em seguida o <strong>de</strong>senvolvedor po<strong>de</strong> indicar à ferramenta as listas <strong>de</strong> units que nãoserão afetadas pelos aspectos do projeto. A cada lista adicionada, suas units sãoinseridas no campo Units não afetadas por aspectos. Durante o processo<strong>de</strong> weaving, cadaunit referenciada em algum fonte lido será analisada, a menos <strong>de</strong> queseu nome conste nesta lista <strong>de</strong> restrição.Tendo informado esses parâmetros, o projeto AOPDelphi está pronto para ser<strong>com</strong>pilado. Ao executar o <strong>com</strong>ando Weaving, é feita a consistência no projeto Delphi eem seguida são <strong>com</strong>pila<strong>dos</strong> os programas <strong>de</strong> aspectos. É feita a cópia do projeto Delphioriginal e inicia-se a junção <strong>dos</strong> programas <strong>de</strong> aspectos e do programa <strong>de</strong> <strong>com</strong>ponentes.Os fontes gera<strong>dos</strong> são <strong>com</strong>pila<strong>dos</strong> e ocorrendo sucesso a aplicação será executada.Havendo erros <strong>de</strong> <strong>com</strong>pilação no projeto Delphi após o weaving, a ferramenta apresentaos tais erros e sua origem.Os quadros 4 e 5 mostram um mé<strong>todo</strong> SQLDelete <strong>de</strong> uma classe afetada peloaspecto, antes e <strong>de</strong>pois do processo <strong>de</strong> weaving, respectivamente.