Índice:
Vídeo: ➥Analisando os Leiautes do eSocial Para SST |⛑ eSocial Para SST | ? Leiautes do eSocial 2024
A palavra evento evoca todos os tipos de imagens. Para um não programador, um evento é apenas "algo que acontece". "Se você está acostumado a lidar com janelas e quadros em Java, então você provavelmente pensa em um evento como uma ocorrência que desperta um pedaço de código. Por exemplo, o clique do mouse ou o toque de um usuário despertam o código que define uma opção e exibe uma caixa OK. O clique ou a batida de teclas é chamado de evento porque acontece independentemente do programa em execução. Somente o usuário sabe quando ele ou ela pressionará esse botão. E quando o botão é pressionado, parte do programa Java acaba de acordar e lida com a situação. Esse cenário é chamado programação baseada em eventos .
Programas baseados em eventos
Os programas SAX são conduzidos por eventos . Por exemplo, você entra na cama para uma boa noite de sono. Você alcança para configurar seu despertador e depois se instala, fecha seus olhos e fica inconsciente por um número de horas. Então ocorre um acontecimento importante: chega um certo momento do dia. Quando o evento ocorre, o despertador entra no modo "acordar" - e faz um ruído horrível para excitá-lo do sono reparador.
Aqui está outro cenário. Você é um executivo ocupado e você estará fora por várias horas, mas você não quer perder nenhum negócio importante. Antes de deixar o escritório, diga ao seu assistente: "Ligue-me se alguma coisa importante surgir. "A emissão deste pedido é semelhante à configuração do despertador. Você está dizendo ao seu assistente (seu despertador) que o acorde se um evento acontecer. Fazer este pedido ao seu assistente (ou ao seu despertador) é chamado de registro . Em ambos os casos, você está se registrando com um serviço de despertar. Depois de se cadastrar, você pode prosseguir sua atividade sem atividades, ignorando todos os negócios reais até algum evento acontecer. Então …
Anel, anel. Seu telefone celular está gritando com você. "Olá? "
" Olá. Este é o seu assistente. Tenho os números de vendas do primeiro trimestre. Eles são 1 milhão, 4 milhões e 2 milhões. "
" Vamos ver. Isso é um total de 7 milhões ", diz. "Eu vou notar no meu PalmPilot. Obrigado. " Você desliga.
Vários momentos depois, você recebe outra ligação. "O presidente da Big Bucks, Inc., quer fechar esse acordo. Eles estão falando 10 milhões de dólares. "
"Hmm", você responde. "Isso trará nossa receita acumulada até 17 megabucks. Eu armazenarei essas informações no meu aplicativo de planilha eletrônica. Obrigado por ligar. "
Cada uma dessas interações é conhecida como uma chamada de retorno .No início do dia, quando você registrou seu desejo com o assistente, você solicitou um retorno de chamada. Então, sempre que um evento ocorre, o assistente faz uma chamada de retorno para notificá-lo sobre o evento. Em termos de programação Java, o assistente chama um dos seus vários métodos (um de seus subprogramas Java).
A essência da programação baseada em eventos
A programação baseada em eventos tem três partes:
- Registro: Você regista seu desejo de ser notificado sempre que ocorrer um evento. Você registra esse desejo com outro pedaço de código - outro objeto, geralmente algo que você importou (como um pedaço de código que faz parte da API de outra pessoa). Este objeto, então, assiste, nos bastidores, para a ocorrência do evento que você especificou.
- Ocorrência do evento: Ocorre um evento específico.
- Callback: A outra parte do código executa um retorno de chamada. Um dos seus métodos é chamado.
Dois tipos de código
Distinguir entre código ativo e passivo é útil:
- O código ativo tem um método principal. Código ativo, uma vez que ele começa a correr, assume o centro do palco. O código ativo contém o segmento de execução que controla todo o jogo de bola.
- O código passivo só fica ali, esperando ser chamado. Uma classe de dados passiva não faz nada até que algum outro código chame dados. lista().
Agora, você pode pensar que o código passivo é tudo o que você precisa para a programação baseada em eventos, mas não é. Para o manuseio de eventos, você precisa desta etapa de registro. O código passivo começa ficando registrado com algum outro código.
Para firmar essa noção de registro, pense em um exemplo do mundo na tela de camundongos, janelas e botões. Você cria uma janela ou quadro. Você quer que seu quadro responda aos cliques do mouse, então você emite o seguinte comando:
botão. addMouseListener (this);
Este comando regista seu quadro com o botão. O comando diz, com efeito, Sempre que ocorre um evento de mouse, chame um dos métodos de tratamento do mouse do quadro . Mais tarde, quando o usuário clicar no mouse, o quadro recebe um retorno de chamada. O computador chama o método mouseClicked do frame.
Eventos SAX
Claro, o SAX é orientado para eventos, mas isso não significa que um programa SAX aguarde os cliques do mouse. Em vez disso, o código SAX segue o modelo de retorno de registro-evento descrito nos últimos vários parágrafos. Todo programa SAX tem duas partes indispensáveis de código:
- Um pedaço de código que você escreve - chamado manipulador . (Seu manipulador pode estender uma classe pré-escrita DefaultHandler.) O manipulador é como o executivo de milhões de dólares na seção anterior.
- Um pedaço de código que você normalmente não escreve - o analisador . O analisador desempenha um papel como o assistente do executivo. A API Java 1. 4 possui um analisador interno. Você cria uma instância deste analisador e, em seguida, você registra seu manipulador com essa instância do analisador. Com efeito, você diz à instância que recorde seu manipulador sempre que ocorrer um evento.
Qualquer coisa que tenha que ver com XML é nova e ainda está em um estado de fluxo. Devido a isso, a terminologia é corrigida de forma peculiar. Ao desenvolver a versão 2 da SAX, alguns técnicos tiveram um festival de make-up-new-names. O que normalmente é chamado de "analisador" é incorporado em uma interface Java chamada XMLReader. Costumava ser uma classe chamada org. xml. saxofone. Parser, mas a classe obteve obsoleto (o que significa que você deve arranhá-lo no fundo do seu sapato). Para tornar as coisas um pouco mais complicadas, ainda há outra ferramenta de análise, javax. xml. analisadores. SAXParser. Você usa este SAXParser para tornar-se um XMLReader. Com alguma sorte, você rapidamente se acostumará a esta terminologia complicada. Por enquanto, lembre-se de que o que é chamado de "analisador" geralmente é uma instância do XMLReader.
O cenário register-and-callback é o que faz com que o SAX seja conduzido por eventos. Agora, o engraçado é que um evento SAX não é tangível. Um evento SAX não lembrará um toque de tecla ou um clique no botão. No SAX, o analisador verifica um documento XML de cima para baixo. Sempre que o analisador encontrar algo interessante, o analisador dispara um evento e chama o manipulador. Então, cabe ao manipulador fazer algo sobre esse encontro interessante.