12.07.2015 Views

JCML - Java Card Modeling Language: Definição e ... - Ifrn

JCML - Java Card Modeling Language: Definição e ... - Ifrn

JCML - Java Card Modeling Language: Definição e ... - Ifrn

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CAPÍTULO 5. <strong>JCML</strong> - JAVA CARD MODELING LANGUAGE 9301 public class Usuario {0203 // Variáveis, Construtor e Métodos;0405 private void checkInv$Usuario$() throws InvariantException {06 if (!(indiceLocal >= 0 && indiceLocal = 0 && creditos = QUANTIDADE_MAXIMA_LOCAIS ) {07 ISOException.throwIt (SW_QUANTIDADE_MAXIMA_LOCAIS_EXCEDIDA ) ;08 }09 else if (! this.temAcessoLocal (codigo_local ) ) {10 locais [indiceLocal ]= codigo_local ;11 indiceLocal ++ ;12 }13 checkInv$Usuario$();14 }catch (InvariantException invEx) {15 InvariantException.throwIt(InvariantException.SW_INVARIANT_ERROR);16 }17 }Figura 5.13: Método adicionarLocal com Checagem de Invariante.inserido após a chamada do método de checagem de invariante e antes do final do blocotry. Caso o invariante seja violado, o método original não será executado, pois executaráo bloco catch. O método adicionarLocal (Apêndice A) apresentado na Figura 5.13 tem asua estrutura modificada após a compilação da classe Usuário com o <strong>JCML</strong>c. Este métodoantes de ser compilado com <strong>JCML</strong>c tinha como implementação apenas o código entre aslinhas 6-12.Uma forma alternativa de geração de código de verificação é criar um método paraexecução do método original. O novo método contém o código original, contudo temseu nome modificado, com o objetivo de não causar duplicidade de métodos. Por exemplo,a chamada ao método protegido de adicionarLocal (linha 5 Figura 5.14). Sua assi-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!