Sistema de agendamento de consultas em hospitais da rede ... · PDF fileGilberto Renaldo...

Preview:

Citation preview

Gilberto Renaldo Laureano, Victor Otávio Peter Keunecke

Sistema de agendamento de consultas em

hospitais da rede pública

Florianópolis � SC2006

Gilberto Renaldo Laureano, Victor Otávio Peter Keunecke

Sistema de agendamento de consultas em

hospitais da rede pública

Monogra�a apresentada ao programa deBacharelado em Ciências da Computaçãoda Universidade Federal de Santa Catarinacomo requisito parcial para obtenção do grauBacharel em Ciências da Computação

Orientador:Professor Doutor João Bosco Mangueira Sobral

Universidade Federal de Santa CatarinaCentro Tecnológico

Florianópolis � SC2006

Monogra�a de graduação sob o título Sistema de agendamento de consultas em hos-pitais da rede pública, defendida por Gilberto Renaldo Laureano e Victor Otávio PeterKeunecke e aprovada em 17 de abril de 2006, em Florianópolis, Santa Catarina, pelabanca examinadora constituída por:

Prof. Dr. João Bosco Mangueira SobralOrientador

Prof. Dr. Leandro José KomosinskiUniversidade Federal de Santa Catarina

Clytia Higa TamashiroUniversidade Federal de Santa Catarina

Resumo

O tempo despendido na �la para a marcação de consultas nos hospitais públicos, asdi�culdades decorrentes do serviço de transporte e todos os problemas que surgem devidoa isso devem ser minimizados da vida cotidiana das pessoas que utilizam o serviço demarcação de consultas nos hospitais da rede pública . O presente projeto contempla aconstrução de um protótipo para minimizar o problema social vivido pela comunidade,em relação à di�culdade de locomoção e tempo despendido na �la para o agendamento desimples atendimentos (consultas) nos hospitais da rede pública da Grande Florianópolis.No sentido de mostrar a viabilidade de se construir um sistema real que integre hospitais,centros de saúde e entidades governamentais, um protótipo que implementa um serviçointegrado de agendamento de consultas é apresentado, utilizando as tecnologias de serviçosWeb, como benefício ao público carente, através de um sistema de baixo custo, utilizandosoftwares de livre utilização.

Abstract

The queue assembly time to set medical consultations, current di�culties inherentfrom the transportation service and all correlated problems must be minimized for thedaily users of the service at public hospitals. The present project proposes a possiblesolution to minimize the local community social situation, considering the di�culties oflocomotion and time expended in a queue in order to schedule routine appointments at thepublic hospitals in the city of Florianopolis and outskirts. In order to show the viabilityof constructing a real system which integrates hospitals, health governmental centers andentities, it is presented a prototype enabled to perform an integrated schedule service ofconsultations.

Sumário

Lista de Figuras

Lista de abreviaturas e siglas

1 Introdução p. 131.1 Justi�cativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 141.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14

1.2.1 Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 141.2.2 Especí�cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14

1.3 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14

2 Fundamentação Teórica p. 152.1 Internet e World Wide Web (1) . . . . . . . . . . . . . . . . . . . . . . p. 152.2 Java(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 152.3 Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 162.4 JSP (JavaServer Pages) . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17

2.4.1 JavaBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 172.5 XML (Extensible Markup Language) . . . . . . . . . . . . . . . . . . . p. 182.6 SOAP (Simple Object Acess Protocol) . . . . . . . . . . . . . . . . . . p. 182.7 Serviços na Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19

2.7.1 Publicação do Serviço - UDDI (Universal Description, Discovery,and Integration) . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20

2.7.2 Descrição do Serviço - WSDL (Web Service Description Language) p. 20

2.7.3 Mensagens XML . . . . . . . . . . . . . . . . . . . . . . . . . . p. 212.7.4 Serviço de transporte - HTTP (Hypertext Transfer Protocol) . . p. 22

2.8 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 232.8.1 Eclipse (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 232.8.2 Apache Tomcat (4) . . . . . . . . . . . . . . . . . . . . . . . . . p. 242.8.3 Apache Axis (5) . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 242.8.4 Apache Struts (6) . . . . . . . . . . . . . . . . . . . . . . . . . . p. 242.8.5 Hibernate (7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 262.8.6 MySql(8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27

3 Sistema Proposto p. 283.1 Levantamento de Requisitos - Casos de Uso . . . . . . . . . . . . . . . p. 283.2 Modelagem e Implementação . . . . . . . . . . . . . . . . . . . . . . . . p. 29

3.2.1 Confrontando Vertentes . . . . . . . . . . . . . . . . . . . . . . p. 303.3 Distribuição dos módulos . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30

3.3.1 Módulo Hospital . . . . . . . . . . . . . . . . . . . . . . . . . . p. 303.3.1.1 Utilizando Hibernate . . . . . . . . . . . . . . . . . . . p. 313.3.1.2 Banco de Dados bdhospital . . . . . . . . . . . . . . . p. 33

3.3.2 Módulo SUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 343.3.2.1 Utilizando Serviços Web . . . . . . . . . . . . . . . . . p. 353.3.2.2 Banco de Dados bdsus . . . . . . . . . . . . . . . . . . p. 37

3.3.3 Módulo de Apresentação . . . . . . . . . . . . . . . . . . . . . . p. 383.3.3.1 Utilizando Struts . . . . . . . . . . . . . . . . . . . . . p. 383.3.3.2 Banco de Dados bdagendador . . . . . . . . . . . . . . p. 39

3.3.4 Considerações do sistema . . . . . . . . . . . . . . . . . . . . . . p. 40

4 Conclusões e trabalhos futuros p. 42

4.1 Conclusão Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 424.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 42

Referências p. 43

5 Anexos p. 455.1 Módulo de Apresentação . . . . . . . . . . . . . . . . . . . . . . . . . . p. 45

5.1.1 SistemaAgendador/JavaSource/actions/Gerenciador.java . . . . p. 455.1.2 SistemaAgendador/JavaSource/actions/HospitaisAction.java . . p. 465.1.3 SistemaAgendador/JavaSource/actions/MedicosAction.java . . . p. 485.1.4 SistemaAgendador/JavaSource/actions/PacientesAction.java . . p. 495.1.5 SistemaAgendador/JavaSource/actions/UsuariosAction.java . . p. 515.1.6 SistemaAgendador/JavaSource/actions/UtilitariosAction.java . . p. 525.1.7 SistemaAgendador/JavaSource/bd/hibernate/Banco.java . . . . p. 535.1.8 SistemaAgendador/JavaSource/bd/hibernate/tabelas/Hospitais.java p. 545.1.9 SistemaAgendador/JavaSource/bd/hibernate/tabelas/Usuarios.java p. 565.1.10 SistemaAgendador/JavaSource/beans/Consulta.java . . . . . . . p. 585.1.11 SistemaAgendador/JavaSource/beans/Endereco.java . . . . . . p. 665.1.12 SistemaAgendador/JavaSource/beans/Hospital.java . . . . . . . p. 755.1.13 SistemaAgendador/JavaSource/beans/Medico.java . . . . . . . . p. 775.1.14 SistemaAgendador/JavaSource/beans/Paciente.java . . . . . . . p. 835.1.15 SistemaAgendador/JavaSource/actions/Gerenciador.java . . . . p. 985.1.16 SistemaAgendador/JavaSource/service/Hospital.java . . . . . . p. 1005.1.17 SistemaAgendador/JavaSource/service/HospitalProxy.java . . . p. 1015.1.18 SistemaAgendador/JavaSource/service/HospitalService.java . . p. 1055.1.19 SistemaAgendador/JavaSource/service/HospitalServiceLocator.javap. 1065.1.20 SistemaAgendador/JavaSource/service/HospitalSoapBindingStub.javap. 111

5.1.21 SistemaAgendador/JavaSource/service/SUS.java . . . . . . . . . p. 1295.1.22 SistemaAgendador/JavaSource/service/SUSProxy.java . . . . . p. 1305.1.23 SistemaAgendador/JavaSource/service/SUSService.java . . . . . p. 1325.1.24 SistemaAgendador/JavaSource/service/SUSServiceLocator.java p. 1335.1.25 SistemaAgendador/JavaSource/service/SUSSoapBindingStub.java p. 1385.1.26 SistemaAgendador/JavaSource/service/TestaServiceHospital.java p. 1475.1.27 SistemaAgendador/JavaSource/service/TestaServiceSUS.java . . p. 1505.1.28 SistemaAgendador/JavaSource/uteis/Constantes.java . . . . . . p. 1525.1.29 SistemaAgendador/JavaSource/uteis/ConversorPaciente.java . . p. 1535.1.30 SistemaAgendador/JavaSource/beans/Hospital.hbm.xml . . . . p. 1645.1.31 SistemaAgendador/JavaSource/beans/Usuario.hbm.xml . . . . . p. 1655.1.32 SistemaAgendador/JavaSource/actions/Gerenciador.java . . . . p. 1665.1.33 SistemaAgendador/WebContent/WEB-INF/struts-con�g.xml . p. 1775.1.34 SistemaAgendador/WebContent/WEB-INF/struts-con�g.xml.bk p. 1815.1.35 SistemaAgendador/WebContent/WEB-INF/struts-html.tld . . . p. 1925.1.36 SistemaAgendador/WebContent/WEB-INF/struts-logic.tld . . . p. 2875.1.37 SistemaAgendador/WebContent/WEB-INF/struts-nested.tld . . p. 3065.1.38 SistemaAgendador/WebContent/WEB-INF/struts-tiles.tld . . . p. 3975.1.39 SistemaAgendador/WebContent/WEB-INF/tiles-defs.xml . . . p. 4075.1.40 SistemaAgendador/WebContent/WEB-INF/validation.xml . . . p. 4095.1.41 SistemaAgendador/WebContent/WEB-INF/validator-rules.xml p. 4115.1.42 SistemaAgendador/WebContent/WEB-INF/web.xml . . . . . . p. 4205.1.43 SistemaAgendador/WebContent/css/Geral.css . . . . . . . . . . p. 4225.1.44 SistemaAgendador/WebContent/jsp/buscarPaciente.jsp . . . . . p. 4265.1.45 SistemaAgendador/WebContent/jsp/cadastraConsulta.jsp . . . p. 4285.1.46 SistemaAgendador/JavaSource/actions/Gerenciador.java . . . . p. 430

5.1.47 SistemaAgendador/WebContent/jsp/cadastraPaciente.jsp . . . . p. 4325.1.48 SistemaAgendador/WebContent/jsp/cadastraUsuario.jsp . . . . p. 4365.1.49 SistemaAgendador/WebContent/jsp/index.jsp . . . . . . . . . . p. 4385.1.50 SistemaAgendador/JavaSource/actions/Gerenciador.java . . . . p. 4405.1.51 SistemaAgendador/WebContent/jsp/listaPacientes.jsp . . . . . p. 4425.1.52 SistemaAgendador/WebContent/jsp/menu.jsp . . . . . . . . . . p. 4445.1.53 SistemaAgendador/WebContent/jsp/principal.jsp . . . . . . . . p. 4465.1.54 SistemaAgendador/WebContent/jsp/relatorioConsulta.jsp . . . p. 447

5.2 Módulo SUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 4505.2.1 SistemaSUS/JavaSource/bd/hibernate/Banco.java . . . . . . . . p. 4505.2.2 SistemaSUS/JavaSource/bd/hibernate/tabelas/Pacientes.java . p. 4515.2.3 SistemaSUS/JavaSource/beans/Endereco.java . . . . . . . . . . p. 4555.2.4 SistemaSUS/JavaSource/beans/Paciente.java . . . . . . . . . . . p. 4595.2.5 SistemaSUS/JavaSource/service/SUS.java . . . . . . . . . . . . p. 4665.2.6 SistemaSUS/JavaSource/uteis/Constantes.java . . . . . . . . . . p. 4675.2.7 SistemaSUS/WebContent/META-INF/MANIFEST.MF . . . . . p. 4685.2.8 SistemaSUS/WebContent/WEB-INF/SUSService/service/deploy.wsddp. 4685.2.9 SistemaSUS/WebContent/WEB-INF/SUSService/service/undeploy.wsddp. 4695.2.10 SistemaSUS/JavaSource/bd/hibernate/Banco.java . . . . . . . . p. 4695.2.11 SistemaSUS/WebContent/WEB-INF/web.xml . . . . . . . . . . p. 4725.2.12 SistemaSUS/WebContent/wsdl/SUS.wsdl . . . . . . . . . . . . p. 4735.2.13 SistemaSUS/JavaSource/beans/Paciente.hbm.xml . . . . . . . . p. 480

5.3 Módulo Hospital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 4835.3.1 SistemaHospital/JavaSource/bd/hibernate/Banco.java . . . . . p. 4835.3.2 SistemaHospital/JavaSource/bd/hibernate/tabelas/Consultas.java p. 4855.3.3 SistemaHospital/JavaSource/bd/hibernate/tabelas/Medicos.java p. 491

5.3.4 SistemaHospital/JavaSource/bd/hibernate/tabelas/Pacientes.java p. 4955.3.5 SistemaHospital/JavaSource/beans/Consulta.java . . . . . . . . p. 4975.3.6 SistemaHospital/JavaSource/beans/Endereco.java . . . . . . . . p. 5005.3.7 SistemaHospital/JavaSource/beans/Medico.java . . . . . . . . . p. 5045.3.8 SistemaHospital/JavaSource/beans/Paciente.java . . . . . . . . p. 5065.3.9 SistemaHospital/JavaSource/service/Hospital.java . . . . . . . . p. 5135.3.10 SistemaHospital/JavaSource/uteis/Constantes.java . . . . . . . p. 5155.3.11 SistemaHospital/JavaSource/uteis/Data.java . . . . . . . . . . . p. 5165.3.12 SistemaHospital/WebContent/META-INF/MANIFEST.MF . . p. 5255.3.13 SistemaHospital/WebContent/WEB-INF/HospitalService/service/deploy.wsddp. 5265.3.14 SistemaHospital/WebContent/WEB-INF/HospitalService/service/undeploy.wsddp. 5285.3.15 SistemaHospital/WebContent/WEB-INF/server-con�g.wsdd . . p. 5295.3.16 SistemaHospital/WebContent/WEB-INF/web.xml . . . . . . . . p. 5345.3.17 SistemaHospital/WebContent/wsdl/Hospital.wsdl . . . . . . . . p. 5365.3.18 SistemaHospital/JavaSource/beans/Consulta.hbm.xml . . . . . p. 5515.3.19 SistemaHospital/JavaSource/beans/Medico.hbm.xml . . . . . . p. 5525.3.20 SistemaHospital/JavaSource/beans/Paciente.hbm.xml . . . . . . p. 553

Lista de Figuras

1 Arquitetura de aplicativo servlet. . . . . . . . . . . . . . . . . . . . . . p. 162 Comunicação em Serviço Web usando SOAP via HTTP. . . . . . . . . p. 183 Processo serviço Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 204 SOAP, UDDI e WSDL em uma interação Web Service. . . . . . . . . . p. 225 Clássico modelo MVC (Model-View-Controller). . . . . . . . . . . . . . p. 256 Arquitetura Modelo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 257 Visão alto nível da arquitetura Hibernate utilizada. . . . . . . . . . . . p. 268 Diagrama entidade relacional do Sistema de Agendamento de Consultas. p. 299 Arquivo de con�guração do Hibernate no módulo Hospital. . . . . . . . p. 3110 Arquivo de mapeamento objeto/relacional para a classe Consulta.java. p. 3211 Método de acesso ao banco de dados utilizando Hibernate. . . . . . . . p. 3312 Modelagem do banco de dados bdhospital. . . . . . . . . . . . . . . . p. 3313 Nome e Localização do serviço no arquivo SUS.wsdl . . . . . . . . . . . p. 3514 Uma das diversas operações publicadas no arquivo SUS.wsdl. . . . . . . p. 3615 Resposta SOAP transmitida via HTTP. . . . . . . . . . . . . . . . . . . p. 3616 Requisição SOAP transmitida via HTTP. . . . . . . . . . . . . . . . . . p. 3717 Cabeçalho HTTP de uma requisição SOAP encapsulada . . . . . . . . p. 3718 Modelagem do banco de dados bdsus. . . . . . . . . . . . . . . . . . . p. 3719 Trecho do arquivo de con�guração do Struts "struts-con�g.xml". . . . . p. 3820 Método da classe destino "PacientesAction.java". . . . . . . . . . . . . p. 3921 Modelagem do banco de dados bdagendador. . . . . . . . . . . . . . . p. 3922 Estrutura utilizada no sistema como um todo. . . . . . . . . . . . . . . p. 40

Lista de abreviaturas e siglas

WWW - World Wide WebSUS - Sistema Único de Saúde

INSS - Instituto Nacional do Seguro SocialHTTP - Hypertext Transfer Protocol

JSP - JavaServer PagesJVM - Java Virtual Machine

XML - Extensible Markup LanguageW3C - World Wide Web ConsortiumSOAP - Simple Object Acess Protocol

UDDI - Universal Description, Discovery, and IntegrationWSDL - Web Service Description Language

URL - Uniform Resource LocatorHTML - HyperText Markup Language

CSS - Cascading Style SheetsSQL - Structured Query LanguageMVC - Model-View-Controller

SGBD - Sistema Gerenciador de Banco de DadosJDBC - Java Database Connectivity

13

1 Introdução

As distâncias de várias localidades nos estados brasileiros, para os hospitais públicosnas grandes cidades (muitas vezes as prefeituras do interior dos estados precisam trazeros pacientes de suas cidades para os grandes centros), as di�culdades decorrentes doserviço de transporte nos horários da madrugada (quando os pacientes moram nas própriascidades dos hospitais), o tempo despendido por uma pessoa carente na �la por marcaçãode consulta nos hospitais públicos são fatores que podem ser eliminados, ou ao menos,minimizados da vida cotidiana dos usuários do SUS (Sistema Único de Saúde).

Assim um sistema que implemente um "Serviço Integrado de Agendamento de Con-sultas"pode ser construído e implantado. O sistema buscará integrar os serviços similaresde agendamentos de consultas dos hospitais e o INSS (Instituto Nacional do Seguro So-cial), em benefício do público carente, através de baixo custo �nanceiro, utilizando astecnologias para serviços na Web. Para isso softwares de livre utilização, como os siste-mas operacionais LINUX, as plataformas de serviços para Web e as ferramentas para seconstruir um sistema seguro podem ser utilizados.

O sistema de atendimento proposto é um sistema distribuído entre centros de saúdede um município, as unidades hospitalares públicas e as poli-clínicas do INSS, que sãointegradas através de um rede segura, na internet, utilizando as tecnologias apropriadaspara tal.

Este sistema visa eliminar a �la física de pessoas nos casos sem emergência e torná-lauma �la virtual (no computador, a �la parece existir, mas na realidade não existe).Oshábitos e procedimentos internos aos hospitais não serão alterados. A população de baixarenda será bene�ciada e as portarias de hospitais serão aliviadas, uma vez que os usuáriospodem ir a qualquer centro ou posto de saúde, que deve acessar do sistema, sendo estemanuseado por funcionário do posto, após a orientação de um médico.

Este projeto diz respeito à concepção e modelagem, desenvolvimento e testes da partecomputacional principal, no sentido de se mostrar a viabilidade da implantação do projeto.

14

1.1 Justi�cativa

O atual processo de agendamento de simples consultas, sendo feito somente coma presença física do usuário nos hospitais públicos, conduz a fatores que di�cultam ecausam transtorno. Tais problemas dizem respeito a passar madrugadas em claro, adi�culdade de locomoção, a espera numa �la com limite do número de pessoas que podemser atendidas, gastando-se um tempo precioso de vida. Na realidade, a marcação de umasimples consulta requer um tempo mínimo do trabalho de um funcionário (por exemplo,5 minutos por pessoa), tempo ín�mo relativo ao que se despende para se locomover eaguardar numa �la.

1.2 Objetivos

Nesta seção são apresentados os objetivos do trabalho proposto.

1.2.1 Geral

Demonstrar e implementar uma possível solução para o problema de �las na marcaçãode consultas nos hospitais públicos e poli-clínicas do INSS.

1.2.2 Especí�cos

• Utilizar as tecnologias de serviços Web.

• Realizar o projeto com baixo custo �nanceiro.

1.3 Estrutura do Trabalho

Este trabalho segue com a explicitação do conjunto de ferramentas e tecnologias rela-cionadas à este projeto. Logo em seguida no capítulo 3 temos uma visão da arquitetura,modelagem e implementação do sistema proposto. Por �m conclusão e proposta de tra-balhos futuros são apresentados.

15

2 Fundamentação Teórica

A seguir são apresentados algumas ferramentas e tecnologias envolvidas nesse projeto.

2.1 Internet e World Wide Web (1)

Financiada pelo Departamento de Defesa dos EUA, há mais de três décadas, a Inter-net foi inicialmente projetada para conectar os principais sistemas de computadores dasuniversidades e centros de pesquisas americanos. Hoje são milhões de computadores comacesso a essa tecnologia.

Com o advento da World Wide Web (WWW), possibilitou-se aos usuários de compu-tador pesquisar, localizar e visualizar materiais sobre os mais variados assuntos, fazendoa Internet tornar-se um dos principais mecanismos de comunicação do mundo.

A Internet e a World Wide Web irão listar entre as mais importantes invenções da raçahumana. Antes, a grande parte dos aplicativos rodavam em computadores isolados, semcomunicação entre si. Hoje os aplicativos podem ser escritos de maneira a comunicarem-secom centenas de milhares de computadores localizados no mundo.

2.2 Java(2)

Java na atualidade (1), é uma linguagem muito extensa e que está sendo cada vezmais utilizada na Internet como na informática em geral, procurando sempre cobrir asnecessidades tecnológicas mais importantes.

Uma das características marcantes de Java é que é uma linguagem independente daplataforma. Isto signi�ca que ao produzir-se um programa em Java este poderá funcionarem qualquer sistema operacional com suporte a Java. É uma vantagem signi�cativa paraos desenvolvedores de software, pois antes havia a necessidade de compilar um programapara cada sistema operacional, por exemplo Windows, Linux, etc. Java é interessante

16

para a Internet pois possui uma vasta API que dá suporte para sua utilização, além deexistirem frameworks livres facilitando o desenvolvimento de aplicações.

2.3 Servlets

Servlet (9) surgiu em 1996 introduzida pela Sun Microsystems . São classes Java queestendem os pacotes javax.servlet (o framework básico de Servlet) e javax.servlet.http (ex-tensão do framework Servlet para Servlets que respondem a requisições HTTP(HypertextTransfer Protocol)). Como servlets são escritos em Java e seguem um framework pa-drão, eles proporcionam maneiras de criar so�sticados extensões do servidor, indepen-dentemente do servidor e sistema operacional. Um servlet pode ser automaticamentecarregado e executado em um servidor Web especial. Como se utilizam tanto servletscomo JSP(JavaServer Pages) chamam-se esses servidores de contentor Web ou contentorservlet/JSP. O Tomcat (4) foi o contentor utilizado nesse trabalho.

A seguir a �gura 1 mostrando como os servlets interagem com os clientes através deum modelo solicitação/resposta baseado em HTTP.

Figura 1: Arquitetura de aplicativo servlet.

Servlets e Jsps oferecem, segundo (9), os seguintes benefícios:

• Desempenho. Não há processo de criação para cada solicitação de cliente. Ao invés,cada solicitação é gerenciada pelo processo contentor do servlet. Depois que um ser-vlet termina de processar uma solicitação, ele permanece na memória, aguardandopor outra solicitação.

• Portabilidade. Semelhante a outras tecnologias Java, os aplicativos servlets sãoportáteis. Podem ser movidos sem maiores problemas para outros sistemas opera-cionais.

• Rápido ciclo de desenvolvimento. Têm acesso à rica biblioteca Java, que ajuda noprocesso de desenvolvimento.

17

• Robustez. São gerenciados pela JVM (Java Virtual Machine). Assim os controlesde memória, resíduos já estão garantidos.

• Aceitação difundida. Numerosos fabricantes trabalham com tecnologias baseadasem Java. Assim pode-se encontrar com certa facilidade componentes que se ajustemas necessidades do desenvolvedor.

2.4 JSP (JavaServer Pages)

JSP é outra tecnologia Java para desenvolvimento de aplicativos Web. Como descritono livro (9), surgiu no momento que a tecnologia de servlet tinha atingido popularidadecomo uma das melhores tecnologias disponíveis. JSP não tem a pretensão de substituirservlet, mas sim é uma extensão dessa tecnologia, e é comum se utilizar ambas as tecno-logias nos mesmos aplicativos Web. Permite, de maneira e�ciente, a criação de páginasdinâmicas. Como o nome implica, JSP utiliza a linguagem de programação Java paracriar esse ambiente dinâmico de exibição de dados. Uma página JSP é usada no lado ser-vidor e é traduzida em um Servlet e compilada após sua primeira invocação. As páginasJSP proporcionam tags que permitem tratar as mais diversas operações dinâmicas sem anecessidade de incluir código java complexo. JSP foi montada tendo como base o servlete necessita deste para trabalhar.

2.4.1 JavaBeans

JavaBeans (10) são componentes de software que são projetados para serem classesreutilizáveis, que uma vez criados podem ser reusados sem modi�cação de código, e emqualquer propósito de aplicação, seja um applet, um servlet ou qualquer outra. Um Beané uma classe Java com determinadas regras. As regras submetidas a uma classe para queela seja uma classe JavaBeans, são as seguintes:

• Possuir um construtor sem argumentos. Java criará automaticamente um construtorsem argumentos para qualquer classe Java que não tenha um construtor;

• Possuir métodos públicos para ajustar o valor de alguma propriedade. São os mé-todos setter. Não retorna nenhum valor e seu nome inicia com "set", seguido pelonome da propriedade.

18

• Possuir métodos públicos para obter o valor de alguma propriedade. São os métodosgetter. Retorna um valor do mesmo tipo ao da propriedade em questão. O seu nomeinicia com "get" seguido do nome da propriedade.

Os métodos setters e getters são conhecidos como acess methods (métodos de acesso).JavaBeans são exigidos para mapeamento de classes pelo Hibernate (11), utilizados pelaspáginas JSP (12). Além disso, apesar de não ser obrigatório, em Struts (6) facilita atransferência dos atributos obtidos em um request para os beans. Por exemplo em "Be-anUtils.copyProperties(hospital, actionForm);". BeanUtils é uma classe da API JakartaCommons. Percebe-se aí outra vantagem de se utilizar JavaBeans: a possibilidade de seutilizar ferramentas como a API Jakarta Commons.

2.5 XML (Extensible Markup Language)

Desenvolvido (10) a partir de SGML(Standard Generalized Markup Language), é umpadrão largamente aceitável para descrição de dados e criação de linguagens de marca-ção. XML foi de�nido pelo W3C (World Wide Web Consortium) como uma tecnologiade padrão aberto. Assim, por ser uma representação estruturada dos dados, permiteque quaisquer aplicações que entendam XML, troquem dados independente de sistemaoperacional ou linguagem de programação.

2.6 SOAP (Simple Object Acess Protocol)

SOAP é um protocolo leve, para troca de informações em ambientes descentralizadosou distribuídos. É baseado em XML buscando a troca de informações entre computadorese tem como foco principal a chamada remota de procedimentos via HTTP, a opção maispopular para o serviço de transporte.

Na �gura 2 vemos um diagrama da comunicação num Serviço Web usando SOAP viaHTTP.

Figura 2: Comunicação em Serviço Web usando SOAP via HTTP.

19

SOAP está dividido em três partes:

• Um documento que de�ne a estrutura para descrever o que vem em uma mensageme como sua manipulação deve ser realizada;

• Um conjunto de regras codi�cadas para expressar aplicações de tipos de�nidos;

• Uma convenção para representar as chamadas e respostas remotas de procedimentos.

2.7 Serviços na Web

Os serviços na Web (13) estão fortemente difundidos. Os desenvolvimentos que eramrealizados para aplicações clientes estão migrando para os servidores. É cada vez maiscomum a distribuição de um projeto. Não há mais a necessidade que todo o sistemadesenvolvido esteja contido em um mesmo computador rodando localmente. Além disso ocontexto de trabalhar dinamicamente é de suma importância para o sucesso dos sistemasWeb. Informações devem trafegar pelos mais diversos protocolos e necessitam tambémserem armazenadas em meios seguros para uso futuro. Tendo essa necessidade de setrabalhar dinamicamente com os dados, as páginas, do mesmo modo, devem trabalhardinamicamente. Assim estas páginas e seu contexto são criados assim que uma requisiçãoé feita. Segundo (14) para um serviço na Web ser considerado completo ele deve seguiralguns aspectos:

• Estar disponível na Internet ou em redes privadas;

• Usar um sistema padrão de envio de mensagens XML;

• Não estar atado a nenhum sistema operacional ou linguagem de programação;

• Ser alto descritivo através de uma gramática XML comum;

• Facilmente encontrado via mecanismos simples de busca.

Aproveitar as vantagens que estão associadas aos serviços Web é um dos principaisobjetivos desse projeto. São consideradas vantagens (10) de um sistema Web Service osseguintes pontos:

• Trabalha com padrões abertos, permitindo que componentes escritos em diferenteslinguagens de programação e para diferentes plataformas possam se comunicar;

20

• Promove uma aproximação da programação em módulos, assim múltiplas organiza-ções podem se comunicar utilizando-se do mesmo Web Service;

• São até certo ponto baratos e fáceis de implementar, devido que se utilizam de umainfra-estrutura já existente para transportar informações.

• Pode ser produzida de maneira crescente e incremental, ao invés de o sistema serum bloco único produzido de uma só vez. Isso diminui os custos de adotar o serviçoWeb e pode diminuir o impacto em uma organização pela troca de alguma tecnologiaenvolvida no sistema.

A �gura 3 demonstra as camadas envolvidas em um serviço Web.

Figura 3: Processo serviço Web.

2.7.1 Publicação do Serviço - UDDI (Universal Description, Dis-covery, and Integration)

UDDI é uma especi�cação técnica para publicar e encontrar serviços Web. É um sis-tema que mantém em repositórios de documentos, os quais descrevem os dados referentesao serviço.

2.7.2 Descrição do Serviço - WSDL (Web Service DescriptionLanguage)

Um dos aspectos relevantes de um serviço Web é ser alto descritivo através de umagramática XML comum. Para isso utiliza-se o WSDL, que descreve o serviço em umprotocolo Web adequado. Representa a camada de descrição do serviço. Assim podemestar inclusos nesse arquivo todas as funções disponíveis, informações dos tipos dos dados

21

para todas as mensagens XML, trazendo informações do protocolo especí�co de transporteà ser usado e os endereços onde os serviços estão disponibilizados.

Usando o WSDL, um cliente pode localizar o serviço Web e invocar qualquer dasfunções publicadas. Deste modo após localizar o serviço o cliente veri�ca no arquivo dedescrição do serviço qual interface deve utilizar para se comunicar e quais operações estãodisponíveis ou podem ser tratadas pelo serviço Web.

Um arquivo WSDL possui algumas palavras chaves. Cada palavra chave representauma das diversas con�gurações contidas no arquivo. Suas descrições, segundo (14), se-guem abaixo:

• message - Provê a de�nição da mensagem que será comunicada;

• portType - De�ne a interface das operações de serviço que o Web Service suporta;

• operation - Descreve uma ação permitida pelo Web Service. É o "�lho" deportType ;

• type - De�ne os tipos de dados que a mensagem SOAP contém;

• binding - Especi�ca o protocolo pela qual os nodos transportam as mensagens equal o tipo de codi�cação dos dados;

• port - Especi�ca o endereço para um binding em particular. É um sub-elementodo service ;

• service - Especi�ca a atual localização (URL - Uniform Resource Locator) do Ser-viço Web no servidor.

2.7.3 Mensagens XML

XML tem se consolidado nos últimos anos. Essa ascensão é devido ao fato que esteformato permite a diversos sistemas de computadores compartilhar dados facilmente,independentemente do Sistema Operacional ou Linguagem de Programação. Segundo(10) não seria possível implementar um Sistema Web Services sem o uso de XML, poisos arquivos padrões dos Serviços Web - SOAP, WSDL e UDDI, interagindo na �gura 4 -são baseados em XML.

Os passos da interação seguem abaixo:

22

Figura 4: SOAP, UDDI e WSDL em uma interação Web Service.

1. O cliente chama o registro UDDI para localizar o serviço;

2. O registro aponta ao cliente o documento WSDL;

3. O cliente acessa o documento WSDL;

4. WSDL provê dados para interagir com o serviço;

5. O cliente envia mensagem de requisição SOAP (SOAP request);

6. O serviço Web retorna uma resposta SOAP (SOAP response).

Neste projeto o protocolo utilizado para transporte de dados no formato XML, foio SOAP. Para tanto �zemos uso da plataforma AXIS. O uso de AXIS é importantepara a transmissão de dados em um formato conveniente, aumentando assim a segurançae robustez no transporte de dados, nos diversos momentos onde a comunicação entremódulos é realizada. AXIS é implementação do protocolo SOAP.

2.7.4 Serviço de transporte - HTTP (Hypertext Transfer Proto-col)

Este é um protocolo de solicitação e resposta. É um protocolo que permite aos servi-dores Web e browsers trocarem dados pela Web. O cliente executa uma solicitação, essaé transmitida ao servidor e a resposta retorna ao cliente. Em HTTP é sempre o clienteque inicia uma transação, pois o servidor não está em posição de solicitar algo ao cliente.Desta maneira as conexões HTTP são iniciadas pelo browser do cliente que envia umasolicitação HTTP. HTTP é a opção mais popular para o serviço de transporte. É simples,estável e largamente conhecido.

23

Ele permite mensagens SOAP serem encapsuladas em mensagens HTTP. Isto facilitaa integração de aplicações remotas. Mas infelizmente como cita (14, CERAMI) istoaumenta o número de concessões que devem ser feitas no aspecto da segurança.

2.8 Ferramentas

Para a implementação desse projeto foram utilizados tecnologias para serviços Web, erealizado com baixo custo �nanceiro, aproveitando-se ao máximo a infra-estrutura já exis-tente da Internet, usando-se para tal, softwares de livre utilização. Seguem as ferramentascom relevância ao projeto :

2.8.1 Eclipse (3)

É um projeto de fonte aberta, focalizado a fornecer uma plataforma extensível dedesenvolvimento e estruturas de aplicação para a construção dos softwares. O Eclipsefornece as ferramentas e as estruturas que medem o ciclo de vida do desenvolvimentodo software, incluindo a sustentação para modelar, ambientes em desenvolvimento emJava, C/C++, além de permitir testar e medir desempenho, realizar aplicações clientes,inteligência de negócio e o desenvolvimento embarcado. Outro fator positivo é a grandevariedade de plugins de auxilio ao desenvolvimento dos mais diversos tipos de projetos.Neste projeto em particular foram utilizados os plugins WST (15) e CVS, já incluído naversão utilizada (eclipse 3.1), facilitando o controle de versões e o desenvolvimento emequipe.

A visão do plugin WST é estender a plataforma Eclipse, dando suporte a construçãode aplicações Web multi-camadas. WST vem a facilitar bastante a vida do programadorna hora de desenvolver um projeto Web Service. Ele possibilita diversas facilidades:

• Desenvolver e publicar páginas HTML(HyperText Markup Language);

• Desenvolver páginas Web baseadas em JavaScript e CSS(Cascading Style Sheets);

• Gerar um applet para um dado server HTTP;

• Desenvolver SQL(Structured Query Language) statements e gerar páginas Web apartir de chamadas à banco de dados;

• Desenvolver XSD e XSLT para XML baseado em páginas Web Services;

24

• Desenvolver e publicar esquema WSDL em registros UDDI;

• Explorar registros UDDI e dinamicamente testar os serviços Web via WSDL;

• Testar Web Services para compilação WS-I.

2.8.2 Apache Tomcat (4)

É o recipiente de Servlet/JSP (contentor servlet/JSP, chamado antigamente de má-quina servlet no início da tecnologia servlet) que é usado para execução de servlets e dastecnologias de Java Page Servers (JSP). No corrente trabalho foi utilizado Apache Tomcat5.5.x;

2.8.3 Apache Axis (5)

É uma implementação do SOAP (16) ("Protocolo Simples de Acesso ao Objeto")submetido pela W3C (17);

2.8.4 Apache Struts (6)

O objetivo desta ferramenta é prover um "framework" de utilização pública para aconstrução de projetos Web usando JAVA. Struts possui como característica um controle�exível de camadas baseado nas tecnologias padrões como Java Servlets, JSP, JavaBe-ans, XML e os diversos pacotes da Jakarta amplamente utilizadas nesse projeto. Esta éuma ferramenta que disponibiliza um amplo ambiente para o desenvolvimento das apli-cações Web, baseado em padrões de design. O Struts (18), busca aproximar o SistemaDesenvolvido da Arquitetura Modelo 2, uma variação do clássico modelo MVC (Model-View-Controller). Esses dois modelos se diferenciam principalmente na localização naqual o montante de processamento de solicitações ("request") é executado. No modeloclássico, observado na �gura 5, todo o processo de recebimento de solicitações e respostados mesmos aos clientes é realizado pelas páginas JSP.

Já na Arquitetura Modelo 2, observado na �gura 6, trata as solicitações combinando ouso de JSP e servlets. Assim ambas tecnologias são combinadas, utilizando JSP para gerara camada de apresentação e os servlets para executar o intenso processo de solicitações. Énesse momento que os servlets atuam como controlador, �cando responsável por processaros pedidos, a criação dos "Beans" ou objetos utilizados pelas páginas JSP, além de decidir,conforme as ações dos usuários, qual página JSP deve receber a solicitação corrente. Assim

25

Figura 5: Clássico modelo MVC (Model-View-Controller).

Struts possui seu próprio controlador ("Controller") juntamente com outras tecnologiaspara prover o "Model" e a "View". Para o "Model" Struts pode interagir com tecnologiaspadrões de acesso aos dados, por exemplo JDBC, ou até mesmo fazer uso de outrastecnologias como a utilizada nesse projeto, o Hibernate. Para a "View" Struts trabalhacom JavaServer Pages (JSP), também utilizado nesse projeto.

Figura 6: Arquitetura Modelo 2

Uma aplicação Web utiliza um descritor de distribuição de serviços para inicializar osrecursos como servlets e taglibs. Possui o formato XML e possui o nome "WEB.XML".Struts tem o seu próprio arquivo de con�guração para inicializar seus recursos. Entre elestemos ActionForms para receber as entradas dos usuários, ActionMappings para direcio-nar as ações no lado do servidor e ActionForwards para selecionar as páginas utilizadaspara interação com os usuários.

26

Optou-se por utilizar o Struts devido toda as facilidades que ele proporciona paratrabalhar com grande número de páginas que estão constantemente sofrendo ações porparte dos usuários que tem acessos a elas.

2.8.5 Hibernate (7)

É uma poderosa ferramenta de persistência objeto/relacional e execução de querysem JAVA. Permite utilizar as vantagens da programação orientada a objetos, como porexemplo associação, herança, polimor�smo e composição. Fica entre o aplicativo e obanco de dados relacional, deixando o desenvolvedor livre para o problema de negócioem suas mãos. Facilita assim a implantação do projeto Web Services multi-camadas.Além disso facilita a troca do Sistema Gerenciador de Banco de Dados (SGBD),desde quealgumas regras sejam seguidas, como não utilizar chamadas SQL nativa ou outro recursonão suportado pelo SGBD substituto. Há um arquivo de con�guração que permite a trocadas propriedades do sistema de persistência utilizado. Esse arquivo possui a con�guraçãodo driver de conexão, o dialeto do SGBD, mapeamento de tabelas, entre outros. Todasas especi�cações dessa ferramenta podem ser encontradas em (11);

Figura 7: Visão alto nível da arquitetura Hibernate utilizada.

Este diagrama (�gura 7) mostra o Hibernate acessando o banco de dados e os arquivosde mapeamento (con�guração) para prover serviços de persistência (e objetos persistentes)para a aplicação.

27

2.8.6 MySql(8)

Desenvolve e disponibiliza no mercado um conjunto de ferramentas, de desempe-nho elevado, de base de dados. A versão utilizada nesse projeto foi MySQL 4.1.11-Debian_4sarge2-log. Para acesso cliente ao MySql utilizamos phpMyAdmin (19) versão2.6.2. Além disso, foi utilizado JDBC (20) (Java Database Connectivity (21)). Assim épossível o uso de declarações SQL, sendo possível a utilização de vários tipos de banco dedados.

28

3 Sistema Proposto

Este capítulo apresenta o sistema proposto e como este foi realizado. Consciente de queo sistema atual de marcação de consulta apresenta alguns problemas como centralizaçãodo serviço, ocasionando �las, propõe-se reformulá-lo. Esse projeto tem como principalobjetivo descentralizar a marcação de consultas dos Hospitais. Busca possibilitar que oagendamento de consultas seja feito de outras localidades além do próprio hospital, bemcomo permitir que de um mesmo local se possa agendar consultas em um conjunto dehospitais mais abrangente e disponibilizar mais informações aos pacientes.

A construção do sistema consiste em três etapas:

• Levantamento de Requisitos: Levantamento das necessidades, para a construção deum sistema que venha minimizar os problemas existentes.

• Modelagem: Interpretação dos requisitos levantados, bem como sua tradução emespeci�cações do sistema.

• Implementação: Conversão das especi�cações do sistema em código.

3.1 Levantamento de Requisitos - Casos de Uso

• Marcar consultas: Agendar uma consulta disponível para um paciente. Requisitos:consulta disponível, paciente cadastrado.

• Desmarcar consultas: Desmarcar uma consulta previamente agendada, tornando-adisponível novamente. Após obter uma consulta agendada o usuário tem a opçãode excluí-la. Requisitos: consulta previamente agendada.

• Veri�car consultas disponíveis: Veri�car as consultas disponíveis para agendamentoem um determinado hospital, para determinado médico ou especialidade. Requisi-tos: CRM do médico para pesquisas por médico, especialidade para pesquisas porespecialidade, hospital.

29

• Pesquisar por médicos: Veri�car os médicos que trabalham em determinado hospital,por nome ou especialidade. Requisitos: nome parcial ou especialidade do médico;hospital

• Pesquisar por consultas: Veri�car as consultas agendadas para um paciente ou mé-dico especi�co. Requisitos: número de inscrição do paciente para pesquisa porpaciente, CRM do médico para pesquisa por médico.

• Cadastrar hospitais: Cadastrar hospital para futura marcação de consultas. Requi-sitos: nome, endereço.

• Cadastrar pacientes: Cadastrar paciente possibilitando que este marque consultas.Requisitos: nome, rua, número, complemento, bairro, cidade, estado, pai, mãe,cônjuge, empresa, nacionalidade, naturalidade, estado civil, nascimento, sexo.

• Cadastrar usuários: Cadastrar usuário responsável pela manipulação do sistema.Requisitos: nome, endereço, telefone.

3.2 Modelagem e Implementação

Seguindo o levantamento de requisitos foram identi�cados as entidades e relaciona-mentos observados na �gura 8. Os médicos atendem nos hospitais e esta associaçãopermite que consultas sejam marcadas pelos usuários para os pacientes cadastrados.

Figura 8: Diagrama entidade relacional do Sistema de Agendamento de Consultas.

30

Após levantados os requisitos surgiram duas vertentes principais para a arquiteturado sistema. Na primeira vertente teria-se uma con�guração centralizada, onde o Sistemarodaria completamente no servidor. Na segunda o sistema seria composto de módulosdistribuídos (modular) entre o servidor e os hospitais.

3.2.1 Confrontando Vertentes

• Na con�guração modular há a possibilidade de se reaproveitar parte do sistemaatual, tais como bancos de dados e servidores. O aproveitamento em um sistemacentralizado será muito menor.

• Em contrapartida um sistema centralizado seria mais rápido, uma vez que, todo osistema estaria local e não se teria o trafego da rede.

• Na con�guração modular a inserção de novos hospitais é facilitada uma vez quecon�guram um módulo separado com baixo acoplamento ao sistema como um todo.

Analisando essas duas possibilidades chegou-se a conclusão de que a con�guraçãomodular se enquadrava melhor à proposta de descentralizar e foi a utilizada nesse trabalho.

3.3 Distribuição dos módulos

Neste tópico iremos apresentar como foi dividido o sistema. O sistema possui 3(três)módulos. São eles:

• Módulo Hospital - Responsável pelos casos de uso referentes as consultas e médicos;

• Módulo de Apresentação - Responsável pela redirecionamento das requisições aosistema;

• Módulo SUS - Responsável pelos casos de uso referentes aos pacientes;

3.3.1 Módulo Hospital

O módulo Hospital tem como missão a gestão de todas as consultas e médicos. Ficaa cargo de cada hospital como esse controle será feito, pois sua interligação é realizadacomo um serviço Web. Para mostrar a viabilidade do sistema foi implementado umserviço Web e vários hospitais �ctícios. Para cada hospital foi criado um banco de dados

31

com suas respectivas informações. Por se tratar de um sistema modular a inserção denovos hospitais é altamente facilitada, exigindo apenas que cada hospital implemente oseu serviço Web.

3.3.1.1 Utilizando Hibernate

O uso desta ferramenta é vasto. Para demonstrar um pouco do uso dessa ferramenta,tomou-se como base o módulo Hospital. Ele possui as seguintes classes JavaBeans paraserem mapeados através do Hibernate: Consulta.java, Medico.java e Paciente.java. Temosabaixo o arquivo de con�guração do Hibernate no módulo Hospital (�gura 9) com asseguintes con�gurações:

Figura 9: Arquivo de con�guração do Hibernate no módulo Hospital.

• Driver de conexão - com.mysql.jdbc.Driver

• O "dialeto" utilizado para comunicar-se com o banco - org.hibernate.dialect.MySQLDialect

• O endereço (URL) do banco - jdbc:mysql://localhost:3306/bdhospital

• Número de conexões iniciais - 5

• Login para conexão ao banco - tcc

• Senha para conexão ao banco - tcc

32

• Indicação dos arquivos responsáveis pelo mapeamento objeto/relacional para as clas-ses Paciente.java, Consulta.java e Medico.java .

<mapping resource="beans/Paciente.hbm.xml"/><mapping resource="beans/Consulta.hbm.xml"/><mapping resource="beans/Medico.hbm.xml"/>

A seguir a �gura 10 de um dos mapeamentos objeto/relacional para a classe Con-sulta.java e o banco de dados "bdhospital", onde são mapeadas as propriedades id, data,hora, paciente, medico da classe JavaBeans para as colunas "ID","DATA","HORA","PACIENTE"e "MEDICO" da tabela "CONSULTAS".

Figura 10: Arquivo de mapeamento objeto/relacional para a classe Consulta.java.

O mesmo esquema de mapeamento é feito para os outros módulos e seus respecti-vos bancos de dados. Agora iremos explicitar um método de acesso ao banco de dados"bdhospital" utilizando hibernate no módulo Hospital.

Abaixo um rápida explicação do itens encontrados na �gura 11:

• session - objeto de vida curta representando a comunicação entre a aplicação e osdados persistentes;

• transaction - objeto de vida curta representando uma transação;

• session.get(Consulta.class, consulta) - busca a classe consulta no banco a partir doidenti�cador consulta;

33

Figura 11: Método de acesso ao banco de dados utilizando Hibernate.

• setPaciente(paciente) - setando o paciente que terá consulta marcada;

• session.saveOrUpdate(paciente) - salvando o paciente no banco de dados;

• transaction.commit() - comitando a transação;

• session.close() - fechando a sessão;

Segue a representação do banco de dados bdhospital.

3.3.1.2 Banco de Dados bdhospital

O banco de dados bdhospital é composto por três tabelas: CONSULTAS, MEDI-COS e PACIENTES. A tabela CONSULTAS se relaciona com as tabelas MEDICOS ePACIENTES. Cada Hospital irá possuir um banco de dados próprio com suas consultas,médicos e, caso considere adequado, os pacientes com consulta marcada. A �gura 12representa o banco.

Figura 12: Modelagem do banco de dados bdhospital.

34

3.3.2 Módulo SUS

A idéia do módulo SUS surgiu do problema de onde seriam armazenados os dados dospacientes. Duas possibilidades foram levantadas:

• Caso 1 - Os dados poderiam ser mantidos em cada hospital, nos quais os pacientespossuissem consulta.

• Caso 2 - Os dados dos pacientes poderiam ser mantidos em um banco de dadosúnico.

Alguns pontos requerem uma análise para escolha adequada da melhor opção:

• RedundânciaCaso 1 - No caso de pacientes possuírem consultas em mais de um hospital seus

dados estariam replicados em mais de um banco de dados.Caso 2 - Não há redundância, pois o cadastro é único.

• SincroniaCaso 1 - Ao modi�car seus dados em um dos hospitais em que esteja cadastrado

estes �cariam diferentes dos dados presentes nos outros hospitais.Caso 2 - Não há problema de sincronia, pois o cadastro é único.

• Trafego de RedeCaso 1 - Para corrigir o problema de sincronia é gerado muito tráfego de rede,

pois os dados devem ser enviados a todos os hospitais para correta atualização.Caso 2 - O trafego de rede é menor, pois os dados estão localizados em apenas

um local.

• Novo cadastroCaso 1 - Necessita de novo cadastro para o paciente em cada hospital que deseje

marcar consulta.Caso 2 - O cadastro é realizado uma única vez.

• Tolerância a falhas

35

Caso 1 - Em caso de impossibilidade de acesso a um dos hospitais, outro hospitalque possua o cadastro do paciente não será afetado. A consulta não poderá sermarcada no hospital inacessível, mas nos outros isto continua sendo possível.

Caso 2 - Em caso de impossibilidade de acesso ao banco único nenhum hospitalpoderá marcar consulta.

Após análise dos prós e contras de cada caso escolheu-se a segunda opção. Apesardessa opção aparentemente tornar-se um gargalo isto não ocorre. O gargalo na verdadeestaria no módulo apresentação, pela alta taxa de solicitações, ou no módulo hospital, de-vido ao grande tráfego de dados. Já o problema de tolerância a falhas pode ser contornadocom replicação dos dados em um servidor de reserva.

O módulo SUS gerencia então os dados dos pacientes, através de um cadastro único.Para acesso pelos outros módulos foi implementado um sistema de serviço Web, buscandotodas as vantagens que os serviços Web proporcionam. Devido ao fato de ser modular econstituir-se num serviço Web outros sistemas poderão fazer uso de suas funcionalidades.Os hospitais conforme sua preferência podem manter uma cópia dos dados atualizadosdos pacientes ou simplesmente armazenar os números de registro no SUS dos pacientes.

3.3.2.1 Utilizando Serviços Web

Todos os módulos implementam seu serviço Web. Para mostrar como isso é feito eevitar repetições desnecessárias o módulo SUS é usado como base. Como dito na seção 2.7,WSDL descreve o serviço em um protocolo adequado, no caso desse projeto, no protocoloSOAP. A seguir alguns trechos da descrição do serviço do módulo SUS são apresentados.

Figura 13: Nome e Localização do serviço no arquivo SUS.wsdl .

Esse trecho do arquivo SUS.wsdl, presente na �gura 13, indica que o serviço SUS podeser encontrado em:

http://localhost:8080/SistemaSus/services/SUS/.

36

Caso algum cliente deseje acessar o módulo SUS para realizar alguma de suas operaçõesdisponíveis, poderá, acessando o arquivo SUS.wsdl, veri�car onde o serviço está disponi-bilizado.

Figura 14: Uma das diversas operações publicadas no arquivo SUS.wsdl.

Neste outro trecho do arquivo SUS.wsdl, presente na �gura 14, uma das diversasoperações disponíveis é apresentada. No arquivo WSDL a interface de comunicação e seusparâmetros estão presentes. A seguir nas �guras 15 e 16 veri�ca-se os pacotes transmitidosno formato SOAP, após resposta e solicitação para a chamada do método getMedicos(3).

Figura 15: Resposta SOAP transmitida via HTTP.

Todos os médicos com especialidade 3 serão buscados. Neste projeto foi especi�cadoque especialidade 3 corresponde a especialidade oftalmologista.Após a requisição ter sidofeita e o serviço disponibilizado é enviado uma resposta SOAP ao requisitor, contendotodos os médico especialistas em oftalmologia. Observe que o formato na qual os arquivosestão escritos e foram enviados é XML.

37

Figura 16: Requisição SOAP transmitida via HTTP.

Os pacotes SOAP podem ser encapsulados em diversos protocolos de transporte.HTTP é utilizado nesse trabalho, por tratar-se de um protocolo simples e popular. A�gura 17 apresenta o cabeçalho do encapsulamento SOAP em uma mensagem HTTP.

Figura 17: Cabeçalho HTTP de uma requisição SOAP encapsulada

A seguir uma representação do banco de dados bdsus é apresentada.

3.3.2.2 Banco de Dados bdsus

O banco de dados bdsus é composto por uma tabela PACIENTES com os dadosobservados no levantamento de requisitos. Esse banco de dados pode estar localizado noservidor do sistema ou num servidor especí�co(servidor do SUS). A �gura 18 representao banco e sua tabela PACIENTES.

Figura 18: Modelagem do banco de dados bdsus.

38

3.3.3 Módulo de Apresentação

O módulo de Apresentação é responsável pelo redirecionamento das chamadas dosusuários para os hospitais. Para tal ele mantém armazenado em um banco de dados asURLs dos hospitais, que implementam a interface de�nida para os serviços Web. Con-forme as chamadas dos usuários ele redireciona para o Hospital alvo ou busca entre osHospitais cadastrados a melhor opção de agendamento de consulta, por exemplo a con-sulta disponível em período mais próximo.

3.3.3.1 Utilizando Struts

Devido a necessidade de redirecionamento das chamadas dos usuários para os hospitaise selecionar as páginas de exibição corretas, este módulo trabalha com a ferramenta Strutspara facilitar este processo. Struts utiliza seu próprio descritor de distribuição de serviçospara inicializar os recursos necessários. Este arquivo contém as ActionForms para receberas entradas dos usuários, ActionMappings para direcionar as ações no lado do servidor eActionForwards para selecionar as páginas utilizadas para interação com os usuários.

A seguir pode-se visualizar na �gura 19 a URL de redirecionamento ("/pacientes"),a classe de destino ("PacientesAction.java"), o parâmetro ("acao") para a escolha dométodo a ser utilizado e as paginas JSP ("cadastraPaciente.jsp, listaPaciente.jsp, buscar-Paciente.jsp") que estão mapeadas para utilização posterior.

Figura 19: Trecho do arquivo de con�guração do Struts "struts-con�g.xml".

Após o mapeamento das ações possíveis basta que as páginas JSP realizem a devidachamada à ação desejada. O método que processa a busca de pacientes na classe Paciente-sAction.java está representado na �gura 20. Este método busca pacientes através do nomeou do cartão SUS conforme o parâmetro "opcao" e através de chamadas aos métodos da

39

classe SUSProxy. SUSProxy faz as chamadas ao Serviço SUS, extrai as informações dospacotes SOAP e as converte em objetos através da API do AXIS.

Figura 20: Método da classe destino "PacientesAction.java".

3.3.3.2 Banco de Dados bdagendador

O banco de dados bdagendador é composto por duas tabelas: HOSPITAIS e USUA-RIOS. A tabela HOSPITAIS corresponde aos hospitais cadastrados no sistema. A tabelaUSUARIOS identi�ca os usuários responsáveis e com permissão para logar no sistemae executar as operações disponíveis. Para autenticação o usuário tem que estar devida-mente cadastrado com login e senha. Esse banco de dados está localizado no servidor dosistema. A �gura 21 representa o banco.

Figura 21: Modelagem do banco de dados bdagendador.

40

3.3.4 Considerações do sistema

O sistema apresentado possibilita a descentralização do agendamento de consultas,uma vez que vários usuários podem acessar o sistema, ao mesmo tempo, de diversoslugares. Permite assim que os pacientes agendem suas consultas para os hospitais deoutros locais além dos próprios hospitais. O acesso pode ser realizado através da URLem um browser pelo usuário cadastrado (login e senha) no sistema. O paciente irá entãose dirigir aos locais com máquinas disponíveis e usuários cadastrados para solicitar amarcação de sua consulta. O sistema poderia, por exemplo, ser acessado dos postos desaúde da região e manipulados no browser de um computador conectado por funcionáriosdevidamente treinados e cadastrados.

Figura 22: Estrutura utilizada no sistema como um todo.

A �gura 22 nos mostra como a descentralização é feita. As solicitações são realizadaspelos usuários do sistema, funcionários de postos de saúde por exemplo, repassando asrequisições para os hospitais ou para o módulo SUS. Assim consultas podem ser agendadasde um único local (posto de saúde, hospital, etc.) para vários hospitais a partir da URLdo sistema. O Sistema Agendador presente no centro da �gura trata-se do Módulo deApresentação, responsável pelo redirecionamento das chamadas realizadas pelos outros

41

módulos.O sistema está então con�gurado em três módulos, todos eles conectados através de

serviços Web, todos utilizam hibernate para mapeamento O/R e o módulo de apresentaçãoutiliza Struts como framework para facilitar a con�guração do sistema no padrão MVC.

42

4 Conclusões e trabalhos futuros

É apresentada a conclusão do projeto e logo em seguida algumas sugestões de trabalhosfuturos.

4.1 Conclusão Final

O presente trabalho mostra a viabilidade de se construir um sistema real integrado,para um sistema de agendamento de consultas, com base nas tecnologias de serviçosWeb. Ele representa uma base para uma possível solução de um dos problemas sociaisvividos pela comunidade carente das grandes cidades brasileiras: as �las para marcaçãode consultas do SUS (Sistema Único de Saúde).

Com as tecnologias disponíveis no presente, com a velocidade do tráfego de infor-mações, não é mais aceitável que uma pessoa tenha que se locomover vários quilometrospara marcar uma consulta. Distribuindo a marcação de consultas diminui-se o tempo deespera nas �las, de locomoção e o gasto com locomoção para se chegar em um dos diversoshospitais disponíveis, muitas vezes sem a garantia de marcação da consulta desejada.

Um sistema real poderá ser implantado, utilizando apenas ferramentas livres, e aindaser de grande valia para a sociedade, minimizando os problemas visualizados e constatadospelo Ministério da Saúde (22).

4.2 Trabalhos Futuros

• Enquadrar os dados de pacientes conforme o padrão do SUS.

• Inserção de segurança ao Serviço Web.

• Possibilitar o uso do sistema em centrais moveis de marcação de consultas.

• Melhorar a interface grá�ca para o protótipo.

43

Referências

1 DEITEL H. M. DEITEL, P. J. Java Como Programar. 4. ed. Porto Alegre:BOOKMAN, 2003. 1386 p.2 SUN. JAVA. [S.l.]: URL:http://java.sun.com/, Fevereiro 2006. Internet.3 ECLIPSE. [S.l.]: URL:http://www.eclipse.org/, Outubro 2005. Internet.4 APACHE. Tomcat. [S.l.]: URL:http://jakarta.apache.org/tomcat/, Outubro2005. Internet.5 APACHE. AXIS. [S.l.]: URL:http://ws.apache.org/axis/, Outubro 2005. Internet.6 APACHE. STRUTS. [S.l.]: URL:http://struts.apache.org/, Outubro 2005.Internet.7 BAUER CHRISTIAN. KING, G. Hibernate em Ação O Guia De�nitivo para oHibernate. 1 ed.. ed. Rio de Janeiro: Ciência Moderna, 2005. 560 p.8 MYSQL. [S.l.]: URL:http://www.mysql.com/, Outubro 2005. Internet.9 KURNIAWAN, B. Java para a Web com Servlets, JSP e EJB. Rio de Janeiro: CiênciaModerna Ltda, 2002. 808 p.10 DEITEL, H. M. e. a. Web Services A technical Introduction. New Jersey: PrenticeHall, 2003. 494 p.11 JBOSS. Hibernate. [S.l.]: URL:http://http://www.hibernate.org/, Outubro2005. Internet.12 HOUGLAND DAMON. TAVISTOCK, A. Core JSP. [S.l.]: Prentice Hall, 2001.391 p.13 GALBRAITH, B. e. a. Professional Java Web Services. 1 ed. ed. [S.l.]: Wrox Press,2002. 575 p.14 CERAMI, E. Web Services Essencials. 1. ed. Tókio: O'Reilly, 2002. 304 p.15 ECLIPSE. WST. [S.l.]: URL:http://eclipse.org/webtools/wst/main.xml,Outubro 2005. Internet.16 APACHE. SOAP. [S.l.]: URL:http://ws.apache.org/soap/, Outubro 2005.Internet.17 W3C. World Wide Web Consortium. [S.l.]: URL:http://www.w3.org/TR/soap/,Outubro 2005. Internet.

44

18 HIGTOWER, R. Jakarta-Struts Live. Colorado: SourceBeat, 2004. 273 p.19 PHPMYADMIN. [S.l.]: URL:http://www.phpmyadmin.net/, Outubro 2005.Internet.20 SUN. JDBC. [S.l.]: URL:http://java.sun.com/products/jdbc/, Outubro 2005.Internet.21 ANSELMO, F. Tudo o que você queria saber sobre JDBC. Florianópolis: VisualBooks, 2001. 200 p.22 SAúDE, M. da. QUALISUS. [S.l.]: URL:http://www.saude.gov.br, Fevereiro 2006.Internet.

45

5 Anexos

5.1 Módulo de Apresentação

5.1.1 SistemaAgendador/JavaSource/actions/Gerenciador.java

package actions;

import javax.servlet.ServletException;

import org.apache.struts.action.ActionServlet;

import bd.hibernate.Banco;

public class Gerenciador extends ActionServlet{@Overridepublic void init() throws ServletException {

super.init ();Banco.getInstance();

}}

46

5.1.2 SistemaAgendador/JavaSource/actions/HospitaisAction.java

package actions;

import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction;

import service.HospitalProxy;

import bd.hibernate.tabelas.Hospitais;import beans.Hospital;

public class HospitaisAction extends DispatchAction {

Hospitais hospitais = Hospitais.getInstance();HospitalProxy serviceHospital = new HospitalProxy();

public ActionForward cadastro(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

return actionMapping.�ndForward("telaCadastro");}

public ActionForward cadastrar(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

Hospital hospital = new Hospital();BeanUtils.copyProperties(hospital, actionForm);hospitais.set(hospital);

47

return actionMapping.�ndForward("telaCadastro");}

public ActionForward listar(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

request.setAttribute("hospitais", hospitais.get());return actionMapping.�ndForward("listar");

}

public ActionForward mostrar(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

int hospital = Integer.valueOf(request.getParameter("hospital"));Hospital hospital2 = hospitais.get(hospital);serviceHospital.setEndpoint(hospital2.getUrl());System.out.println(hospital2.getNome());return actionMapping.�ndForward("");

}}

48

5.1.3 SistemaAgendador/JavaSource/actions/MedicosAction.java

package actions;

import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;

import service.HospitalProxy;;

public class MedicosAction {

HospitalProxy proxy = new HospitalProxy();

public ActionForward busca(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

return actionMapping.�ndForward("telaBusca");}

public ActionForward buscar(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

request.setAttribute("pacientes",proxy.getMedicos(request.getParameter("nome")));return actionMapping.�ndForward("listar");

}

}

49

5.1.4 SistemaAgendador/JavaSource/actions/PacientesAction.java

package actions;

import java.util.LinkedList;

import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.DynaActionForm;import org.apache.struts.actions.DispatchAction;

import beans.Paciente;

import service.SUSProxy;import uteis.ConversorPaciente;

public class PacientesAction extends DispatchAction {

SUSProxy proxy = new SUSProxy();

public ActionForward cadastro(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

return actionMapping.�ndForward("telaCadastro");}

public ActionForward busca(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

return actionMapping.�ndForward("telaBusca");}

50

public ActionForward cadastrar(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

ConversorPaciente paciente = new ConversorPaciente();BeanUtils.copyProperties(paciente, actionForm);System.out.print(paciente.getNome());proxy.cadastrarPaciente(paciente.converter());return actionMapping.�ndForward("telaCadastro");

}

public ActionForward buscar(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

DynaActionForm form = (DynaActionForm) actionForm;String opcao = form.getString("opcao");if("NOME".equals(opcao))

request.setAttribute("pacientes", proxy.buscar(form.getString("nome")));else{

LinkedList<Paciente> pacientes = new LinkedList<Paciente>();pacientes.add(proxy.getPaciente(Long.valueOf(form.getString("nome"))));request.setAttribute("pacientes", pacientes);

}return actionMapping.�ndForward("listar");

}

public ActionForward mostrar(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

request.getSession().setAttribute("paciente_", new ConversorPaciente().converter(proxy.getPaciente(Long.valueOf(request.getParameter("paciente")))));return actionMapping.�ndForward("telaCadastro");

}}

51

5.1.5 SistemaAgendador/JavaSource/actions/UsuariosAction.java

package actions;

import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.DynaActionForm;import org.apache.struts.actions.DispatchAction;

import bd.hibernate.tabelas.Usuarios;import beans.Usuario;

public class UsuariosAction extends DispatchAction {

Usuarios usuarios = Usuarios.getInstance();

public ActionForward cadastro(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

return actionMapping.�ndForward("telaCadastro");}

public ActionForward cadastrar(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest request,HttpServletResponse response) throws Exception {

Usuario usuario = new Usuario();BeanUtils.copyProperties(usuario, actionForm);usuarios.set(usuario);return actionMapping.�ndForward("telaCadastro");

}}

52

5.1.6 SistemaAgendador/JavaSource/actions/UtilitariosAction.java

package actions;

public class UtilitariosAction {}

53

5.1.7 SistemaAgendador/JavaSource/bd/hibernate/Banco.java

package bd.hibernate;

import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Con�guration;

public class Banco {

private static Banco banco;

SessionFactory sessionFactory;

private Banco() {sessionFactory = new Con�guration().con�gure().buildSessionFactory();

}

public static Banco getInstance() {if (banco == null)

banco = new Banco();return banco;

}

public Session getSession() {return sessionFactory.openSession();

}

}

54

5.1.8 SistemaAgendador/JavaSource/bd/hibernate/tabelas/Hospitais.java

package bd.hibernate.tabelas;

import java.util.List ;

import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;

import bd.hibernate.Banco;import beans.Hospital;

public class Hospitais {

private static Hospitais hospitais ;private Banco banco;

public static Hospitais getInstance() {if (hospitais == null)

hospitais = new Hospitais();return hospitais;

}

private Hospitais(){banco = Banco.getInstance();

}

public void set(Hospital hospital){Session session = banco.getSession();Transaction tx = session.beginTransaction();session .save(hospital );tx.commit();session . close ();

}

55

public List<Hospital> get() {Session session = banco.getSession();Transaction tx = session.beginTransaction();Query query = session.createQuery("from Hospital order by nome asc");List<Hospital> hospitais = query.list ();tx.commit();session . close ();return hospitais;

}

public Hospital get(int hospital) {Session session = banco.getSession();Transaction tx = session.beginTransaction();Hospital h = (Hospital) session .get(Hospital.class, hospital );tx.commit();session . close ();return h;

}

/∗∗∗ @param args∗/public static void main(String[] args) {

// TODO Auto−generated method stub

}

}

56

5.1.9 SistemaAgendador/JavaSource/bd/hibernate/tabelas/Usuarios.java

package bd.hibernate.tabelas;

import java.util.List ;

import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;

import bd.hibernate.Banco;import beans.Hospital;import beans.Usuario;

public class Usuarios {

private static Usuarios usuarios;private Banco banco;

public static Usuarios getInstance() {if (usuarios == null)

usuarios = new Usuarios();return usuarios;

}

private Usuarios(){banco = Banco.getInstance();

}

public void set(Usuario usuario){Session session = banco.getSession();Transaction tx = session.beginTransaction();session .save(usuario);tx.commit();session . close ();

}

57

public List<Usuario> get() {Session session = banco.getSession();Transaction tx = session.beginTransaction();Query query = session.createQuery("from Usuario");List<Usuario> usuarios = query.list();tx.commit();session . close ();return usuarios;

}

public Usuario get(int usuario) {Session session = banco.getSession();Transaction tx = session.beginTransaction();Usuario u = (Usuario) session.get(Usuario.class, usuario);tx.commit();session . close ();return u;

}

/∗∗∗ @param args∗/public static void main(String[] args) {

// TODO Auto−generated method stub

}

}

58

5.1.10 SistemaAgendador/JavaSource/beans/Consulta.java

/∗∗∗ Consulta.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package beans;

public class Consulta implements java.io.Serializable {private java.lang.String data;private java.lang.String hora;private long id;private beans.Medico medico;private beans.Paciente paciente;

public Consulta() {}

public Consulta(java.lang.String data,java.lang.String hora,long id,beans.Medico medico,beans.Paciente paciente) {this.data = data;this.hora = hora;this. id = id;this.medico = medico;this.paciente = paciente;

}

/∗∗

59

∗ Gets the data value for this Consulta.∗∗ @return data∗/public java.lang.String getData() {

return data;}

/∗∗∗ Sets the data value for this Consulta.∗∗ @param data∗/public void setData(java.lang.String data) {

this.data = data;}

/∗∗∗ Gets the hora value for this Consulta.∗∗ @return hora∗/public java.lang.String getHora() {

return hora;}

/∗∗∗ Sets the hora value for this Consulta.∗∗ @param hora∗/public void setHora(java.lang.String hora) {

60

this.hora = hora;}

/∗∗∗ Gets the id value for this Consulta.∗∗ @return id∗/public long getId() {

return id;}

/∗∗∗ Sets the id value for this Consulta.∗∗ @param id∗/public void setId(long id) {

this. id = id;}

/∗∗∗ Gets the medico value for this Consulta.∗∗ @return medico∗/public beans.Medico getMedico() {

return medico;}

/∗∗

61

∗ Sets the medico value for this Consulta.∗∗ @param medico∗/public void setMedico(beans.Medico medico) {

this.medico = medico;}

/∗∗∗ Gets the paciente value for this Consulta.∗∗ @return paciente∗/public beans.Paciente getPaciente() {

return paciente;}

/∗∗∗ Sets the paciente value for this Consulta.∗∗ @param paciente∗/public void setPaciente(beans.Paciente paciente) {

this.paciente = paciente;}

private java.lang.Object __equalsCalc = null;public synchronized boolean equals(java.lang.Object obj) {

if (!( obj instanceof Consulta)) return false;Consulta other = (Consulta) obj;if (obj == null) return false;if (this == obj) return true;if (__equalsCalc != null) {

62

return (__equalsCalc == obj);}__equalsCalc = obj;boolean _equals;_equals = true &&

((this.data==null && other.getData()==null) ||(this.data!=null &&this.data.equals(other.getData()))) &&

((this.hora==null && other.getHora()==null) ||(this.hora!=null &&this.hora.equals(other.getHora()))) &&

this. id == other.getId() &&((this.medico==null && other.getMedico()==null) ||(this.medico!=null &&this.medico.equals(other.getMedico()))) &&

((this.paciente==null && other.getPaciente()==null) ||(this.paciente!=null &&this.paciente.equals(other.getPaciente ())));

__equalsCalc = null;return _equals;

}

private boolean __hashCodeCalc = false;public synchronized int hashCode() {

if (__hashCodeCalc) {return 0;

}__hashCodeCalc = true;int _hashCode = 1;if (getData() != null) {

_hashCode += getData().hashCode();}if (getHora() != null) {

_hashCode += getHora().hashCode();}

63

_hashCode += new Long(getId()).hashCode();if (getMedico() != null) {

_hashCode += getMedico().hashCode();}if (getPaciente() != null) {

_hashCode += getPaciente().hashCode();}__hashCodeCalc = false;return _hashCode;

}

// Type metadataprivate static org.apache.axis. description .TypeDesc typeDesc =

new org.apache.axis.description.TypeDesc(Consulta.class, true);

static {typeDesc.setXmlType(new javax.xml.namespace.QName("http://beans", "Consulta"));org.apache.axis. description .ElementDesc elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("data");elemField.setXmlName(new javax.xml.namespace.QName("", "data"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("hora");elemField.setXmlName(new javax.xml.namespace.QName("", "hora"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("id");elemField.setXmlName(new javax.xml.namespace.QName("", "id"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));elemField. setNillable (false );typeDesc.addFieldDesc(elemField);

64

elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("medico");elemField.setXmlName(new javax.xml.namespace.QName("", "medico"));elemField.setXmlType(new javax.xml.namespace.QName("http://beans", "Medico"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("paciente");elemField.setXmlName(new javax.xml.namespace.QName("", "paciente"));elemField.setXmlType(new javax.xml.namespace.QName("http://beans", "Paciente"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);

}

/∗∗∗ Return type metadata object∗/public static org.apache.axis. description .TypeDesc getTypeDesc() {

return typeDesc;}

/∗∗∗ Get Custom Serializer∗/public static org.apache.axis.encoding. Serializer getSerializer (

java.lang.String mechType,java.lang.Class _javaType,javax.xml.namespace.QName _xmlType) {

returnnew org.apache.axis.encoding.ser .BeanSerializer(_javaType, _xmlType, typeDesc);

}

/∗∗∗ Get Custom Deserializer

65

∗/public static org.apache.axis.encoding.Deserializer getDeserializer (

java.lang.String mechType,java.lang.Class _javaType,javax.xml.namespace.QName _xmlType) {

returnnew org.apache.axis.encoding.ser .BeanDeserializer(_javaType, _xmlType, typeDesc);

}

}

66

5.1.11 SistemaAgendador/JavaSource/beans/Endereco.java

/∗∗∗ Endereco.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package beans;

public class Endereco implements java.io.Serializable {private java.lang.String bairro ;private java.lang.String cidade;private java.lang.String complemento;private java.lang.String estado;private int numero;private java.lang.String rua;

public Endereco() {}

public Endereco(java.lang.String bairro ,java.lang.String cidade,java.lang.String complemento,java.lang.String estado,int numero,java.lang.String rua) {this.bairro = bairro;this.cidade = cidade;this.complemento = complemento;this.estado = estado;this.numero = numero;this.rua = rua;

}

67

/∗∗∗ Gets the bairro value for this Endereco.∗∗ @return bairro∗/public java.lang.String getBairro() {

return bairro;}

/∗∗∗ Sets the bairro value for this Endereco.∗∗ @param bairro∗/public void setBairro(java.lang.String bairro) {

this.bairro = bairro;}

/∗∗∗ Gets the cidade value for this Endereco.∗∗ @return cidade∗/public java.lang.String getCidade() {

return cidade;}

/∗∗∗ Sets the cidade value for this Endereco.∗

68

∗ @param cidade∗/public void setCidade(java.lang.String cidade) {

this.cidade = cidade;}

/∗∗∗ Gets the complemento value for this Endereco.∗∗ @return complemento∗/public java.lang.String getComplemento() {

return complemento;}

/∗∗∗ Sets the complemento value for this Endereco.∗∗ @param complemento∗/public void setComplemento(java.lang.String complemento) {

this.complemento = complemento;}

/∗∗∗ Gets the estado value for this Endereco.∗∗ @return estado∗/public java.lang.String getEstado() {

return estado;}

69

/∗∗∗ Sets the estado value for this Endereco.∗∗ @param estado∗/public void setEstado(java.lang.String estado) {

this.estado = estado;}

/∗∗∗ Gets the numero value for this Endereco.∗∗ @return numero∗/public int getNumero() {

return numero;}

/∗∗∗ Sets the numero value for this Endereco.∗∗ @param numero∗/public void setNumero(int numero) {

this.numero = numero;}

/∗∗∗ Gets the rua value for this Endereco.∗

70

∗ @return rua∗/public java.lang.String getRua() {

return rua;}

/∗∗∗ Sets the rua value for this Endereco.∗∗ @param rua∗/public void setRua(java.lang.String rua) {

this.rua = rua;}

private java.lang.Object __equalsCalc = null;public synchronized boolean equals(java.lang.Object obj) {

if (!( obj instanceof Endereco)) return false;Endereco other = (Endereco) obj;if (obj == null) return false;if (this == obj) return true;if (__equalsCalc != null) {

return (__equalsCalc == obj);}__equalsCalc = obj;boolean _equals;_equals = true &&

((this.bairro==null && other.getBairro()==null) ||(this.bairro!=null &&this.bairro .equals(other.getBairro ()))) &&

((this.cidade==null && other.getCidade()==null) ||(this.cidade!=null &&this.cidade.equals(other.getCidade()))) &&

((this.complemento==null && other.getComplemento()==null) ||

71

(this.complemento!=null &&this.complemento.equals(other.getComplemento()))) &&

((this.estado==null && other.getEstado()==null) ||(this.estado!=null &&this.estado.equals(other.getEstado()))) &&

this.numero == other.getNumero() &&((this.rua==null && other.getRua()==null) ||(this.rua!=null &&this.rua.equals(other.getRua())));

__equalsCalc = null;return _equals;

}

private boolean __hashCodeCalc = false;public synchronized int hashCode() {

if (__hashCodeCalc) {return 0;

}__hashCodeCalc = true;int _hashCode = 1;if (getBairro() != null) {

_hashCode += getBairro().hashCode();}if (getCidade() != null) {

_hashCode += getCidade().hashCode();}if (getComplemento() != null) {

_hashCode += getComplemento().hashCode();}if (getEstado() != null) {

_hashCode += getEstado().hashCode();}_hashCode += getNumero();if (getRua() != null) {

_hashCode += getRua().hashCode();

72

}__hashCodeCalc = false;return _hashCode;

}

// Type metadataprivate static org.apache.axis. description .TypeDesc typeDesc =

new org.apache.axis.description.TypeDesc(Endereco.class, true);

static {typeDesc.setXmlType(new javax.xml.namespace.QName("http://beans", "Endereco"));org.apache.axis. description .ElementDesc elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("bairro");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "bairro"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("cidade");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "cidade"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("complemento");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "complemento"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("estado");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "estado"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);

73

elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("numero");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "numero"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));elemField. setNillable (false );typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("rua");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "rua"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);

}

/∗∗∗ Return type metadata object∗/public static org.apache.axis. description .TypeDesc getTypeDesc() {

return typeDesc;}

/∗∗∗ Get Custom Serializer∗/public static org.apache.axis.encoding. Serializer getSerializer (

java.lang.String mechType,java.lang.Class _javaType,javax.xml.namespace.QName _xmlType) {

returnnew org.apache.axis.encoding.ser .BeanSerializer(_javaType, _xmlType, typeDesc);

}

/∗∗∗ Get Custom Deserializer

74

∗/public static org.apache.axis.encoding.Deserializer getDeserializer (

java.lang.String mechType,java.lang.Class _javaType,javax.xml.namespace.QName _xmlType) {

returnnew org.apache.axis.encoding.ser .BeanDeserializer(_javaType, _xmlType, typeDesc);

}

}

75

5.1.12 SistemaAgendador/JavaSource/beans/Hospital.java

package beans;

public class Hospital {

private int id;private String url ;private String nome;/∗∗∗ @return Returns the nome.∗/public String getNome() {

return nome;}/∗∗∗ @param nome The nome to set.∗/public void setNome(String nome) {

this.nome = nome;}/∗∗∗ @return Returns the url.∗/public String getUrl() {

return url;}/∗∗∗ @param url The url to set.∗/public void setUrl(String url) {

this.url = url;}/∗∗∗ @return Returns the id.∗/

76

public int getId() {return id;

}/∗∗∗ @param id The id to set.∗/public void setId(int id) {

this. id = id;}

}

77

5.1.13 SistemaAgendador/JavaSource/beans/Medico.java

/∗∗∗ Medico.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package beans;

public class Medico implements java.io.Serializable {private long crm;private int especialidade;private java.lang.String nome;

public Medico() {}

public Medico(long crm,int especialidade ,java.lang.String nome) {this.crm = crm;this. especialidade = especialidade;this.nome = nome;

}

/∗∗∗ Gets the crm value for this Medico.∗∗ @return crm∗/public long getCrm() {

return crm;

78

}

/∗∗∗ Sets the crm value for this Medico.∗∗ @param crm∗/public void setCrm(long crm) {

this.crm = crm;}

/∗∗∗ Gets the especialidade value for this Medico.∗∗ @return especialidade∗/public int getEspecialidade() {

return especialidade;}

/∗∗∗ Sets the especialidade value for this Medico.∗∗ @param especialidade∗/public void setEspecialidade(int especialidade) {

this. especialidade = especialidade;}

/∗∗∗ Gets the nome value for this Medico.

79

∗∗ @return nome∗/public java.lang.String getNome() {

return nome;}

/∗∗∗ Sets the nome value for this Medico.∗∗ @param nome∗/public void setNome(java.lang.String nome) {

this.nome = nome;}

private java.lang.Object __equalsCalc = null;public synchronized boolean equals(java.lang.Object obj) {

if (!( obj instanceof Medico)) return false;Medico other = (Medico) obj;if (obj == null) return false;if (this == obj) return true;if (__equalsCalc != null) {

return (__equalsCalc == obj);}__equalsCalc = obj;boolean _equals;_equals = true &&

this.crm == other.getCrm() &&this. especialidade == other.getEspecialidade() &&((this.nome==null && other.getNome()==null) ||(this.nome!=null &&this.nome.equals(other.getNome())));

__equalsCalc = null;

80

return _equals;}

private boolean __hashCodeCalc = false;public synchronized int hashCode() {

if (__hashCodeCalc) {return 0;

}__hashCodeCalc = true;int _hashCode = 1;_hashCode += new Long(getCrm()).hashCode();_hashCode += getEspecialidade();if (getNome() != null) {

_hashCode += getNome().hashCode();}__hashCodeCalc = false;return _hashCode;

}

// Type metadataprivate static org.apache.axis. description .TypeDesc typeDesc =

new org.apache.axis.description.TypeDesc(Medico.class, true);

static {typeDesc.setXmlType(new javax.xml.namespace.QName("http://beans", "Medico"));org.apache.axis. description .ElementDesc elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("crm");elemField.setXmlName(new javax.xml.namespace.QName("", "crm"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));elemField. setNillable (false );typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("especialidade");elemField.setXmlName(new javax.xml.namespace.QName("", "especialidade"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));

81

elemField. setNillable (false );typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("nome");elemField.setXmlName(new javax.xml.namespace.QName("", "nome"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);

}

/∗∗∗ Return type metadata object∗/public static org.apache.axis. description .TypeDesc getTypeDesc() {

return typeDesc;}

/∗∗∗ Get Custom Serializer∗/public static org.apache.axis.encoding. Serializer getSerializer (

java.lang.String mechType,java.lang.Class _javaType,javax.xml.namespace.QName _xmlType) {

returnnew org.apache.axis.encoding.ser .BeanSerializer(_javaType, _xmlType, typeDesc);

}

/∗∗∗ Get Custom Deserializer∗/public static org.apache.axis.encoding.Deserializer getDeserializer (

java.lang.String mechType,java.lang.Class _javaType,

82

javax.xml.namespace.QName _xmlType) {returnnew org.apache.axis.encoding.ser .BeanDeserializer(_javaType, _xmlType, typeDesc);

}

}

83

5.1.14 SistemaAgendador/JavaSource/beans/Paciente.java

/∗∗∗ Paciente.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package beans;

public class Paciente implements java.io.Serializable {private long cartaoSus;private java.lang.String conjuge;private java. util .Calendar dataNascimento;private beans.Endereco endereco;private int estadoCivil;private java.lang.String mae;private java.lang.String nacionalidade;private java.lang.String naturalidade;private java.lang.String nome;private java.lang.String nomeEmpresa;private java.lang.String pai;private java.lang.String sexo;

public Paciente() {}

public Paciente(long cartaoSus,java.lang.String conjuge,java. util .Calendar dataNascimento,beans.Endereco endereco,int estadoCivil ,java.lang.String mae,java.lang.String nacionalidade,

84

java.lang.String naturalidade,java.lang.String nome,java.lang.String nomeEmpresa,java.lang.String pai,java.lang.String sexo) {this.cartaoSus = cartaoSus;this.conjuge = conjuge;this.dataNascimento = dataNascimento;this.endereco = endereco;this.estadoCivil = estadoCivil;this.mae = mae;this.nacionalidade = nacionalidade;this.naturalidade = naturalidade;this.nome = nome;this.nomeEmpresa = nomeEmpresa;this.pai = pai;this.sexo = sexo;

}

/∗∗∗ Gets the cartaoSus value for this Paciente.∗∗ @return cartaoSus∗/public long getCartaoSus() {

return cartaoSus;}

/∗∗∗ Sets the cartaoSus value for this Paciente.∗∗ @param cartaoSus∗/

85

public void setCartaoSus(long cartaoSus) {this.cartaoSus = cartaoSus;

}

/∗∗∗ Gets the conjuge value for this Paciente.∗∗ @return conjuge∗/public java.lang.String getConjuge() {

return conjuge;}

/∗∗∗ Sets the conjuge value for this Paciente.∗∗ @param conjuge∗/public void setConjuge(java.lang.String conjuge) {

this.conjuge = conjuge;}

/∗∗∗ Gets the dataNascimento value for this Paciente.∗∗ @return dataNascimento∗/public java.util .Calendar getDataNascimento() {

return dataNascimento;}

86

/∗∗∗ Sets the dataNascimento value for this Paciente.∗∗ @param dataNascimento∗/public void setDataNascimento(java.util.Calendar dataNascimento) {

this.dataNascimento = dataNascimento;}

/∗∗∗ Gets the endereco value for this Paciente.∗∗ @return endereco∗/public beans.Endereco getEndereco() {

return endereco;}

/∗∗∗ Sets the endereco value for this Paciente.∗∗ @param endereco∗/public void setEndereco(beans.Endereco endereco) {

this.endereco = endereco;}

/∗∗∗ Gets the estadoCivil value for this Paciente.∗∗ @return estadoCivil∗/

87

public int getEstadoCivil() {return estadoCivil;

}

/∗∗∗ Sets the estadoCivil value for this Paciente.∗∗ @param estadoCivil∗/public void setEstadoCivil(int estadoCivil) {

this.estadoCivil = estadoCivil;}

/∗∗∗ Gets the mae value for this Paciente.∗∗ @return mae∗/public java.lang.String getMae() {

return mae;}

/∗∗∗ Sets the mae value for this Paciente.∗∗ @param mae∗/public void setMae(java.lang.String mae) {

this.mae = mae;}

88

/∗∗∗ Gets the nacionalidade value for this Paciente.∗∗ @return nacionalidade∗/public java.lang.String getNacionalidade() {

return nacionalidade;}

/∗∗∗ Sets the nacionalidade value for this Paciente.∗∗ @param nacionalidade∗/public void setNacionalidade(java.lang.String nacionalidade) {

this.nacionalidade = nacionalidade;}

/∗∗∗ Gets the naturalidade value for this Paciente.∗∗ @return naturalidade∗/public java.lang.String getNaturalidade() {

return naturalidade;}

/∗∗∗ Sets the naturalidade value for this Paciente.∗∗ @param naturalidade∗/

89

public void setNaturalidade(java.lang.String naturalidade) {this.naturalidade = naturalidade;

}

/∗∗∗ Gets the nome value for this Paciente.∗∗ @return nome∗/public java.lang.String getNome() {

return nome;}

/∗∗∗ Sets the nome value for this Paciente.∗∗ @param nome∗/public void setNome(java.lang.String nome) {

this.nome = nome;}

/∗∗∗ Gets the nomeEmpresa value for this Paciente.∗∗ @return nomeEmpresa∗/public java.lang.String getNomeEmpresa() {

return nomeEmpresa;}

90

/∗∗∗ Sets the nomeEmpresa value for this Paciente.∗∗ @param nomeEmpresa∗/public void setNomeEmpresa(java.lang.String nomeEmpresa) {

this.nomeEmpresa = nomeEmpresa;}

/∗∗∗ Gets the pai value for this Paciente.∗∗ @return pai∗/public java.lang.String getPai() {

return pai;}

/∗∗∗ Sets the pai value for this Paciente.∗∗ @param pai∗/public void setPai(java.lang.String pai) {

this.pai = pai;}

/∗∗∗ Gets the sexo value for this Paciente.∗∗ @return sexo∗/

91

public java.lang.String getSexo() {return sexo;

}

/∗∗∗ Sets the sexo value for this Paciente.∗∗ @param sexo∗/public void setSexo(java.lang.String sexo) {

this.sexo = sexo;}

private java.lang.Object __equalsCalc = null;public synchronized boolean equals(java.lang.Object obj) {

if (!( obj instanceof Paciente)) return false;Paciente other = (Paciente) obj;if (obj == null) return false;if (this == obj) return true;if (__equalsCalc != null) {

return (__equalsCalc == obj);}__equalsCalc = obj;boolean _equals;_equals = true &&

this.cartaoSus == other.getCartaoSus() &&((this.conjuge==null && other.getConjuge()==null) ||(this.conjuge!=null &&this.conjuge.equals(other.getConjuge()))) &&

((this.dataNascimento==null && other.getDataNascimento()==null) ||(this.dataNascimento!=null &&this.dataNascimento.equals(other.getDataNascimento()))) &&

((this.endereco==null && other.getEndereco()==null) ||(this.endereco!=null &&

92

this.endereco.equals(other.getEndereco()))) &&this.estadoCivil == other.getEstadoCivil() &&((this.mae==null && other.getMae()==null) ||(this.mae!=null &&this.mae.equals(other.getMae()))) &&

((this.nacionalidade==null && other.getNacionalidade()==null) ||(this.nacionalidade!=null &&this.nacionalidade.equals(other.getNacionalidade()))) &&

((this.naturalidade==null && other.getNaturalidade()==null) ||(this.naturalidade!=null &&this.naturalidade.equals(other.getNaturalidade()))) &&

((this.nome==null && other.getNome()==null) ||(this.nome!=null &&this.nome.equals(other.getNome()))) &&

((this.nomeEmpresa==null && other.getNomeEmpresa()==null) ||(this.nomeEmpresa!=null &&this.nomeEmpresa.equals(other.getNomeEmpresa()))) &&

((this.pai==null && other.getPai()==null) ||(this.pai!=null &&this.pai.equals(other.getPai ()))) &&

((this.sexo==null && other.getSexo()==null) ||(this.sexo!=null &&this.sexo.equals(other.getSexo())));

__equalsCalc = null;return _equals;

}

private boolean __hashCodeCalc = false;public synchronized int hashCode() {

if (__hashCodeCalc) {return 0;

}__hashCodeCalc = true;int _hashCode = 1;_hashCode += new Long(getCartaoSus()).hashCode();

93

if (getConjuge() != null) {_hashCode += getConjuge().hashCode();

}if (getDataNascimento() != null) {

_hashCode += getDataNascimento().hashCode();}if (getEndereco() != null) {

_hashCode += getEndereco().hashCode();}_hashCode += getEstadoCivil();if (getMae() != null) {

_hashCode += getMae().hashCode();}if (getNacionalidade() != null) {

_hashCode += getNacionalidade().hashCode();}if (getNaturalidade() != null) {

_hashCode += getNaturalidade().hashCode();}if (getNome() != null) {

_hashCode += getNome().hashCode();}if (getNomeEmpresa() != null) {

_hashCode += getNomeEmpresa().hashCode();}if (getPai() != null) {

_hashCode += getPai().hashCode();}if (getSexo() != null) {

_hashCode += getSexo().hashCode();}__hashCodeCalc = false;return _hashCode;

}

94

// Type metadataprivate static org.apache.axis. description .TypeDesc typeDesc =

new org.apache.axis.description.TypeDesc(Paciente.class, true);

static {typeDesc.setXmlType(new javax.xml.namespace.QName("http://beans", "Paciente"));org.apache.axis. description .ElementDesc elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("cartaoSus");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "cartaoSus"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));elemField. setNillable (false );typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("conjuge");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "conjuge"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("dataNascimento");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "dataNascimento"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("endereco");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "endereco"));elemField.setXmlType(new javax.xml.namespace.QName("http://beans", "Endereco"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("estadoCivil");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "estadoCivil"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));elemField. setNillable (false );

95

typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("mae");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "mae"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("nacionalidade");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "nacionalidade"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("naturalidade");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "naturalidade"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("nome");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "nome"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("nomeEmpresa");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "nomeEmpresa"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("pai");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "pai"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));

96

elemField. setNillable (true);typeDesc.addFieldDesc(elemField);elemField = new org.apache.axis.description.ElementDesc();elemField.setFieldName("sexo");elemField.setXmlName(new javax.xml.namespace.QName("http://beans", "sexo"));elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));elemField. setNillable (true);typeDesc.addFieldDesc(elemField);

}

/∗∗∗ Return type metadata object∗/public static org.apache.axis. description .TypeDesc getTypeDesc() {

return typeDesc;}

/∗∗∗ Get Custom Serializer∗/public static org.apache.axis.encoding. Serializer getSerializer (

java.lang.String mechType,java.lang.Class _javaType,javax.xml.namespace.QName _xmlType) {

returnnew org.apache.axis.encoding.ser .BeanSerializer(_javaType, _xmlType, typeDesc);

}

/∗∗∗ Get Custom Deserializer∗/public static org.apache.axis.encoding.Deserializer getDeserializer (

java.lang.String mechType,java.lang.Class _javaType,

97

javax.xml.namespace.QName _xmlType) {returnnew org.apache.axis.encoding.ser .BeanDeserializer(_javaType, _xmlType, typeDesc);

}

}

98

5.1.15 SistemaAgendador/JavaSource/actions/Gerenciador.java

package beans;

public class Usuario {private long id;private String login ;private String nome;private String senha;/∗∗∗ @return Returns the id.∗/public long getId() {

return id;}/∗∗∗ @param id The id to set.∗/public void setId(long id) {

this. id = id;}/∗∗∗ @return Returns the login.∗/public String getLogin() {

return login;}/∗∗∗ @param login The login to set.∗/public void setLogin(String login) {

this. login = login;}/∗∗∗ @return Returns the nome.∗/

99

public String getNome() {return nome;

}/∗∗∗ @param nome The nome to set.∗/public void setNome(String nome) {

this.nome = nome;}/∗∗∗ @return Returns the senha.∗/public String getSenha() {

return senha;}/∗∗∗ @param senha The senha to set.∗/public void setSenha(String senha) {

this.senha = senha;}

}

100

5.1.16 SistemaAgendador/JavaSource/service/Hospital.java

/∗∗∗ Hospital.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package service;

public interface Hospital extends java.rmi.Remote {public java.lang.Object[] getMedicos(int especialidade) throws java.rmi.RemoteException;public java.lang.Object[] getMedicos(java.lang.String nome) throws java.rmi.RemoteException;public java.lang.Object[] getTodosMedicos() throws java.rmi.RemoteException;public beans.Medico getMedico(long medico) throws java.rmi.RemoteException;public void marcarConsulta(long consulta, beans.Paciente paciente) throws java.rmi.RemoteException;public void desmarcarConsulta(long consulta) throws java.rmi.RemoteException;public java.lang.Object[] getConsultasPaciente(long paciente) throws java.rmi.RemoteException;public java.lang.Object[] getConsultasMedicoPaciente(long medico, long paciente) throws java.rmi.RemoteException;public java.lang.Object[] getDisponiveisEspecialidade(int especialidade) throws java.rmi.RemoteException;public java.lang.Object[] getDisponiveisMedico(long medico) throws java.rmi.RemoteException;public beans.Consulta getConsulta(long consulta) throws java.rmi.RemoteException;

}

101

5.1.17 SistemaAgendador/JavaSource/service/HospitalProxy.java

package service;

public class HospitalProxy implements service.Hospital {private String _endpoint = null;private service.Hospital hospital = null;

public HospitalProxy() {_initHospitalProxy();

}

private void _initHospitalProxy() {try {hospital = (new service.HospitalServiceLocator()).getHospital();if (hospital != null) {if (_endpoint != null)((javax.xml.rpc.Stub)hospital)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);

else_endpoint = (String)((javax.xml.rpc.Stub)hospital)._getProperty("javax.xml.rpc.service.endpoint.address");

}

}catch (javax.xml.rpc.ServiceException serviceException) {}

}

public String getEndpoint() {return _endpoint;

}

public void setEndpoint(String endpoint) {_endpoint = endpoint;if (hospital != null)((javax.xml.rpc.Stub)hospital)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);

}

102

public service.Hospital getHospital() {if (hospital == null)_initHospitalProxy();

return hospital;}

public java.lang.Object[] getMedicos(int especialidade) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

return hospital.getMedicos(especialidade);}

public java.lang.Object[] getMedicos(java.lang.String nome) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

return hospital.getMedicos(nome);}

public java.lang.Object[] getTodosMedicos() throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

return hospital.getTodosMedicos();}

public beans.Medico getMedico(long medico) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

return hospital.getMedico(medico);}

public void marcarConsulta(long consulta, beans.Paciente paciente) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

hospital .marcarConsulta(consulta, paciente);

103

}

public void desmarcarConsulta(long consulta) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

hospital .desmarcarConsulta(consulta);}

public java.lang.Object[] getConsultasPaciente(long paciente) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

return hospital.getConsultasPaciente(paciente);}

public java.lang.Object[] getConsultasMedicoPaciente(long medico, long paciente) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

return hospital.getConsultasMedicoPaciente(medico, paciente);}

public java.lang.Object[] getDisponiveisEspecialidade(int especialidade) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

return hospital.getDisponiveisEspecialidade(especialidade );}

public java.lang.Object[] getDisponiveisMedico(long medico) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

return hospital.getDisponiveisMedico(medico);}

public beans.Consulta getConsulta(long consulta) throws java.rmi.RemoteException{if (hospital == null)_initHospitalProxy();

104

return hospital.getConsulta(consulta);}

}

105

5.1.18 SistemaAgendador/JavaSource/service/HospitalService.java

/∗∗∗ HospitalService .java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package service;

public interface HospitalService extends javax.xml.rpc.Service {public java.lang.String getHospitalAddress();

public service.Hospital getHospital() throws javax.xml.rpc.ServiceException;

public service.Hospital getHospital(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;}

106

5.1.19 SistemaAgendador/JavaSource/service/HospitalServiceLocator.java

/∗∗∗ HospitalServiceLocator.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package service;

public class HospitalServiceLocator extends org.apache.axis.client.Service implements service.HospitalService {

public HospitalServiceLocator() {}

public HospitalServiceLocator(org.apache.axis.EngineCon�guration con�g) {super(con�g);

}

public HospitalServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {super(wsdlLoc, sName);

}

// Use to get a proxy class for Hospitalprivate java.lang.String Hospital_address = "http://localhost:8080/SistemaHospital/services/Hospital";

public java.lang.String getHospitalAddress() {return Hospital_address;

}

// The WSDD service name defaults to the port name.private java.lang.String HospitalWSDDServiceName = "Hospital";

public java.lang.String getHospitalWSDDServiceName() {

107

return HospitalWSDDServiceName;}

public void setHospitalWSDDServiceName(java.lang.String name) {HospitalWSDDServiceName = name;

}

public service.Hospital getHospital() throws javax.xml.rpc.ServiceException {java.net.URL endpoint;try {

endpoint = new java.net.URL(Hospital_address);}catch (java.net.MalformedURLException e) {

throw new javax.xml.rpc.ServiceException(e);}return getHospital(endpoint);

}

public service.Hospital getHospital(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {try {

service .HospitalSoapBindingStub _stub = new service.HospitalSoapBindingStub(portAddress, this);_stub.setPortName(getHospitalWSDDServiceName());return _stub;

}catch (org.apache.axis.AxisFault e) {

return null;}

}

public void setHospitalEndpointAddress(java.lang.String address) {Hospital_address = address;

}

/∗∗∗ For the given interface , get the stub implementation.

108

∗ If this service has no port for the given interface ,∗ then ServiceException is thrown.∗/public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {

try {if ( service .Hospital.class.isAssignableFrom(serviceEndpointInterface)) {

service .HospitalSoapBindingStub _stub = new service.HospitalSoapBindingStub(new java.net.URL(Hospital_address), this);_stub.setPortName(getHospitalWSDDServiceName());return _stub;

}}catch (java.lang.Throwable t) {

throw new javax.xml.rpc.ServiceException(t);}throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));

}

/∗∗∗ For the given interface , get the stub implementation.∗ If this service has no port for the given interface ,∗ then ServiceException is thrown.∗/public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {

if (portName == null) {return getPort(serviceEndpointInterface);

}java.lang.String inputPortName = portName.getLocalPart();if ("Hospital".equals(inputPortName)) {

return getHospital();}else {

java.rmi.Remote _stub = getPort(serviceEndpointInterface);((org.apache.axis. client .Stub) _stub).setPortName(portName);return _stub;

}

109

}

public javax.xml.namespace.QName getServiceName() {return new javax.xml.namespace.QName("http://service", "HospitalService");

}

private java. util .HashSet ports = null;

public java.util . Iterator getPorts() {if (ports == null) {

ports = new java.util.HashSet();ports.add(new javax.xml.namespace.QName("http://service", "Hospital"));

}return ports.iterator ();

}

/∗∗∗ Set the endpoint address for the speci�ed port name.∗/public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {

if ("Hospital".equals(portName)) {setHospitalEndpointAddress(address);

}else

{ // Unknown Port Namethrow new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);

}}

/∗∗∗ Set the endpoint address for the speci�ed port name.∗/public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {

setEndpointAddress(portName.getLocalPart(), address);

110

}

}

111

5.1.20 SistemaAgendador/JavaSource/service/HospitalSoapBindingStub.java

/∗∗∗ HospitalSoapBindingStub.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package service;

public class HospitalSoapBindingStub extends org.apache.axis.client.Stub implements service.Hospital {private java. util .Vector cachedSerClasses = new java.util.Vector();private java. util .Vector cachedSerQNames = new java.util.Vector();private java. util .Vector cachedSerFactories = new java.util.Vector();private java. util .Vector cachedDeserFactories = new java.util.Vector();

static org.apache.axis. description .OperationDesc [] _operations;

static {_operations = new org.apache.axis.description.OperationDesc[11];_initOperationDesc1();_initOperationDesc2();

}

private static void _initOperationDesc1(){org.apache.axis. description .OperationDesc oper;org.apache.axis. description .ParameterDesc param;oper = new org.apache.axis.description.OperationDesc();oper.setName("getMedicos");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "especialidade"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"), int.class, false, false);oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://service", "ArrayOf_xsd_anyType"));oper.setReturnClass(java.lang.Object [].class);oper.setReturnQName(new javax.xml.namespace.QName("", "getMedicosReturn"));oper. setStyle (org.apache.axis.constants.Style .RPC);

112

oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[0] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("getMedicos");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "nome"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://service", "ArrayOf_xsd_anyType"));oper.setReturnClass(java.lang.Object [].class);oper.setReturnQName(new javax.xml.namespace.QName("", "getMedicosReturn"));oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[1] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("getTodosMedicos");oper.setReturnType(new javax.xml.namespace.QName("http://service", "ArrayOf_xsd_anyType"));oper.setReturnClass(java.lang.Object [].class);oper.setReturnQName(new javax.xml.namespace.QName("", "getTodosMedicosReturn"));oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[2] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("getMedico");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "medico"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://beans", "Medico"));oper.setReturnClass(beans.Medico.class);oper.setReturnQName(new javax.xml.namespace.QName("", "getMedicoReturn"));oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[3] = oper;

oper = new org.apache.axis.description.OperationDesc();

113

oper.setName("marcarConsulta");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "consulta"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);oper.addParameter(param);param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "paciente"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://beans", "Paciente"), beans.Paciente.class, false, false);oper.addParameter(param);oper.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[4] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("desmarcarConsulta");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "consulta"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);oper.addParameter(param);oper.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[5] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("getConsultasPaciente");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "paciente"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://service", "ArrayOf_xsd_anyType"));oper.setReturnClass(java.lang.Object [].class);oper.setReturnQName(new javax.xml.namespace.QName("", "getConsultasPacienteReturn"));oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[6] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("getConsultasMedicoPaciente");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "medico"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);oper.addParameter(param);param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "paciente"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);

114

oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://service", "ArrayOf_xsd_anyType"));oper.setReturnClass(java.lang.Object [].class);oper.setReturnQName(new javax.xml.namespace.QName("", "getConsultasMedicoPacienteReturn"));oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[7] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("getDisponiveisEspecialidade");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "especialidade"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"), int.class, false, false);oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://service", "ArrayOf_xsd_anyType"));oper.setReturnClass(java.lang.Object [].class);oper.setReturnQName(new javax.xml.namespace.QName("", "getDisponiveisEspecialidadeReturn"));oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[8] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("getDisponiveisMedico");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "medico"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://service", "ArrayOf_xsd_anyType"));oper.setReturnClass(java.lang.Object [].class);oper.setReturnQName(new javax.xml.namespace.QName("", "getDisponiveisMedicoReturn"));oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[9] = oper;

}

private static void _initOperationDesc2(){org.apache.axis. description .OperationDesc oper;org.apache.axis. description .ParameterDesc param;

115

oper = new org.apache.axis.description.OperationDesc();oper.setName("getConsulta");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "consulta"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://beans", "Consulta"));oper.setReturnClass(beans.Consulta.class);oper.setReturnQName(new javax.xml.namespace.QName("", "getConsultaReturn"));oper. setStyle (org.apache.axis.constants.Style .RPC);oper.setUse(org.apache.axis.constants.Use.ENCODED);_operations[10] = oper;

}

public HospitalSoapBindingStub() throws org.apache.axis.AxisFault {this(null);

}

public HospitalSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {this(service );super.cachedEndpoint = endpointURL;

}

public HospitalSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {if ( service == null) {

super.service = new org.apache.axis.client.Service ();} else {

super.service = service;}((org.apache.axis. client .Service)super.service).setTypeMappingVersion("1.2");

java.lang.Class cls ;javax.xml.namespace.QName qName;javax.xml.namespace.QName qName2;java.lang.Class beansf = org.apache.axis.encoding.ser .BeanSerializerFactory.class;java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;

116

java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;java.lang.Class arraysf = org.apache.axis.encoding.ser .ArraySerializerFactory .class;java.lang.Class arraydf = org.apache.axis.encoding.ser .ArrayDeserializerFactory.class;java.lang.Class simplesf = org.apache.axis.encoding.ser .SimpleSerializerFactory .class;java.lang.Class simpledf = org.apache.axis.encoding.ser .SimpleDeserializerFactory.class;java.lang.Class simplelistsf = org.apache.axis.encoding.ser . SimpleListSerializerFactory .class;java.lang.Class simplelistdf = org.apache.axis.encoding.ser .SimpleListDeserializerFactory.class;qName = new javax.xml.namespace.QName("http://beans", "Consulta");cachedSerQNames.add(qName);cls = beans.Consulta.class;cachedSerClasses.add(cls);cachedSerFactories.add(beansf);cachedDeserFactories.add(beandf);

qName = new javax.xml.namespace.QName("http://beans", "Medico");cachedSerQNames.add(qName);cls = beans.Medico.class;cachedSerClasses.add(cls);cachedSerFactories.add(beansf);cachedDeserFactories.add(beandf);

qName = new javax.xml.namespace.QName("http://beans", "Paciente");cachedSerQNames.add(qName);cls = beans.Paciente.class;cachedSerClasses.add(cls);cachedSerFactories.add(beansf);cachedDeserFactories.add(beandf);

qName = new javax.xml.namespace.QName("http://service", "ArrayOf_xsd_anyType");cachedSerQNames.add(qName);cls = java.lang.Object [].class;cachedSerClasses.add(cls);qName = new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "anyType");qName2 = null;cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));

117

cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());

}

protected org.apache.axis.client.Call createCall () throws java.rmi.RemoteException {try {

org.apache.axis. client .Call _call = super._createCall();if (super.maintainSessionSet) {

_call.setMaintainSession(super.maintainSession);}if (super.cachedUsername != null) {

_call.setUsername(super.cachedUsername);}if (super.cachedPassword != null) {

_call.setPassword(super.cachedPassword);}if (super.cachedEndpoint != null) {

_call.setTargetEndpointAddress(super.cachedEndpoint);}if (super.cachedTimeout != null) {

_call.setTimeout(super.cachedTimeout);}if (super.cachedPortName != null) {

_call.setPortName(super.cachedPortName);}java. util .Enumeration keys = super.cachedProperties.keys();while (keys.hasMoreElements()) {

java.lang.String key = (java.lang.String) keys.nextElement();_call.setProperty(key, super.cachedProperties.get(key));

}// All the type mapping information is registered// when the �rst call is made.// The type mapping information is actually registered in// the TypeMappingRegistry of the service, which// is the reason why registration is only needed for the �rst call .

118

synchronized (this) {if ( �rstCall ()) {

// must set encoding style before registering serializers_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP11_ENC);for (int i = 0; i < cachedSerFactories.size (); ++i) {

java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i );javax.xml.namespace.QName qName =

(javax.xml.namespace.QName) cachedSerQNames.get(i);java.lang.Object x = cachedSerFactories.get(i);if (x instanceof Class) {

java.lang.Class sf = (java.lang.Class)cachedSerFactories.get( i );

java.lang.Class df = (java.lang.Class)cachedDeserFactories.get(i );

_call.registerTypeMapping(cls, qName, sf, df, false );}else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {

org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory )cachedSerFactories.get( i );

org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)cachedDeserFactories.get(i );

_call.registerTypeMapping(cls, qName, sf, df, false );}

}}

}return _call;

}catch (java.lang.Throwable _t) {

throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);}

}

public java.lang.Object[] getMedicos(int especialidade) throws java.rmi.RemoteException {

119

if (super.cachedEndpoint == null) {throw new org.apache.axis.NoEndPointException();

}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[0]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "getMedicos"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Integer(especialidade)});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);try {

return (java.lang.Object[]) _resp;} catch (java.lang.Exception _exception) {

return (java.lang.Object[]) org.apache.axis. utils .JavaUtils.convert(_resp, java.lang.Object [].class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public java.lang.Object[] getMedicos(java.lang.String nome) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();

120

_call.setOperation(_operations[1]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "getMedicos"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {nome});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);try {

return (java.lang.Object[]) _resp;} catch (java.lang.Exception _exception) {

return (java.lang.Object[]) org.apache.axis. utils .JavaUtils.convert(_resp, java.lang.Object [].class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public java.lang.Object[] getTodosMedicos() throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[2]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);

121

_call.setOperationName(new javax.xml.namespace.QName("http://service", "getTodosMedicos"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);try {

return (java.lang.Object[]) _resp;} catch (java.lang.Exception _exception) {

return (java.lang.Object[]) org.apache.axis. utils .JavaUtils.convert(_resp, java.lang.Object [].class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public beans.Medico getMedico(long medico) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[3]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "getMedico"));

setRequestHeaders(_call);setAttachments(_call);

122

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(medico)});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);try {

return (beans.Medico) _resp;} catch (java.lang.Exception _exception) {

return (beans.Medico) org.apache.axis.utils .JavaUtils.convert(_resp, beans.Medico.class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public void marcarConsulta(long consulta, beans.Paciente paciente) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[4]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "marcarConsulta"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(consulta), paciente});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

123

}extractAttachments(_call);

} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public void desmarcarConsulta(long consulta) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[5]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "desmarcarConsulta"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(consulta)});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}extractAttachments(_call);

} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public java.lang.Object[] getConsultasPaciente(long paciente) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}

124

org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[6]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "getConsultasPaciente"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(paciente)});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);try {

return (java.lang.Object[]) _resp;} catch (java.lang.Exception _exception) {

return (java.lang.Object[]) org.apache.axis. utils .JavaUtils.convert(_resp, java.lang.Object [].class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public java.lang.Object[] getConsultasMedicoPaciente(long medico, long paciente) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[7]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");

125

_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "getConsultasMedicoPaciente"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(medico), new java.lang.Long(paciente)});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);try {

return (java.lang.Object[]) _resp;} catch (java.lang.Exception _exception) {

return (java.lang.Object[]) org.apache.axis. utils .JavaUtils.convert(_resp, java.lang.Object [].class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public java.lang.Object[] getDisponiveisEspecialidade(int especialidade) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[8]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "getDisponiveisEspecialidade"));

setRequestHeaders(_call);

126

setAttachments(_call);try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Integer(especialidade)});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);try {

return (java.lang.Object[]) _resp;} catch (java.lang.Exception _exception) {

return (java.lang.Object[]) org.apache.axis. utils .JavaUtils.convert(_resp, java.lang.Object [].class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public java.lang.Object[] getDisponiveisMedico(long medico) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[9]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "getDisponiveisMedico"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(medico)});

if (_resp instanceof java.rmi.RemoteException) {

127

throw (java.rmi.RemoteException)_resp;}else {

extractAttachments(_call);try {

return (java.lang.Object[]) _resp;} catch (java.lang.Exception _exception) {

return (java.lang.Object[]) org.apache.axis. utils .JavaUtils.convert(_resp, java.lang.Object [].class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public beans.Consulta getConsulta(long consulta) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[10]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "getConsulta"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(consulta)});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);

128

try {return (beans.Consulta) _resp;

} catch (java.lang.Exception _exception) {return (beans.Consulta) org.apache.axis.utils .JavaUtils.convert(_resp, beans.Consulta.class);

}}

} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

}

129

5.1.21 SistemaAgendador/JavaSource/service/SUS.java

/∗∗∗ SUS.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package service;

public interface SUS extends java.rmi.Remote {public void cadastrarPaciente(beans.Paciente p) throws java.rmi.RemoteException;public void alterarCadastroPaciente(beans.Paciente p) throws java.rmi.RemoteException;public java.lang.Object[] buscar(java.lang.String nome) throws java.rmi.RemoteException;public beans.Paciente getPaciente(long paciente) throws java.rmi.RemoteException;

}

130

5.1.22 SistemaAgendador/JavaSource/service/SUSProxy.java

package service;

public class SUSProxy implements service.SUS {private String _endpoint = null;private service.SUS sUS = null;

public SUSProxy() {_initSUSProxy();

}

private void _initSUSProxy() {try {sUS = (new service.SUSServiceLocator()).getSUS();if (sUS != null) {if (_endpoint != null)((javax.xml.rpc.Stub)sUS)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);

else_endpoint = (String)((javax.xml.rpc.Stub)sUS)._getProperty("javax.xml.rpc.service.endpoint.address");

}

}catch (javax.xml.rpc.ServiceException serviceException) {}

}

public String getEndpoint() {return _endpoint;

}

public void setEndpoint(String endpoint) {_endpoint = endpoint;if (sUS != null)((javax.xml.rpc.Stub)sUS)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);

}

131

public service.SUS getSUS() {if (sUS == null)_initSUSProxy();

return sUS;}

public void cadastrarPaciente(beans.Paciente p) throws java.rmi.RemoteException{if (sUS == null)_initSUSProxy();

sUS.cadastrarPaciente(p);}

public void alterarCadastroPaciente(beans.Paciente p) throws java.rmi.RemoteException{if (sUS == null)_initSUSProxy();

sUS.alterarCadastroPaciente(p);}

public java.lang.Object[] buscar(java.lang.String nome) throws java.rmi.RemoteException{if (sUS == null)_initSUSProxy();

return sUS.buscar(nome);}

public beans.Paciente getPaciente(long paciente) throws java.rmi.RemoteException{if (sUS == null)_initSUSProxy();

return sUS.getPaciente(paciente);}

}

132

5.1.23 SistemaAgendador/JavaSource/service/SUSService.java

/∗∗∗ SUSService.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package service;

public interface SUSService extends javax.xml.rpc.Service {public java.lang.String getSUSAddress();

public service.SUS getSUS() throws javax.xml.rpc.ServiceException;

public service.SUS getSUS(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;}

133

5.1.24 SistemaAgendador/JavaSource/service/SUSServiceLocator.java

/∗∗∗ SUSServiceLocator.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package service;

public class SUSServiceLocator extends org.apache.axis.client.Service implements service.SUSService {

public SUSServiceLocator() {}

public SUSServiceLocator(org.apache.axis.EngineCon�guration con�g) {super(con�g);

}

public SUSServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {super(wsdlLoc, sName);

}

// Use to get a proxy class for SUSprivate java.lang.String SUS_address = "http://localhost:8080/SistemaSUS/services/SUS";

public java.lang.String getSUSAddress() {return SUS_address;

}

// The WSDD service name defaults to the port name.private java.lang.String SUSWSDDServiceName = "SUS";

public java.lang.String getSUSWSDDServiceName() {

134

return SUSWSDDServiceName;}

public void setSUSWSDDServiceName(java.lang.String name) {SUSWSDDServiceName = name;

}

public service.SUS getSUS() throws javax.xml.rpc.ServiceException {java.net.URL endpoint;try {

endpoint = new java.net.URL(SUS_address);}catch (java.net.MalformedURLException e) {

throw new javax.xml.rpc.ServiceException(e);}return getSUS(endpoint);

}

public service.SUS getSUS(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {try {

service .SUSSoapBindingStub _stub = new service.SUSSoapBindingStub(portAddress, this);_stub.setPortName(getSUSWSDDServiceName());return _stub;

}catch (org.apache.axis.AxisFault e) {

return null;}

}

public void setSUSEndpointAddress(java.lang.String address) {SUS_address = address;

}

/∗∗∗ For the given interface , get the stub implementation.

135

∗ If this service has no port for the given interface ,∗ then ServiceException is thrown.∗/public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {

try {if ( service .SUS.class.isAssignableFrom(serviceEndpointInterface)) {

service .SUSSoapBindingStub _stub = new service.SUSSoapBindingStub(new java.net.URL(SUS_address), this);_stub.setPortName(getSUSWSDDServiceName());return _stub;

}}catch (java.lang.Throwable t) {

throw new javax.xml.rpc.ServiceException(t);}throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));

}

/∗∗∗ For the given interface , get the stub implementation.∗ If this service has no port for the given interface ,∗ then ServiceException is thrown.∗/public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {

if (portName == null) {return getPort(serviceEndpointInterface);

}java.lang.String inputPortName = portName.getLocalPart();if ("SUS".equals(inputPortName)) {

return getSUS();}else {

java.rmi.Remote _stub = getPort(serviceEndpointInterface);((org.apache.axis. client .Stub) _stub).setPortName(portName);return _stub;

}

136

}

public javax.xml.namespace.QName getServiceName() {return new javax.xml.namespace.QName("http://service", "SUSService");

}

private java. util .HashSet ports = null;

public java.util . Iterator getPorts() {if (ports == null) {

ports = new java.util.HashSet();ports.add(new javax.xml.namespace.QName("http://service", "SUS"));

}return ports.iterator ();

}

/∗∗∗ Set the endpoint address for the speci�ed port name.∗/public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {

if ("SUS".equals(portName)) {setSUSEndpointAddress(address);

}else

{ // Unknown Port Namethrow new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);

}}

/∗∗∗ Set the endpoint address for the speci�ed port name.∗/public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {

setEndpointAddress(portName.getLocalPart(), address);

137

}

}

138

5.1.25 SistemaAgendador/JavaSource/service/SUSSoapBindingStub.java

/∗∗∗ SUSSoapBindingStub.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package service;

public class SUSSoapBindingStub extends org.apache.axis.client.Stub implements service.SUS {private java. util .Vector cachedSerClasses = new java.util.Vector();private java. util .Vector cachedSerQNames = new java.util.Vector();private java. util .Vector cachedSerFactories = new java.util.Vector();private java. util .Vector cachedDeserFactories = new java.util.Vector();

static org.apache.axis. description .OperationDesc [] _operations;

static {_operations = new org.apache.axis.description.OperationDesc[4];_initOperationDesc1();

}

private static void _initOperationDesc1(){org.apache.axis. description .OperationDesc oper;org.apache.axis. description .ParameterDesc param;oper = new org.apache.axis.description.OperationDesc();oper.setName("cadastrarPaciente");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://service", "p"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://beans", "Paciente"), beans.Paciente.class, false, false);oper.addParameter(param);oper.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);oper. setStyle (org.apache.axis.constants.Style .WRAPPED);oper.setUse(org.apache.axis.constants.Use.LITERAL);_operations[0] = oper;

139

oper = new org.apache.axis.description.OperationDesc();oper.setName("alterarCadastroPaciente");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://service", "p"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://beans", "Paciente"), beans.Paciente.class, false, false);oper.addParameter(param);oper.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);oper. setStyle (org.apache.axis.constants.Style .WRAPPED);oper.setUse(org.apache.axis.constants.Use.LITERAL);_operations[1] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("buscar");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://service", "nome"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "anyType"));oper.setReturnClass(java.lang.Object [].class);oper.setReturnQName(new javax.xml.namespace.QName("http://service", "buscarReturn"));oper. setStyle (org.apache.axis.constants.Style .WRAPPED);oper.setUse(org.apache.axis.constants.Use.LITERAL);_operations[2] = oper;

oper = new org.apache.axis.description.OperationDesc();oper.setName("getPaciente");param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://service", "paciente"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);oper.addParameter(param);oper.setReturnType(new javax.xml.namespace.QName("http://beans", "Paciente"));oper.setReturnClass(beans.Paciente.class);oper.setReturnQName(new javax.xml.namespace.QName("http://service", "getPacienteReturn"));oper. setStyle (org.apache.axis.constants.Style .WRAPPED);oper.setUse(org.apache.axis.constants.Use.LITERAL);_operations[3] = oper;

}

public SUSSoapBindingStub() throws org.apache.axis.AxisFault {this(null);

140

}

public SUSSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {this(service );super.cachedEndpoint = endpointURL;

}

public SUSSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {if ( service == null) {

super.service = new org.apache.axis.client.Service ();} else {

super.service = service;}((org.apache.axis. client .Service)super.service).setTypeMappingVersion("1.2");

java.lang.Class cls ;javax.xml.namespace.QName qName;javax.xml.namespace.QName qName2;java.lang.Class beansf = org.apache.axis.encoding.ser .BeanSerializerFactory.class;java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;java.lang.Class arraysf = org.apache.axis.encoding.ser .ArraySerializerFactory .class;java.lang.Class arraydf = org.apache.axis.encoding.ser .ArrayDeserializerFactory.class;java.lang.Class simplesf = org.apache.axis.encoding.ser .SimpleSerializerFactory .class;java.lang.Class simpledf = org.apache.axis.encoding.ser .SimpleDeserializerFactory.class;java.lang.Class simplelistsf = org.apache.axis.encoding.ser . SimpleListSerializerFactory .class;java.lang.Class simplelistdf = org.apache.axis.encoding.ser .SimpleListDeserializerFactory.class;qName = new javax.xml.namespace.QName("http://beans", "Endereco");cachedSerQNames.add(qName);cls = beans.Endereco.class;cachedSerClasses.add(cls);cachedSerFactories.add(beansf);cachedDeserFactories.add(beandf);

qName = new javax.xml.namespace.QName("http://beans", "Paciente");

141

cachedSerQNames.add(qName);cls = beans.Paciente.class;cachedSerClasses.add(cls);cachedSerFactories.add(beansf);cachedDeserFactories.add(beandf);

}

protected org.apache.axis.client.Call createCall () throws java.rmi.RemoteException {try {

org.apache.axis. client .Call _call = super._createCall();if (super.maintainSessionSet) {

_call.setMaintainSession(super.maintainSession);}if (super.cachedUsername != null) {

_call.setUsername(super.cachedUsername);}if (super.cachedPassword != null) {

_call.setPassword(super.cachedPassword);}if (super.cachedEndpoint != null) {

_call.setTargetEndpointAddress(super.cachedEndpoint);}if (super.cachedTimeout != null) {

_call.setTimeout(super.cachedTimeout);}if (super.cachedPortName != null) {

_call.setPortName(super.cachedPortName);}java. util .Enumeration keys = super.cachedProperties.keys();while (keys.hasMoreElements()) {

java.lang.String key = (java.lang.String) keys.nextElement();_call.setProperty(key, super.cachedProperties.get(key));

}// All the type mapping information is registered

142

// when the �rst call is made.// The type mapping information is actually registered in// the TypeMappingRegistry of the service, which// is the reason why registration is only needed for the �rst call .synchronized (this) {

if ( �rstCall ()) {// must set encoding style before registering serializers_call.setEncodingStyle(null);for (int i = 0; i < cachedSerFactories.size (); ++i) {

java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i );javax.xml.namespace.QName qName =

(javax.xml.namespace.QName) cachedSerQNames.get(i);java.lang.Object x = cachedSerFactories.get(i);if (x instanceof Class) {

java.lang.Class sf = (java.lang.Class)cachedSerFactories.get( i );

java.lang.Class df = (java.lang.Class)cachedDeserFactories.get(i );

_call.registerTypeMapping(cls, qName, sf, df, false );}else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {

org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory )cachedSerFactories.get( i );

org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)cachedDeserFactories.get(i );

_call.registerTypeMapping(cls, qName, sf, df, false );}

}}

}return _call;

}catch (java.lang.Throwable _t) {

throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);}

143

}

public void cadastrarPaciente(beans.Paciente p) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[0]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setEncodingStyle(null);_call.setProperty(org.apache.axis. client .Call .SEND_TYPE_ATTR, Boolean.FALSE);_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "cadastrarPaciente"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {p});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}extractAttachments(_call);

} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public void alterarCadastroPaciente(beans.Paciente p) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[1]);

144

_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setEncodingStyle(null);_call.setProperty(org.apache.axis. client .Call .SEND_TYPE_ATTR, Boolean.FALSE);_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "alterarCadastroPaciente"));

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {p});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}extractAttachments(_call);

} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public java.lang.Object[] buscar(java.lang.String nome) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[2]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setEncodingStyle(null);_call.setProperty(org.apache.axis. client .Call .SEND_TYPE_ATTR, Boolean.FALSE);_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "buscar"));

145

setRequestHeaders(_call);setAttachments(_call);

try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {nome});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);try {

return (java.lang.Object[]) _resp;} catch (java.lang.Exception _exception) {

return (java.lang.Object[]) org.apache.axis. utils .JavaUtils.convert(_resp, java.lang.Object [].class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

public beans.Paciente getPaciente(long paciente) throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();}org.apache.axis. client .Call _call = createCall();_call.setOperation(_operations[3]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setEncodingStyle(null);_call.setProperty(org.apache.axis. client .Call .SEND_TYPE_ATTR, Boolean.FALSE);_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(new javax.xml.namespace.QName("http://service", "getPaciente"));

setRequestHeaders(_call);

146

setAttachments(_call);try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(paciente)});

if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;

}else {

extractAttachments(_call);try {

return (beans.Paciente) _resp;} catch (java.lang.Exception _exception) {

return (beans.Paciente) org.apache.axis. utils .JavaUtils.convert(_resp, beans.Paciente.class);}

}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;

}}

}

147

5.1.26 SistemaAgendador/JavaSource/service/TestaServiceHospital.java

package service;

import java.rmi.RemoteException;

import beans.Consulta;import beans.Medico;import beans.Paciente;

public class TestaServiceHospital implements Hospital{

private Hospital hospital;

public TestaServiceHospital() {hospital = new HospitalProxy();

}

private static void imprimirConsulta(Object o){Consulta consulta = (Consulta) o;System.out.print(consulta.getId ());System.out.print(" − ");System.out.print(consulta.getData());System.out.print(" − ");System.out.print(consulta.getHora());System.out.print(" − ");System.out.println(consulta.getMedico().getCrm());

}

private static void imprimirMedico(Object o){Medico medico = (Medico) o;System.out.print(medico.getCrm());System.out.print(" − ");System.out.print(medico.getNome());System.out.print(" − ");System.out.println(medico.getEspecialidade());

148

}

public static void main(String[] args) {try {

Object o = new TestaServiceHospital().getMedico(232500);imprimirMedico(o);Object [] os = new TestaServiceHospital().getMedicos(2);for (Object object : os) {

imprimirMedico(object);}

} catch (RemoteException e) {e.printStackTrace();

}

}

public Object[] getMedicos(int especialidade) throws RemoteException {return hospital.getMedicos(especialidade);

}

public Object[] getMedicos(String nome) throws RemoteException {return hospital.getMedicos(nome);

}

public Object[] getTodosMedicos() throws RemoteException {return hospital.getTodosMedicos();

}

public Medico getMedico(long medico) throws RemoteException {return hospital.getMedico(medico);

}

public void marcarConsulta(long consulta, Paciente paciente) throws RemoteException {hospital .marcarConsulta(consulta, paciente);

}

149

public void desmarcarConsulta(long consulta) throws RemoteException {hospital .desmarcarConsulta(consulta);

}

public Object[] getConsultasPaciente(long paciente) throws RemoteException {return hospital.getConsultasPaciente(paciente);

}

public Object[] getConsultasMedicoPaciente(long medico, long paciente) throws RemoteException {return hospital.getConsultasMedicoPaciente(medico, paciente);

}

public Object[] getDisponiveisEspecialidade(int especialidade) throws RemoteException {return hospital.getDisponiveisEspecialidade(especialidade );

}

public Object[] getDisponiveisMedico(long medico) throws RemoteException {return hospital.getDisponiveisMedico(medico);

}

public Consulta getConsulta(long consulta) throws RemoteException {return hospital.getConsulta(consulta);

}

}

150

5.1.27 SistemaAgendador/JavaSource/service/TestaServiceSUS.java

package service;

import java.rmi.RemoteException;

import beans.Paciente;

public class TestaServiceSUS implements SUS{

private SUSProxy proxy;

public TestaServiceSUS() {proxy = new SUSProxy();

}

private static void imprimirPaciente(Object o){Paciente p = (Paciente) o;System.out.print(p.getCartaoSus());System.out.print(" − ");System.out.print(p.getNome());System.out.print(" − ");System.out.print(p.getConjuge());System.out.print(" − ");System.out.print(p.getEndereco().getRua());

}

/∗∗∗ @param args∗/public static void main(String[] args) {

try {Object[] resp = new TestaServiceSUS().buscar("telho");imprimirPaciente(resp [0]);

} catch (RemoteException e) {// TODO Auto−generated catch block

151

e.printStackTrace();}

}

public void cadastrarPaciente(Paciente p) throws RemoteException {proxy.cadastrarPaciente(p);

}

public void alterarCadastroPaciente(Paciente p) throws RemoteException {proxy.alterarCadastroPaciente(p);

}

public Object[] buscar(String nome) throws RemoteException {return proxy.buscar(nome);

}

public Paciente getPaciente(long paciente) throws RemoteException {return proxy.getPaciente(paciente);

}}

152

5.1.28 SistemaAgendador/JavaSource/uteis/Constantes.java

package uteis;

public interface Constantes {

public enum Especialidade {

CARDIOLOGISTA, ORTOPEDISTA, GINECOLOGISTA, OFTALMOLOGISTA, UROLOGISTA, GERAL, PISQUIATRA, DERMATOLOGISTA, OTORRINO,};

public enum EstadoCivil{SOLTEIRO, CASADO, DIVORCIADO, JUNTO, VIUVO

}

public enum Escolaridade{NAO_FREQUENTOU, PRIMARIO_INCOMPLETO, PRIMARIO, FUNDAMENTAL_INCOMPLETO, FUNDAMENTAL, MEDIO_INCOMPLETO, MEDIO, SUPERIOR_INCOMPLETO, SUPERIOR, MESTRE, DOUTOR

}}

153

5.1.29 SistemaAgendador/JavaSource/uteis/ConversorPaciente.java

package uteis;

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;

import beans.Endereco;import beans.Paciente;

public class ConversorPaciente {

private long cartaoSus;

private String nome;

private String pai;

private String mae;

private String conjuge;

private String dataNascimento;

private String nacionalidade;

private String naturalidade;

private String nomeEmpresa;

private String sexo;

private String rua;

private int numero;

154

private String complemento;

private String bairro;

private String cidade;

private String estado;

private int estadoCivil;

private int escolaridade;

/∗∗∗ @return Returns the bairro.∗/public String getBairro() {

return bairro;}

/∗∗∗ @param bairro∗ The bairro to set .∗/public void setBairro(String bairro) {

this.bairro = bairro;}

/∗∗∗ @return Returns the cartaoSus.∗/public long getCartaoSus() {

return cartaoSus;}

155

/∗∗∗ @param cartaoSus∗ The cartaoSus to set.∗/public void setCartaoSus(long cartaoSus) {

this.cartaoSus = cartaoSus;}

/∗∗∗ @return Returns the cidade.∗/public String getCidade() {

return cidade;}

/∗∗∗ @param cidade∗ The cidade to set .∗/public void setCidade(String cidade) {

this.cidade = cidade;}

/∗∗∗ @return Returns the complemento.∗/public String getComplemento() {

return complemento;}

/∗∗∗ @param complemento∗ The complemento to set.∗/public void setComplemento(String complemento) {

156

this.complemento = complemento;}

/∗∗∗ @return Returns the conjuge.∗/public String getConjuge() {

return conjuge;}

/∗∗∗ @param conjuge∗ The conjuge to set.∗/public void setConjuge(String conjuge) {

this.conjuge = conjuge;}

/∗∗∗ @return Returns the dataNascimento.∗/public String getDataNascimento() {

return dataNascimento;}

/∗∗∗ @param dataNascimento∗ The dataNascimento to set.∗/public void setDataNascimento(String dataNascimento) {

this.dataNascimento = dataNascimento;}

/∗∗∗ @return Returns the escolaridade.

157

∗/public int getEscolaridade() {

return escolaridade;}

/∗∗∗ @param escolaridade∗ The escolaridade to set .∗/public void setEscolaridade(int escolaridade) {

this. escolaridade = escolaridade;}

/∗∗∗ @return Returns the estado.∗/public String getEstado() {

return estado;}

/∗∗∗ @param estado∗ The estado to set .∗/public void setEstado(String estado) {

this.estado = estado;}

/∗∗∗ @return Returns the estadoCivil.∗/public int getEstadoCivil() {

return estadoCivil;}

158

/∗∗∗ @param estadoCivil∗ The estadoCivil to set .∗/public void setEstadoCivil(int estadoCivil) {

this.estadoCivil = estadoCivil;}

/∗∗∗ @return Returns the mae.∗/public String getMae() {

return mae;}

/∗∗∗ @param mae∗ The mae to set.∗/public void setMae(String mae) {

this.mae = mae;}

/∗∗∗ @return Returns the nacionalidade.∗/public String getNacionalidade() {

return nacionalidade;}

/∗∗∗ @param nacionalidade∗ The nacionalidade to set.∗/public void setNacionalidade(String nacionalidade) {

159

this.nacionalidade = nacionalidade;}

/∗∗∗ @return Returns the naturalidade.∗/public String getNaturalidade() {

return naturalidade;}

/∗∗∗ @param naturalidade∗ The naturalidade to set .∗/public void setNaturalidade(String naturalidade) {

this.naturalidade = naturalidade;}

/∗∗∗ @return Returns the nome.∗/public String getNome() {

return nome;}

/∗∗∗ @param nome∗ The nome to set.∗/public void setNome(String nome) {

this.nome = nome;}

/∗∗∗ @return Returns the nomeEmpresa.

160

∗/public String getNomeEmpresa() {

return nomeEmpresa;}

/∗∗∗ @param nomeEmpresa∗ The nomeEmpresa to set.∗/public void setNomeEmpresa(String nomeEmpresa) {

this.nomeEmpresa = nomeEmpresa;}

/∗∗∗ @return Returns the numero.∗/public int getNumero() {

return numero;}

/∗∗∗ @param numero∗ The numero to set.∗/public void setNumero(int numero) {

this.numero = numero;}

/∗∗∗ @return Returns the pai.∗/public String getPai() {

return pai;}

161

/∗∗∗ @param pai∗ The pai to set .∗/public void setPai(String pai) {

this.pai = pai;}

/∗∗∗ @return Returns the rua.∗/public String getRua() {

return rua;}

/∗∗∗ @param rua∗ The rua to set.∗/public void setRua(String rua) {

this.rua = rua;}

/∗∗∗ @return Returns the sexo.∗/public String getSexo() {

return sexo;}

/∗∗∗ @param sexo∗ The sexo to set .∗/public void setSexo(String sexo) {

162

this.sexo = sexo;}

public Paciente converter() {Paciente p = new Paciente();p.setCartaoSus(getCartaoSus());p.setConjuge(getConjuge());p.setDataNascimento(Calendar.getInstance());try {

p.getDataNascimento().setTime(new SimpleDateFormat("dd/MM/yyyy")

.parse(getDataNascimento()));} catch (ParseException e) {

System.err.println("erro na ãconverso de datas");}p.setEndereco(new Endereco());p.setEstadoCivil(getEstadoCivil ());p.setMae(getMae());p.setNacionalidade(getNacionalidade());p.setNaturalidade(getNaturalidade());p.setNome(getNome());p.setNomeEmpresa(getNomeEmpresa());p.setPai(getPai ());p.setSexo(getSexo());p.getEndereco().setBairro(getBairro ());p.getEndereco().setCidade(getCidade());p.getEndereco().setComplemento(getComplemento());p.getEndereco().setEstado(getEstado());p.getEndereco().setNumero(getNumero());p.getEndereco().setRua(getRua());return p;

}

public ConversorPaciente converter(Paciente paciente) {setCartaoSus(paciente.getCartaoSus());

163

setConjuge(paciente.getConjuge());setDataNascimento(new SimpleDateFormat("dd/MM/yyyy").format(paciente

.getDataNascimento().getTime()));setEstadoCivil(paciente.getEstadoCivil ());setMae(paciente.getMae());setNacionalidade(paciente.getNacionalidade());setNaturalidade(paciente.getNaturalidade());setNome(paciente.getNome());setNomeEmpresa(paciente.getNomeEmpresa());setPai(paciente.getPai ());setSexo(paciente.getSexo());setBairro(paciente.getEndereco().getBairro());setCidade(paciente.getEndereco().getCidade());setComplemento(paciente.getEndereco().getComplemento());setEstado(paciente.getEndereco().getEstado());setNumero(paciente.getEndereco().getNumero());setRua(paciente.getEndereco().getRua());return this;

}}

164

5.1.30 SistemaAgendador/JavaSource/beans/Hospital.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate−mapping PUBLIC

"−//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge .net/hibernate−mapping−3.0.dtd">

<hibernate−mapping><class name="beans.Hospital" table="HOSPITAIS">

<id name="id"><column name="ID" not−null="true"/><generator class="increment"/>

</id>

<property name="nome"><column name="NOME" length="30" not−null="true"/>

</property>

<property name="url"><column name="URL" length="50" not−null="true"/>

</property>

</class></hibernate−mapping>

165

5.1.31 SistemaAgendador/JavaSource/beans/Usuario.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate−mapping PUBLIC

"−//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge .net/hibernate−mapping−3.0.dtd">

<hibernate−mapping><class name="beans.Usuario" table="USUARIOS">

<id name="id"><column name="ID" not−null="true"/><generator class="increment"/>

</id>

<property name="nome"><column name="NOME" length="30" not−null="true"/>

</property>

<property name="login"><column name="LOGIN" length="15" not−null="true" unique="true"/>

</property>

<property name="senha"><column name="SENHA" length="10" not−null="true"/>

</property>

</class></hibernate−mapping>

166

5.1.32 SistemaAgendador/JavaSource/actions/Gerenciador.java

<?xml version="1.0" encoding="UTF−8"?>

<!DOCTYPE taglib PUBLIC "−//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web−jsptaglibrary_1_1.dtd"><taglib><tlibversion>1.2</tlibversion><jspversion>1.1</jspversion><shortname>bean</shortname><uri>http://struts.apache.org/tags−bean</uri><tag><name>cookie</name><tagclass>org.apache.struts.taglib .bean.CookieTag</tagclass><teiclass>org.apache.struts. taglib .bean.CookieTei</teiclass><bodycontent>empty</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>multiple</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute>

167

<attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>de�ne</name><tagclass>org.apache.struts.taglib .bean.De�neTag</tagclass><teiclass>org.apache.struts. taglib .bean.De�neTei</teiclass><bodycontent>JSP</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>toScope</name><required>false</required><rtexprvalue>true</rtexprvalue>

168

</attribute><attribute><name>type</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>header</name><tagclass>org.apache.struts.taglib .bean.HeaderTag</tagclass><teiclass>org.apache.struts. taglib .bean.HeaderTei</teiclass><bodycontent>empty</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>multiple</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required>

169

<rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>include</name><tagclass>org.apache.struts.taglib .bean.IncludeTag</tagclass><teiclass>org.apache.struts. taglib .bean.IncludeTei</teiclass><bodycontent>empty</bodycontent><attribute><name>anchor</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>forward</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>href</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name>

170

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>transaction</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>message</name><tagclass>org.apache.struts.taglib .bean.MessageTag</tagclass><bodycontent>empty</bodycontent><attribute><name>arg0</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>arg1</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>arg2</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>arg3</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>arg4</name>

171

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>key</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag>

172

<name>page</name><tagclass>org.apache.struts.taglib .bean.PageTag</tagclass><teiclass>org.apache.struts. taglib .bean.PageTei</teiclass><bodycontent>empty</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>parameter</name><tagclass>org.apache.struts.taglib .bean.ParameterTag</tagclass><teiclass>org.apache.struts. taglib .bean.ParameterTei</teiclass><bodycontent>empty</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>multiple</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute>

173

<attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>resource</name><tagclass>org.apache.struts.taglib .bean.ResourceTag</tagclass><teiclass>org.apache.struts. taglib .bean.ResourceTei</teiclass><bodycontent>empty</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>input</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>size</name><tagclass>org.apache.struts.taglib .bean.SizeTag</tagclass><teiclass>org.apache.struts. taglib .bean.SizeTei</teiclass><bodycontent>empty</bodycontent><attribute><name>collection</name><required>false</required>

174

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>struts</name><tagclass>org.apache.struts.taglib .bean.StrutsTag</tagclass><teiclass>org.apache.struts. taglib .bean.StrutsTei</teiclass><bodycontent>empty</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>formBean</name>

175

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>forward</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>mapping</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>write</name><tagclass>org.apache.struts.taglib .bean.WriteTag</tagclass><bodycontent>empty</bodycontent><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>�lter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>format</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>formatKey</name>

176

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ignore</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag></taglib>

177

5.1.33 SistemaAgendador/WebContent/WEB-INF/struts-con�g.xml

<?xml version="1.0" encoding="ISO−8859−1" ?>

<!DOCTYPE struts−con�g PUBLIC"−//Apache Software Foundation//DTD Struts Con�guration 1.2//EN""http://jakarta.apache.org/struts/dtds/struts−con�g_1_2.dtd">

<struts−con�g><!−− ================================================ Form Bean De�nitions −−>

<form−beans><form−bean

name="usuario"type="org.apache.struts.action.DynaActionForm"dynamic="true"><form−property name="id" type="java.lang.Long"/><form−property name="nome" type="java.lang.String"/><form−property name="login" type="java.lang.String"/><form−property name="senha" type="java.lang.String"/>

<form−property name="acao" type="java.lang.String"/></form−bean>

<form−beanname="paciente"type="org.apache.struts.action.DynaActionForm"dynamic="true"><form−property name="cartaoSus" type="java.lang.Long"/><form−property name="nome" type="java.lang.String"/><form−property name="pai" type="java.lang.String"/><form−property name="mae" type="java.lang.String"/>

<form−property name="conjuge" type="java.lang.String"/><form−property name="dataNascimento" type="java.lang.String"/><form−property name="nacionalidade" type="java.lang.String"/><form−property name="naturalidade" type="java.lang.String"/><form−property name="nomeEmpresa" type="java.lang.String"/>

178

<form−property name="sexo" type="java.lang.String"/><form−property name="rua" type="java.lang.String"/><form−property name="numero" type="java.lang.Integer"/><form−property name="complemento" type="java.lang.String"/><form−property name="bairro" type="java.lang.String"/><form−property name="cidade" type="java.lang.String"/><form−property name="estado" type="java.lang.String"/><form−property name="estadoCivil" type="java.lang.Integer"/><form−property name="escolaridade" type="java.lang.Integer"/><form−property name="acao" type="java.lang.String"/><form−property name="opcao" type="java.lang.String"/>

</form−bean>

<form−beanname="hospital"type="org.apache.struts.action.DynaActionForm"dynamic="true"><form−property name="id" type="java.lang.Long"/><form−property name="nome" type="java.lang.String"/><form−property name="url" type="java.lang.String"/>

<form−property name="acao" type="java.lang.String"/></form−bean>

</form−beans>

<!−− ========================================= Global Exception De�nitions −−>

<global−exceptions><!−− sample exception handler

<exceptionkey="expired.password"type="app.ExpiredPasswordException"path="/changePassword.jsp"/>end sample −−>

</global−exceptions>

179

<!−− =========================================== Global Forward De�nitions −−>

<global−forwards><!−− Default forward to "Welcome" action −−><!−− Demonstrates using index.jsp to forward −−><forward name="inicio" path="/inicio.faca" />

</global−forwards>

<!−− =========================================== Action Mapping De�nitions −−>

<action−mappings>

<action path="/inicio"type="org.apache.struts.actions.ForwardAction"

parameter="/index.jsp"/>

<action path="/usuarios"type="actions.UsuariosAction"name="usuario"parameter="acao"validate="false"scope="request" ><forward path="/jsp/cadastraUsuario.jsp" name="telaCadastro" />

</action>

<action path="/hospitais"type="actions.HospitaisAction"name="hospital"parameter="acao"validate="false"scope="request" ><forward path="/jsp/cadastraHospital.jsp" name="telaCadastro" /><forward path="/jsp/listaHospitais.jsp" name="listar" />

180

</action>

<action path="/pacientes"type="actions.PacientesAction"name="paciente"parameter="acao"validate="false"scope="request" ><forward path="/jsp/cadastraPaciente.jsp" name="telaCadastro" /><forward path="/jsp/listaPacientes.jsp" name="listar" /><forward path="/jsp/buscarPaciente.jsp" name="telaBusca" />

</action>

</action−mappings>

<!−− ======================================== Message Resources De�nitions −−>

<message−resources parameter="resources.application" />

</struts−con�g>

181

5.1.34 SistemaAgendador/WebContent/WEB-INF/struts-con�g.xml.bk

<?xml version="1.0" encoding="ISO−8859−1" ?>

<!DOCTYPE struts−con�g PUBLIC"−//Apache Software Foundation//DTD Struts Con�guration 1.2//EN""http://jakarta.apache.org/struts/dtds/struts−con�g_1_2.dtd">

<struts−con�g><!−− ================================================ Form Bean De�nitions −−>

<form−beans><form−bean

name="cadastraUsuario"type="org.apache.struts.validator .DynaValidatorForm"dynamic="true">

<form−property name="nome" type="java.lang.String"/><form−property name="login" type="java.lang.String"/><form−property name="senha" type="java.lang.String"/>

<form−property name="acao" type="java.lang.String"/>

</form−bean>

<!−− bean usado para processar busca de usuarios −−><form−bean

name="cadastraPaciente"type="org.apache.struts.action.DynaActionForm"dynamic="true"><form−property name="acao" type="java.lang.String"/><form−property name="cartaoSus" type="java.lang.Long"/><form−property name="nome" type="java.lang.String"/><form−property name="sexo" type="java.lang.String"/><form−property name="dataNascimento" type="java.util.Calendar"/><form−property name="estadoCivil" type="java.lang.Integer"/><form−property name="pai" type="java.lang.String"/>

182

<form−property name="mae" type="java.lang.String"/><form−property name="conjuge" type="java.lang.String"/><form−property name="naturalidade" type="java.lang.String"/><form−property name="nacionalidade" type="java.lang.String"/><form−property name="nomeEmpresa" type="java.lang.String"/>

</form−bean>

<!−− bean usado para a lista de usuarios −−><form−bean

name="cadastraHospital"type="org.apache.struts.action.DynaActionForm"dynamic="true"><form−property name="acao" type="java.lang.String"/><form−property name="" type="java.lang.String"/><form−property name="selecionados" type="java.lang.String"/><form−property name="idUsuarioSelecionado" type="java.lang.String"/><form−property name="grupo" type="java.lang.String"/><form−property name="projeto" type="java.lang.String"/>

</form−bean>

<form−bean name="mailInterno"type="org.apache.struts.action.DynaActionForm"dynamic="true"><form−property name="nome" type="java.lang.String"/><form−property name="destinos" type="java.lang.String"/><form−property name="listaDestinos" type="java.lang.String"/><form−property name="destino" type="java.lang.String"/><form−property name="selecionados" type="java.lang.String"/><form−property name="arquivo" type="org.apache.struts.upload.FormFile"/>

</form−bean>

<!−− bean usado para o login −−><form−bean name="login"

183

type="org.apache.struts.action.DynaActionForm"dynamic="true">

<form−property name="login" type="java.lang.String"/><form−property name="senha" type="java.lang.String"/>

</form−bean>

<form−bean name="formulario"type="org.apache.struts.action.DynaActionForm"dynamic="true">

<form−property name="acao" type="java.lang.String"/><form−property name="pasta" type="java.lang.String"/><form−property name="nomePasta" type="java.lang.String"/><form−property name="renomearPasta" type="java.lang.String"/><form−property name="nomeFormulario" type="java.lang.String"/><form−property name="arquivo" type="org.apache.struts.upload.FormFile"/>

</form−bean>

<form−beanname="cadastroProjeto"type="org.apache.struts.validator .DynaValidatorForm"dynamic="true">

<form−property name="acao" type="java.lang.String"/><form−property name="id" type="java.lang.String"/><form−property name="nome" type="java.lang.String"/><form−property name="descricao" type="java.lang.String"/><form−property name="numConvenio" type="java.lang.String"/><form−property name="corFonte" type="java.lang.String"/><form−property name="corFundo" type="java.lang.String"/><form−property name="arquivo" type="org.apache.struts.upload.FormFile"/><form−property name="nomeVelho" type="java.lang.String"/><form−property name="situacao" type="java.lang.String"/>

</form−bean>

<!−− bean usado para processar busca de projetos −−>

184

<form−beanname="buscaProjetos"type="org.apache.struts.action.DynaActionForm"dynamic="true"><form−property name="acao" type="java.lang.String"/><form−property name="�ltroPesquisaProjeto" type="java.lang.String"/><form−property name="�ltroNome" type="java.lang.String"/><form−property name="�ltroDescricao" type="java.lang.String"/>

</form−bean>

<form−beanname="consulta"type="org.apache.struts.action.DynaActionForm"dynamic="true"><form−property name="acao" type="java.lang.String"/><form−property name="projetoSelecionado" type="java.lang.String"/><form−property name="projetos" type="java.lang.String"/><form−property name="selecionados" type="java.lang.String"/>

</form−bean>

<form−beanname="listaProjetos"type="org.apache.struts.action.DynaActionForm"dynamic="true"><form−property name="acao" type="java.lang.String"/><form−property name="id" type="java.lang.String"/><form−property name="selecionados" type="java.lang.String"/><form−property name="idProjetoSelecionado" type="java.lang.String"/>

</form−bean>

<form−beanname="autorizacao"type="org.apache.struts.validator .DynaValidatorForm"

185

dynamic="true">

<form−property name="acao" type="java.lang.String"/><form−property name="id" type="java.lang.String"/><form−property name="menusSelecionados" type="java.lang.String"/><form−property name="pastasSelecionadas" type="java.lang.String"/><form−property name="grupoSelecionado" type="java.lang.String"/><form−property name="tipoDeAutorizacao" type="java.lang.String"/>

</form−bean>

<form−beanname="projetoUsuario"type="org.apache.struts.validator .DynaValidatorForm"dynamic="true">

<form−property name="acao" type="java.lang.String"/><form−property name="id" type="java.lang.String"/><form−property name="idUsuarioSelecionado" type="java.lang.String"/><form−property name="selecionados" type="java.lang.String"/><form−property name="grupo" type="java.lang.String"/><form−property name="projeto" type="java.lang.String"/>

</form−bean>

<form−beanname="pesquisaUsuarios"type="org.apache.struts.validator .DynaValidatorForm"dynamic="true">

<form−property name="acao" type="java.lang.String"/><form−property name="nomeUsuario" type="java.lang.String"/><form−property name="idUsuario" type="java.lang.String"/>

</form−bean>

</form−beans>

186

<!−− ========================================= Global Exception De�nitions −−>

<global−exceptions><!−− sample exception handler

<exceptionkey="expired.password"type="app.ExpiredPasswordException"path="/changePassword.jsp"/>end sample −−>

</global−exceptions>

<!−− =========================================== Global Forward De�nitions −−>

<global−forwards><!−− Default forward to "Welcome" action −−><!−− Demonstrates using index.jsp to forward −−><forward name="inicio" path="/inicio.faca" />

</global−forwards>

<!−− =========================================== Action Mapping De�nitions −−>

<action−mappings>

<action path="/formularios"type="igti. iel . actions .FormulariosAction"name="formulario"parameter="acao"scope="request"input="/jsp/usuarios/erros.jsp" ><forward path="/jsp/formularios/renomearPasta.jsp" name="renomearPasta" /><forward path="/jsp/formularios/incluirFormulario.jsp" name="incluirFormulario" /><forward path="/jsp/formularios/incluirPasta.jsp" name="incluirPasta" />

187

<forward path="/jsp/formularios/listaPastas.jsp" name="listarPastas" /><forward path="/jsp/formularios/listaFormularios.jsp" name="listarFormularios" />

</action>

<action path="/postagem"type="igti. iel . actions .PostagemAction"name="formulario"parameter="acao"scope="request"input="/jsp/usuarios/erros.jsp" ><forward path="/jsp/postagem/incluirFormulario.jsp" name="incluirFormulario" /><forward path="/jsp/postagem/listaFormularios.jsp" name="listarFormularios" />

</action>

<action path="/inicio"type="org.apache.struts.actions.ForwardAction"

parameter="/index0.jsp"/>

<action path="/login"type="igti. iel . actions .LoginAction"name="login"scope="request">

<forward path="/index0.jsp" name="erro" /><forward path="/index1.jsp" name="sucesso" />

</action>

<action path="/gerenciarUsuario"type="igti. iel . actions .GerenteUsuarioAction"name="cadastroUsuario"parameter="acao"scope="request"input="/jsp/usuarios/erros.jsp" ><forward path="/jsp/usuarios/cadastro.jsp" name="telaCadastroUsuario" /><forward path="/jsp/usuarios/listaUsuarios.jsp" name="admin−telaListaUsuarios" />

188

</action>

<action path="/mostrarDados"type="igti. iel . actions .GerenteUsuarioAction"parameter="acao"scope="request"name="buscaUsuarios"><!−− acao meusDados −−><forward path="/jsp/usuarios/cadastro.jsp" name="telaCadastroUsuario" /><!−− acao listarUsuarios −−><forward path="/jsp/usuarios/listaUsuarios.jsp" name="admin−telaListaUsuarios" ></forward>

</action>

<action path="/listaUsuarios"type="igti. iel . actions .GerenteUsuarioAction"parameter="acao"scope="request"name="listaUsuarios"><forward path="/jsp/usuarios/cadastro.jsp" name="telaCadastroUsuario" /><forward path="/jsp/usuarios/listaUsuarios.jsp" name="admin−telaListaUsuarios" ></forward><forward path="/jsp/usuarios/listaUsuarios.jsp" name="admParticipantesProjeto"></forward>

</action>

<action path="/correioInterno"type="igti. iel . actions .CorreioInternoAction"name="mailInterno"parameter="acao"scope="request"input="/jsp/correio/correio.jsp"><forward path="/jsp/correio/correio.jsp" name="correio"/><forward path="/jsp/correio/listaMensagensRecebidas.jsp" name="mensagensRecebidas"/><forward path="/jsp/correio/listaMensagensEnviadas.jsp" name="mensagensEnviadas"/><forward path="/jsp/correio/mensagem.jsp" name="mensagem"/>

189

<forward path="/jsp/correio/listaAnexos.jsp" name="anexos"/><forward path="/jsp/correio/listaAnexados.jsp" name="anexados"/><forward path="/jsp/correio/naoLidas.jsp" name="naoLidas"/>

</action>

<action path="/consultas"type="igti. iel . actions .ConsultaAction"name="consulta"parameter="acao"scope="request"><forward path="/jsp/consulta/consultaSimpli�cada.jsp" name="consultaSimpli�cada"/><forward path="/jsp/consulta/consultaCompleta.jsp" name="consultaCompleta"/><forward path="/jsp/consulta/relatorioSimpli�cado.jsp" name="relatorioSimpli�cado"/><forward path="/jsp/consulta/relatorioCompleto.jsp" name="relatorioCompleto"/>

</action>

<action path="/projetos"type="igti. iel . actions .GerenteProjetoAction"name="cadastroProjeto"parameter="acao"scope="request"input="/jsp/projetos/erros.jsp"><forward path="/jsp/projetos/cadastro.jsp" name="telaCadastroProjeto"/><forward path="/ligarProjetoUsuario.faca?acao=participantes" name="�mCadastroNovoProjeto"/><forward path="/jsp/projetos/listaProjetos.jsp" name="listarProjetos"/><forward path="/index1.jsp" name="abrirProjeto"/><forward path="/jsp/projetos/administracaoProjetos.jsp" name="administracaoProjetos" ></forward><forward path="/jsp/usuarios/listaUsuarios.jsp" name="admParticipantesProjeto" ></forward>

</action>

<action path="/mostrarProjetos"type="igti. iel . actions .GerenteProjetoAction"parameter="acao"scope="request"name="buscaProjetos">

190

<forward path="/jsp/projetos/cadastro.jsp" name="telaCadastroProjeto"/><forward path="/jsp/projetos/administracaoProjetos.jsp" name="administracaoProjetos" ></forward>

</action>

<action path="/listaProjetos"type="igti. iel . actions .GerenteProjetoAction"parameter="acao"scope="request"name="listaProjetos"><forward path="/jsp/projetos/cadastro.jsp" name="telaCadastroProjeto"/><forward path="/jsp/projetos/administracaoProjetos.jsp" name="administracaoProjetos"></forward>

</action>

<action path="/ligarProjetoUsuario"type="igti. iel . actions .GerenteProjetoAction"parameter="acao"scope="request"name="projetoUsuario"><forward path="/jsp/usuarios/listaUsuarios.jsp" name="admParticipantesProjeto"/><forward path="/jsp/projetos/administracaoProjetos.jsp" name="administracaoProjetos"></forward>

</action>

<action path="/autorizacoesUsuarios"type="igti. iel . actions .AutorizacoesUsuariosAction"name="autorizacao"parameter="acao"validate="false"scope="request" ><forward path="/jsp/autorizacoes/autorizacoesUsuarios.jsp" name="autorizacoes" />

</action>

<action path="/pesquisaUsuarios"type="igti. iel . actions .PesquisaUsuariosAction"name="pesquisaUsuarios"parameter="acao"

191

validate="false"scope="request" ><forward path="/jsp/consulta/consultaUsuarios.jsp" name="pesquisaUsuarios" />

</action>

</action−mappings>

<!−− ======================================== Message Resources De�nitions −−>

<message−resources parameter="resources.application" />

<!−− =============================================== Plug Ins Con�guration −−>

<!−− =================================================== Validator plugin −−>

<plug−in className="org.apache.struts.validator.ValidatorPlugIn"><set−property property="pathnames"

value="/WEB−INF/validator−rules.xml,/WEB−INF/validation.xml" /></plug−in>

</struts−con�g>

192

5.1.35 SistemaAgendador/WebContent/WEB-INF/struts-html.tld

<?xml version="1.0" encoding="UTF−8"?>

<!DOCTYPE taglib PUBLIC "−//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web−jsptaglibrary_1_1.dtd"><taglib><tlibversion>1.2</tlibversion><jspversion>1.1</jspversion><shortname>html</shortname><uri>http://struts.apache.org/tags−html</uri><tag><name>base</name><tagclass>org.apache.struts.taglib .html.BaseTag</tagclass><bodycontent>empty</bodycontent><attribute><name>target</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>server</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>button</name><tagclass>org.apache.struts.taglib .html.ButtonTag</tagclass><attribute><name>accesskey</name>

193

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name>

194

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name>

195

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name>

196

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>cancel</name><tagclass>org.apache.struts.taglib .html.CancelTag</tagclass><attribute><name>accesskey</name><required>false</required>

197

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required>

198

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required>

199

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required>

200

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>checkbox</name><tagclass>org.apache.struts.taglib .html.CheckboxTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue>

201

</attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue>

202

</attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue>

203

</attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue>

204

</attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue>

205

</attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>errors</name><tagclass>org.apache.struts.taglib .html.ErrorsTag</tagclass><bodycontent>empty</bodycontent><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>footer</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue>

206

</attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>pre�x</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>su�x</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>�le</name><tagclass>org.apache.struts.taglib .html.FileTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>accept</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

207

<attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

208

<attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>maxlength</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

209

<attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

210

<attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

211

<attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>form</name><tagclass>org.apache.struts.taglib .html.FormTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>action</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute>

212

<attribute><name>acceptCharset</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>enctype</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>focus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>focusIndex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>method</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onreset</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

213

<attribute><name>onsubmit</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>readonly</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scriptLanguage</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>target</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

214

</tag><tag><name>frame</name><tagclass>org.apache.struts.taglib .html.FrameTag</tagclass><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>action</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>module</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>anchor</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>forward</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>frameborder</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

215

<name>frameName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>href</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>longdesc</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>marginheight</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>marginwidth</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>noresize</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

216

<name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramProperty</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramScope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

217

<name>scrolling</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>transaction</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag>

218

<tag><name>hidden</name><tagclass>org.apache.struts.taglib .html.HiddenTag</tagclass><bodycontent>empty</bodycontent><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

219

<name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

220

<name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

221

<name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

222

<name>write</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>html</name><tagclass>org.apache.struts.taglib .html.HtmlTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>xhtml</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>image</name><tagclass>org.apache.struts.taglib .html.ImageTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>align</name>

223

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>border</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name>

224

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name>

225

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name>

226

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>pageKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>src</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>srcKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name>

227

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>img</name><tagclass>org.apache.struts.taglib .html.ImgTag</tagclass><bodycontent>empty</bodycontent><attribute><name>align</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name>

228

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>border</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>contextRelative</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>height</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>hspace</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>imageName</name>

229

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ismap</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>lowsrc</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name>

230

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name>

231

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>pageKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>action</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>module</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramProperty</name>

232

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramScope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>src</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>srcKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name>

233

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>useLocalEncoding</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>usemap</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>vspace</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>width</name>

234

<required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>javascript</name><tagclass>org.apache.struts.taglib .html.JavascriptValidatorTag</tagclass><bodycontent>empty</bodycontent><attribute><name>cdata</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>dynamicJavascript</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>formName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>method</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scriptLanguage</name>

235

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>src</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>staticJavascript</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>htmlComment</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>link</name><tagclass>org.apache.struts.taglib .html.LinkTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>action</name><required>false</required>

236

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>module</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>anchor</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>forward</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>href</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required>

237

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>linkName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required>

238

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required>

239

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramProperty</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramScope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required>

240

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>target</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required>

241

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>transaction</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>useLocalEncoding</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>messages</name><tagclass>org.apache.struts.taglib .html.MessagesTag</tagclass><teiclass>org.apache.struts. taglib .html.MessagesTei</teiclass><bodycontent>JSP</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name>

242

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>footer</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>message</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>multibox</name><tagclass>org.apache.struts.taglib .html.MultiboxTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required>

243

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required>

244

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required>

245

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required>

246

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required>

247

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>option</name><tagclass>org.apache.struts.taglib .html.OptionTag</tagclass><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>key</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue>

248

</attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>options</name><tagclass>org.apache.struts.taglib .html.OptionsTag</tagclass><bodycontent>empty</bodycontent><attribute><name>collection</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>�lter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>labelName</name><required>false</required><rtexprvalue>true</rtexprvalue>

249

</attribute><attribute><name>labelProperty</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>optionsCollection</name><tagclass>org.apache.struts.taglib .html.OptionsCollectionTag</tagclass><bodycontent>empty</bodycontent><attribute><name>�lter</name><required>false</required><rtexprvalue>true</rtexprvalue>

250

</attribute><attribute><name>label</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>password</name><tagclass>org.apache.struts.taglib .html.PasswordTag</tagclass>

251

<attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

252

<attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>maxlength</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

253

<attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

254

<attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>readonly</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>redisplay</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

255

<attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

256

<attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>radio</name><tagclass>org.apache.struts.taglib .html.RadioTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

257

<name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

258

<name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

259

<name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

260

<name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>idName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag>

261

<tag><name>reset</name><tagclass>org.apache.struts.taglib .html.ResetTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name>

262

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name>

263

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name>

264

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>rewrite</name><tagclass>org.apache.struts.taglib .html.RewriteTag</tagclass><bodycontent>empty</bodycontent><attribute><name>action</name>

265

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>module</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>anchor</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>forward</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>href</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramId</name>

266

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramProperty</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramScope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>transaction</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>useLocalEncoding</name>

267

<required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>select</name><tagclass>org.apache.struts.taglib .html.SelectTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name>

268

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>multiple</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name>

269

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name>

270

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name>

271

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag>

272

<name>submit</name><tagclass>org.apache.struts.taglib .html.SubmitTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required>

273

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required>

274

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required>

275

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>text</name>

276

<tagclass>org.apache.struts.taglib .html.TextTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue>

277

</attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>maxlength</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue>

278

</attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue>

279

</attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>readonly</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue>

280

</attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue>

281

</attribute></tag><tag><name>textarea</name><tagclass>org.apache.struts.taglib .html.TextareaTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>cols</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

282

<attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

283

<attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

284

<attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>readonly</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

285

<attribute><name>rows</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

286

<attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>xhtml</name><tagclass>org.apache.struts.taglib .html.XhtmlTag</tagclass><bodycontent>empty</bodycontent></tag></taglib>

287

5.1.36 SistemaAgendador/WebContent/WEB-INF/struts-logic.tld

<?xml version="1.0" encoding="UTF−8"?>

<!DOCTYPE taglib PUBLIC "−//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web−jsptaglibrary_1_1.dtd"><taglib><tlibversion>1.2</tlibversion><jspversion>1.1</jspversion><shortname>logic</shortname><uri>http://struts.apache.org/tags−logic</uri><tag><name>empty</name><tagclass>org.apache.struts.taglib . logic .EmptyTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag>

288

<name>equal</name><tagclass>org.apache.struts.taglib . logic .EqualTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name>

289

<required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>forward</name><tagclass>org.apache.struts.taglib . logic .ForwardTag</tagclass><bodycontent>empty</bodycontent><attribute><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>greaterEqual</name><tagclass>org.apache.struts.taglib . logic .GreaterEqualTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name>

290

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>greaterThan</name><tagclass>org.apache.struts.taglib . logic .GreaterThanTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name>

291

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>iterate</name><tagclass>org.apache.struts.taglib . logic .IterateTag</tagclass><teiclass>org.apache.struts. taglib . logic . IterateTei</teiclass><bodycontent>JSP</bodycontent><attribute><name>collection</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

292

<name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>indexId</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>length</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>o�set</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

293

<name>type</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>lessEqual</name><tagclass>org.apache.struts.taglib . logic .LessEqualTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

294

<name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>lessThan</name><tagclass>org.apache.struts.taglib . logic .LessThanTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

295

<name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>match</name><tagclass>org.apache.struts.taglib . logic .MatchTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>location</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

296

<name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>messagesNotPresent</name><tagclass>org.apache.struts.taglib . logic .MessagesNotPresentTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

297

<name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>message</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>messagesPresent</name><tagclass>org.apache.struts.taglib . logic .MessagesPresentTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>message</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>notEmpty</name><tagclass>org.apache.struts.taglib . logic .NotEmptyTag</tagclass><bodycontent>JSP</bodycontent><attribute>

298

<name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>notEqual</name><tagclass>org.apache.struts.taglib . logic .NotEqualTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

299

<name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>notMatch</name><tagclass>org.apache.struts.taglib . logic .NotMatchTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

300

<name>location</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>notPresent</name><tagclass>org.apache.struts.taglib . logic .NotPresentTag</tagclass><bodycontent>JSP</bodycontent><attribute>

301

<name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

302

<name>user</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>present</name><tagclass>org.apache.struts.taglib . logic .PresentTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

303

<name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>user</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>redirect</name><tagclass>org.apache.struts.taglib . logic .RedirectTag</tagclass><attribute><name>action</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>anchor</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>forward</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>href</name>

304

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramProperty</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramScope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name>

305

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>transaction</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>useLocalEncoding</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag></taglib>

306

5.1.37 SistemaAgendador/WebContent/WEB-INF/struts-nested.tld

<?xml version="1.0" encoding="UTF−8"?>

<!DOCTYPE taglib PUBLIC "−//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web−jsptaglibrary_1_1.dtd"><taglib><tlibversion>1.2</tlibversion><jspversion>1.1</jspversion><shortname>nested</shortname><uri>http://struts.apache.org/tags−nested</uri><tag><name>nest</name><tagclass>org.apache.struts.taglib .nested.NestedPropertyTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>writeNesting</name><tagclass>org.apache.struts.taglib .nested.NestedWriteNestingTag</tagclass><teiclass>org.apache.struts. taglib .nested.NestedWriteNestingTei</teiclass><bodycontent>JSP</bodycontent><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

307

<name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>�lter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>root</name><tagclass>org.apache.struts.taglib .nested.NestedRootTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>de�ne</name><tagclass>org.apache.struts.taglib .nested.bean.NestedDe�neTag</tagclass><teiclass>org.apache.struts. taglib .nested.bean.NestedDe�neTei</teiclass><bodycontent>empty</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

308

<attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>toScope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>type</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>message</name><tagclass>org.apache.struts.taglib .nested.bean.NestedMessageTag</tagclass><bodycontent>empty</bodycontent><attribute><name>arg0</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

309

<attribute><name>arg1</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>arg2</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>arg3</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>arg4</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>key</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

310

<attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>size</name><tagclass>org.apache.struts.taglib .nested.bean.NestedSizeTag</tagclass><teiclass>org.apache.struts. taglib .bean.SizeTei</teiclass><bodycontent>empty</bodycontent><attribute><name>collection</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>id</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue>

311

</attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>write</name><tagclass>org.apache.struts.taglib .nested.bean.NestedWriteTag</tagclass><bodycontent>empty</bodycontent><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>�lter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>format</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>formatKey</name><required>false</required><rtexprvalue>true</rtexprvalue>

312

</attribute><attribute><name>ignore</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>checkbox</name><tagclass>org.apache.struts.taglib .nested.html.NestedCheckboxTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

313

<attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

314

<attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

315

<attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

316

<attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

317

<attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>errors</name><tagclass>org.apache.struts.taglib .nested.html.NestedErrorsTag</tagclass><bodycontent>empty</bodycontent><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>footer</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

318

<attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>pre�x</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>su�x</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>�le</name><tagclass>org.apache.struts.taglib .nested.html.NestedFileTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

319

<name>accept</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

320

<name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>maxlength</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

321

<name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

322

<name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

323

<name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>form</name><tagclass>org.apache.struts.taglib .nested.html.NestedFormTag</tagclass><bodycontent>JSP</bodycontent><attribute>

324

<name>action</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>acceptCharset</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>enctype</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>focus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>focusIndex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>method</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

325

<name>onreset</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onsubmit</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>readonly</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scriptLanguage</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

326

<name>target</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>hidden</name><tagclass>org.apache.struts.taglib .nested.html.NestedHiddenTag</tagclass><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name>

327

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>write</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>image</name><tagclass>org.apache.struts.taglib .nested.html.NestedImageTag</tagclass><attribute><name>accesskey</name><required>false</required>

328

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>align</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>border</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required>

329

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required>

330

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required>

331

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>pageKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>src</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>srcKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required>

332

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>img</name><tagclass>org.apache.struts.taglib .nested.html.NestedImgTag</tagclass><bodycontent>empty</bodycontent><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>align</name><required>false</required>

333

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>border</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>height</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>hspace</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>imageName</name><required>false</required>

334

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>ismap</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>lowsrc</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required>

335

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>pageKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>action</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>module</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramProperty</name><required>false</required>

336

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramScope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>src</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>srcKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required>

337

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>useLocalEncoding</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>usemap</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>vspace</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>width</name><required>false</required>

338

<rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>link</name><tagclass>org.apache.struts.taglib .nested.html.NestedLinkTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>action</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>module</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>anchor</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>forward</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>href</name><required>false</required><rtexprvalue>true</rtexprvalue>

339

</attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>linkName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue>

340

</attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue>

341

</attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>paramProperty</name><required>false</required><rtexprvalue>true</rtexprvalue>

342

</attribute><attribute><name>paramScope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue>

343

</attribute><attribute><name>target</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>transaction</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>useLocalEncoding</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>messages</name><tagclass>org.apache.struts.taglib .nested.html.NestedMessagesTag</tagclass><teiclass>org.apache.struts. taglib .html.MessagesTei</teiclass><bodycontent>JSP</bodycontent><attribute><name>id</name><required>true</required>

344

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>locale</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>footer</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>message</name><required>false</required>

345

<rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>multibox</name><tagclass>org.apache.struts.taglib .nested.html.NestedMultiboxTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue>

346

</attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue>

347

</attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue>

348

</attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue>

349

</attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>options</name><tagclass>org.apache.struts.taglib .nested.html.NestedOptionsTag</tagclass><bodycontent>empty</bodycontent><attribute><name>collection</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>�lter</name><required>false</required><rtexprvalue>true</rtexprvalue>

350

</attribute><attribute><name>labelName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>labelProperty</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>optionsCollection</name><tagclass>org.apache.struts.taglib .nested.html.NestedOptionsCollectionTag</tagclass>

351

<bodycontent>empty</bodycontent><attribute><name>�lter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>label</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue>

352

</attribute></tag><tag><name>password</name><tagclass>org.apache.struts.taglib .nested.html.NestedPasswordTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

353

<attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>maxlength</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

354

<attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

355

<attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>readonly</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

356

<attribute><name>redisplay</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

357

<attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>radio</name><tagclass>org.apache.struts.taglib .nested.html.NestedRadioTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

358

<name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

359

<name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

360

<name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

361

<name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>idName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>select</name><tagclass>org.apache.struts.taglib .nested.html.NestedSelectTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

362

<name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

363

<name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>multiple</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

364

<name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

365

<name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

366

<name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>submit</name><tagclass>org.apache.struts.taglib .nested.html.NestedSubmitTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name>

367

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name>

368

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name>

369

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name>

370

<required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>text</name><tagclass>org.apache.struts.taglib .nested.html.NestedTextTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>altKey</name><required>false</required>

371

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required>

372

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>maxlength</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onfocus</name><required>false</required>

373

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseover</name><required>false</required>

374

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>readonly</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleId</name><required>false</required>

375

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>textarea</name><tagclass>org.apache.struts.taglib .nested.html.NestedTextareaTag</tagclass><attribute><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue>

376

</attribute><attribute><name>altKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>bundle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>cols</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyle</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>errorStyleClass</name><required>false</required><rtexprvalue>true</rtexprvalue>

377

</attribute><attribute><name>errorStyleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexed</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue>

378

</attribute><attribute><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue>

379

</attribute><attribute><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>readonly</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>rows</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>styleClass</name><required>false</required><rtexprvalue>true</rtexprvalue>

380

</attribute><attribute><name>styleId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>titleKey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>empty</name><tagclass>org.apache.struts.taglib .nested. logic .NestedEmptyTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue>

381

</attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>equal</name><tagclass>org.apache.struts.taglib .nested. logic .NestedEqualTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue>

382

</attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>greaterEqual</name><tagclass>org.apache.struts.taglib .nested. logic .NestedGreaterEqualTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue>

383

</attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>greaterThan</name><tagclass>org.apache.struts.taglib .nested. logic .NestedGreaterThanTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue>

384

</attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>iterate</name><tagclass>org.apache.struts.taglib .nested. logic .NestedIterateTag</tagclass><teiclass>org.apache.struts. taglib .nested. logic .NestedIterateTei</teiclass><bodycontent>JSP</bodycontent><attribute><name>collection</name><required>false</required>

385

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>indexId</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>length</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>o�set</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required>

386

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>type</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>lessEqual</name><tagclass>org.apache.struts.taglib .nested. logic .NestedLessEqualTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required>

387

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>lessThan</name><tagclass>org.apache.struts.taglib .nested. logic .NestedLessThanTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required>

388

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>match</name><tagclass>org.apache.struts.taglib .nested. logic .NestedMatchTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>location</name><required>false</required>

389

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>messagesNotPresent</name><tagclass>org.apache.struts.taglib .nested. logic .NestedMessagesNotPresentTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>false</required>

390

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>message</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>messagesPresent</name><tagclass>org.apache.struts.taglib .nested. logic .NestedMessagesPresentTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>message</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>notEmpty</name>

391

<tagclass>org.apache.struts.taglib .nested. logic .NestedNotEmptyTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>notEqual</name><tagclass>org.apache.struts.taglib .nested. logic .NestedNotEqualTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required>

392

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>notMatch</name><tagclass>org.apache.struts.taglib .nested. logic .NestedNotMatchTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required>

393

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>location</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>value</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>notPresent</name>

394

<tagclass>org.apache.struts.taglib .nested. logic .NestedNotPresentTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required>

395

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>user</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>present</name><tagclass>org.apache.struts.taglib .nested. logic .NestedPresentTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>cookie</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>header</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>parameter</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>property</name><required>false</required>

396

<rtexprvalue>true</rtexprvalue></attribute><attribute><name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>user</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag></taglib>

397

5.1.38 SistemaAgendador/WebContent/WEB-INF/struts-tiles.tld

<?xml version="1.0" encoding="UTF−8"?>

<!DOCTYPE taglib PUBLIC "−//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web−jsptaglibrary_1_1.dtd"><taglib><tlibversion>1.2</tlibversion><jspversion>1.1</jspversion><shortname>tiles</shortname><uri>http://struts.apache.org/tags−tiles</uri><tag><name>insert</name><tagclass>org.apache.struts.taglib . tiles .InsertTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>template</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>component</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

398

<name>de�nition</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>attribute</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>beanName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>beanProperty</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>beanScope</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>�ush</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute>

399

<name>ignore</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>controllerUrl</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>controllerClass</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>de�nition</name><tagclass>org.apache.struts.taglib . tiles .De�nitionTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>id</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute>

400

<name>template</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>page</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>extends</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>put</name><tagclass>org.apache.struts.taglib . tiles .PutTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

401

<name>content</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>direct</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>type</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>beanName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>beanProperty</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>beanScope</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag>

402

<tag><name>putList</name><tagclass>org.apache.struts.taglib . tiles .PutListTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>name</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute></tag><tag><name>add</name><tagclass>org.apache.struts.taglib . tiles .AddTag</tagclass><bodycontent>JSP</bodycontent><attribute><name>value</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>content</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>direct</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>type</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute>

403

<name>beanName</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>beanProperty</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>beanScope</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>get</name><tagclass>org.apache.struts.taglib . tiles .GetTag</tagclass><bodycontent>empty</bodycontent><attribute><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ignore</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute>

404

<name>�ush</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>getAsString</name><tagclass>org.apache.struts.taglib . tiles .GetAttributeTag</tagclass><bodycontent>empty</bodycontent><attribute><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ignore</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>role</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>useAttribute</name><tagclass>org.apache.struts.taglib . tiles .UseAttributeTag</tagclass><teiclass>org.apache.struts. taglib . tiles .UseAttributeTei</teiclass><bodycontent>empty</bodycontent>

405

<attribute><name>id</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>classname</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>scope</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>ignore</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>importAttribute</name><tagclass>org.apache.struts.taglib . tiles .ImportAttributeTag</tagclass><bodycontent>empty</bodycontent><attribute><name>name</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>

406

<attribute><name>scope</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>ignore</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag><tag><name>initComponentDe�nitions</name><tagclass>org.apache.struts.taglib . tiles . InitDe�nitionsTag</tagclass><bodycontent>empty</bodycontent><attribute><name>�le</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute><attribute><name>classname</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute></tag></taglib>

407

5.1.39 SistemaAgendador/WebContent/WEB-INF/tiles-defs.xml

<?xml version="1.0" encoding="ISO−8859−1" ?>

<!DOCTYPE tiles−de�nitions PUBLIC"−//Apache Software Foundation//DTD Tiles Con�guration 1.1//EN""http://jakarta.apache.org/struts/dtds/ tiles−con�g_1_1.dtd">

<!−−This is a blank Tiles de�nition �le with a commented example.

−−>

<tiles−de�nitions>

<!−− sample tiles de�nitions<de�nition name=".mainLayout" path="/common/layouts/classicLayout.jsp">

<put name="title" value="Sample Page Title" /><put name="header" value="/common/header.jsp" /><put name="menu" value=".mainMenu" /><put name="footer" value="/common/footer.jsp" /><put name="body" value=".portal.body" />

</de�nition>

<de�nition name=".mainMenu" path="/common/layouts/vboxLayout.jsp" ><putList name="list" >

<add value=".menu.links" /><add value=".menu.taglib.references" /><add value=".menu.printer.friendly" /><add value=".menu.old.documents" />

</putList></de�nition>

<de�nition name="aPage" extends=".mainLayout"><put name="title" value="Another Title" /><put name="body" value=".aPage.body" />

408

</de�nition>

end samples −−>

<de�nition name="${YOUR_DEFINITION_HERE}"></de�nition>

</tiles−de�nitions>

409

5.1.40 SistemaAgendador/WebContent/WEB-INF/validation.xml

<?xml version="1.0" encoding="ISO−8859−1" ?>

<!DOCTYPE form−validation PUBLIC"−//Apache Software Foundation//DTD Commons Validator Rules Con�guration 1.1.3//EN""http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

<form−validation>

<global></global>

<!−− regras de validacao para o áformulrio cadastroDeUsuario −−>

<formset><form name="cadastroUsuario">

<�eldproperty="nome"depends="required, minlength">

<arg0 key="cadastroUsuario.nome"/><arg1 key="${var:minlength}" resource="false"/><var>

<var−name>minlength</var−name><var−value>6</var−value>

</var></�eld>

<�eldproperty="login"depends="required, minlength">

<arg0 key="cadastroUsuario.login"/><arg1 key="${var:minlength}" resource="false"/>

<var><var−name>minlength</var−name><var−value>5</var−value>

410

</var></�eld>

</form></formset>

</form−validation>

411

5.1.41 SistemaAgendador/WebContent/WEB-INF/validator-rules.xml

<!DOCTYPE form−validation PUBLIC"−//Apache Software Foundation//DTD Commons Validator Rules Con�guration 1.1.3//EN""http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

<!−−$Id: validator−rules.xml,v 1.1 2005/10/18 13:17:14 gilberto Exp $

This �le contains the default Struts Validator pluggable validatorde�nitions . It should be placed somewhere under /WEB−INF andreferenced in the struts−con�g.xml under the plug−in elementfor the ValidatorPlugIn.

<plug−in className="org.apache.struts.validator.ValidatorPlugIn"><set−property property="pathnames" value="/WEB−INF/validator−rules.xml,

/WEB−INF/validation.xml"/></plug−in>

These are the default error messages associated witheach validator de�ned in this �le . They should beadded to your projects ApplicationResources.properties�le or you can associate new ones by modifying thepluggable validators msg attributes in this �le .

# Struts Validator Error Messageserrors . required={0} is required .errors .minlength={0} can not be less than {1} characters.errors .maxlength={0} can not be greater than {1} characters.errors . invalid={0} is invalid .

errors .byte={0} must be a byte.errors .short={0} must be a short.errors . integer={0} must be an integer.errors .long={0} must be a long.errors . �oat ={0} must be a �oat.errors .double={0} must be a double.

412

errors .date={0} is not a date.errors .range={0} is not in the range {1} through {2}.errors . creditcard={0} is an invalid credit card number.errors .email={0} is an invalid e−mail address.

Note: Starting in Struts 1.2.0 the default javascript de�nitions havebeen consolidated to commons−validator. The default can be overriddenby supplying a <javascript> element with a CDATA section, just asin struts 1.1.

−−>

<form−validation>

<global>

<validator name="required"classname="org.apache.struts.validator.FieldChecks"

method="validateRequired"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

msg="errors.required"/>

<validator name="requiredif"classname="org.apache.struts.validator.FieldChecks"method="validateRequiredIf"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages,

413

org.apache.commons.validator.Validator,javax. servlet .http.HttpServletRequest"

msg="errors.required"/>

<validator name="validwhen"msg="errors.required"

classname="org.apache.struts.validator.validwhen.ValidWhen"method="validateValidWhen"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"/>

<validator name="minlength"classname="org.apache.struts.validator.FieldChecks"

method="validateMinLength"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.minlength"

jsFunction="org.apache.commons.validator.javascript.validateMinLength"/>

<validator name="maxlength"classname="org.apache.struts.validator.FieldChecks"

method="validateMaxLength"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction,

414

org.apache.commons.validator.Field,org.apache.struts .action.ActionMessages,org.apache.commons.validator.Validator,javax. servlet .http.HttpServletRequest"

depends=""msg="errors.maxlength"

jsFunction="org.apache.commons.validator.javascript.validateMaxLength"/>

<validator name="mask"classname="org.apache.struts.validator.FieldChecks"

method="validateMask"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.invalid"/>

<validator name="byte"classname="org.apache.struts.validator.FieldChecks"

method="validateByte"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.byte"

jsFunctionName="ByteValidations"/>

415

<validator name="short"classname="org.apache.struts.validator.FieldChecks"

method="validateShort"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.short"

jsFunctionName="ShortValidations"/>

<validator name="integer"classname="org.apache.struts.validator.FieldChecks"

method="validateInteger"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.integer"

jsFunctionName="IntegerValidations"/>

<validator name="long"classname="org.apache.struts.validator.FieldChecks"

method="validateLong"methodParams="java.lang.Object,

416

org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts .action.ActionMessages,org.apache.commons.validator.Validator,javax. servlet .http.HttpServletRequest"

depends=""msg="errors.long"/>

<validator name="�oat"classname="org.apache.struts.validator.FieldChecks"

method="validateFloat"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.�oat"

jsFunctionName="FloatValidations"/>

<validator name="double"classname="org.apache.struts.validator.FieldChecks"

method="validateDouble"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.double"/>

417

<validator name="date"classname="org.apache.struts.validator.FieldChecks"

method="validateDate"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.date"

jsFunctionName="DateValidations"/>

<validator name="intRange"classname="org.apache.struts.validator.FieldChecks"

method="validateIntRange"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends="integer"msg="errors.range"/>

<validator name="�oatRange"classname="org.apache.struts.validator.FieldChecks"

method="validateFloatRange"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator,

418

javax.servlet.http.HttpServletRequest"depends="�oat"

msg="errors.range"/>

<validator name="doubleRange"classname="org.apache.struts.validator.FieldChecks"

method="validateDoubleRange"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends="double"msg="errors.range"/>

<validator name="creditCard"classname="org.apache.struts.validator.FieldChecks"

method="validateCreditCard"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.creditcard"/>

<validator name="email"classname="org.apache.struts.validator.FieldChecks"

method="validateEmail"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction,

419

org.apache.commons.validator.Field,org.apache.struts .action.ActionMessages,org.apache.commons.validator.Validator,javax. servlet .http.HttpServletRequest"

depends=""msg="errors.email"/>

<validator name="url"classname="org.apache.struts.validator.FieldChecks"

method="validateUrl"methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"

depends=""msg="errors.url"/>

<!−−This simply allows struts to include the validateUtilities into a page, it shouldnot be used as a validation rule .

−−><validator name="includeJavaScriptUtilities"

classname=""method=""

methodParams=""depends=""

msg=""jsFunction="org.apache.commons.validator.javascript. validateUtilities "/>

</global>

</form−validation>

420

5.1.42 SistemaAgendador/WebContent/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF−8"?><web−app id="WebApp_ID" version="2.4"

xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema−instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web−app_2_4.xsd"><display−name>Sistema Agendador</display−name><description>

Sistema de Agendamento de Consultas dos Hospitais da RedePublica

</description><session−con�g>

<session−timeout>10</session−timeout></session−con�g>

<servlet><servlet−name>action</servlet−name><servlet−class>actions.Gerenciador</servlet−class><init−param>

<param−name>con�g</param−name><param−value>/WEB−INF/struts−con�g.xml</param−value>

</init−param><load−on−startup>2</load−on−startup>

</servlet>

<servlet−mapping><servlet−name>action</servlet−name><url−pattern>∗.faca</url−pattern>

</servlet−mapping>

<!−− Struts Tag Library Descriptors −−><taglib>

<taglib−uri>/tags/struts−bean</taglib−uri><taglib−location>/WEB−INF/struts−bean.tld</taglib−location>

</taglib>

421

<taglib><taglib−uri>/tags/struts−html</taglib−uri><taglib−location>/WEB−INF/struts−html.tld</taglib−location>

</taglib>

<taglib><taglib−uri>/tags/struts−logic</taglib−uri><taglib−location>/WEB−INF/struts−logic.tld</taglib−location>

</taglib>

<taglib><taglib−uri>/tags/struts−nested</taglib−uri><taglib−location>/WEB−INF/struts−nested.tld</taglib−location>

</taglib>

<taglib><taglib−uri>/tags/struts−tiles</taglib−uri><taglib−location>/WEB−INF/struts−tiles.tld</taglib−location>

</taglib>

<welcome−�le−list><welcome−�le>inicio.faca</welcome−�le>

<welcome−�le>index.html</welcome−�le><welcome−�le>index.htm</welcome−�le><welcome−�le>index.jsp</welcome−�le><welcome−�le>default.html</welcome−�le><welcome−�le>default.htm</welcome−�le><welcome−�le>default.jsp</welcome−�le>

</welcome−�le−list></web−app>

422

5.1.43 SistemaAgendador/WebContent/css/Geral.css

body {background−color: #FFFFCC;font−family: Verdana, Arial, Helvetica, sans−serif ;font−size: 12px;line−height: 24px;color: #336699;

}

td, th {font−family: Verdana, Arial, Helvetica, sans−serif ;font−size: 12px;line−height: 24px;color: #333333;

}

a {font−size: 12px;color: #336600;

}

form {background−color: #CCCC99;

}

. title {font−family: Verdana, Arial, Helvetica, sans−serif ;font−size: 18px;line−height: 20px;

background−color: #99CC00; color: #003333;}

. subtitle {font−family: Verdana, Arial, Helvetica, sans−serif ;font−size: 16px;line−height: 30px;

423

color: #003300;}

.header {font−family: Verdana, Arial, Helvetica, sans−serif ;font−size: 20px;background−color: #669900;

color: #FFFF33;}

.nav {font−family: Verdana, Arial, Helvetica, sans−serif ;font−size: 14px;font−weight: normal;background−color: #CCFF99;

}

.navLink {font−family: Arial, Helvetica, sans−serif ;font−size: 14px;font−weight: bold;background−color: #DEDECA;

}

.sidebar {font−family: Verdana, Arial, Helvetica, sans−serif ;font−size: 10px;line−height: 14px;padding: 3px;background−color: #FFFFCC;

color: #003333;}

.sidebarHeader {font−family: Verdana, Arial, Helvetica, sans−serif ;font−size: 14px;

424

line−height: 18px;color: #003300;background−color: #FFFF66;

}

.sidebarFooter {font−family: Verdana, Arial, Helvetica, sans−serif ;font−size: 12px;line−height: 18px;background−color: #FFFF99;

font−style: italic ;}

. footer {font−family: Arial, Helvetica, sans−serif ;

font−size: 14px;font−weight: bold;line−height: 22px;color: #333333;background−color: #CCFF99;

}

. legal {font−family: Arial, Helvetica, sans−serif ;font−size: 9px;color: #333333;

}

.box1 {border−width: thin;border−color: #99FF99 #003300 #003300 #99FF99;

border−style: double;}

.promo {

425

font−family: "Times New Roman", Times, serif;color: #000033;

}

. titlebar {font−family: "Times New Roman", Times, serif;font−size: 9px;color: #FFFFFF;background−color: #336699;

}

.dingbat {font−family: Arial, Helvetica, sans−serif ;background−color: #FFFFFF;

color: #660000; font−weight: bolder; font−size: medium;}

input.big {width: 200px;

}

input.small {width: 50px;

}

426

5.1.44 SistemaAgendador/WebContent/jsp/buscarPaciente.jsp

<%@page contentType="text/html; charset=ISO−8859−1" pageEncoding="ISO−8859−1"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre�x="c" %><%@ taglib uri="/tags/struts−bean" pre�x="bean" %><%@ taglib uri="/tags/struts−html" pre�x="html" %><%@ taglib uri="/tags/struts−logic" pre�x="logic" %><html><head>

<link rel="stylesheet"href="<%=request.getContextPath() %>/css/Geral.css" />

<title>Busca Paciente</title><meta http−equiv="Content−Type" content="text/html; charset=iso−8859−1"></head><body><html:form action="/pacientes.faca" onsubmit="return false">

<html:hidden property="acao" value="" /><html:hidden property="escolaridade" value="0" /><html:hidden property="estadoCivil" value="0" /><table height="100%" width="100%">

<tr><td align="center"><h2 align="center">Buscar Pacientes</h2><table id="tabela" align="center">

<tr><td>Nome</td><td><html:text property="nome" value=""> </html:text></td>

</tr>

<tr><td>çãOpo</td><td><html:radio property="opcao" value="NOME" onclick="mudarTexto('Nome');"> Nome </html:radio><html:radio property="opcao" value="CARTAO" onclick="mudarTexto('ãCarto Sus');"> ãCarto SUS </html:radio></td>

427

</tr><tr>

<td colspan="2" align="right"><button onclick="escolherAcao('buscar');"> Buscar </button></td></tr>

</table></td>

</tr></table>

</html:form></body><script language="javascript">function escolherAcao(acao){

document.forms.paciente.acao.value = acao;document.forms.paciente.submit();

}

function mudarTexto(texto){var col = document.getElementById('tabela').rows[0].cells [0];col .innerHTML = texto;

}</script></html>

428

5.1.45 SistemaAgendador/WebContent/jsp/cadastraConsulta.jsp

<!DOCTYPE HTML PUBLIC "−//W3C//DTD HTML 4.01 Transitional//EN"><html><head>

<link rel="stylesheet"href="<%=request.getContextPath() %>/css/Geral.css" />

<title>Cadastro Consulta</title><meta http−equiv="Content−Type" content="text/html; charset=iso−8859−1"></head><body>

<form name="formularioMedico" method="post" action="cadastraConsulta"><table>

<tr><td align="center"><h2 align="center">Cadastro Consulta</h2><table align="center">

<tr><td>Paciente</td><td><input type="text" name="paciente" size="43" value=""></td>

</tr><tr>

<td>Data</td><td><input type="text" name="data" size="43" value=""></td>

</tr><tr>

<td>Hora</td><td><input type="text" name="hora" size="43" value="" ></td>

</tr><tr>

<td>éMdico</td><td><input type="text" name="medico" size="43" value="" ></td>

</tr>

429

<tr><td colspan="4" align="center">

<input name="incluir" type="button" value="incluir"><input name="editar" type="button" value="editar"><input name="gravar" type="submit" value="gravar"><input name="modi�car" type="submit" value="modi�car"><input name="buscar" type="submit" value="buscar"><input name="excluir" type="submit" value="excluir">

</td></tr>

</table></td>

</tr></table></form></body>

</html>

430

5.1.46 SistemaAgendador/JavaSource/actions/Gerenciador.java

<%@page contentType="text/html; charset=ISO−8859−1" pageEncoding="ISO−8859−1"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre�x="c" %><%@ taglib uri="/tags/struts−bean" pre�x="bean" %><%@ taglib uri="/tags/struts−html" pre�x="html" %><%@ taglib uri="/tags/struts−logic" pre�x="logic" %><html><head>

<link rel="stylesheet"href="<%=request.getContextPath() %>/css/Geral.css" />

<title>Cadastro Hospital</title><meta http−equiv="Content−Type" content="text/html; charset=iso−8859−1"></head><body><html:form action="/hospitais.faca" onsubmit="return false">

<html:hidden property="acao" value="" /><html:hidden property="id" value="" /><table height="100%" width="100%">

<tr><td align="center"><h2 align="center">Cadastro de Hospitais</h2><table align="center">

<tr><td>Nome</td><td><html:text property="nome" value=""> </html:text></td>

</tr><tr>

<td>url</td><td><html:text property="url" value=""> </html:text></td>

</tr>

<tr>

431

<td colspan="4" align="center"><button value="Enviar" onclick="escolherAcao('cadastrar');">Enviar</button></td>

</tr></table></td>

</tr></table>

</html:form></body><script language="javascript">function escolherAcao(acao){

document.forms.relatorioUsuario.acao.value = acao;document.forms.relatorioUsuario.submit();

}</script></html>

432

5.1.47 SistemaAgendador/WebContent/jsp/cadastraPaciente.jsp

<%@page contentType="text/html; charset=ISO−8859−1" pageEncoding="ISO−8859−1"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre�x="c" %><%@ taglib uri="/tags/struts−bean" pre�x="bean" %><%@ taglib uri="/tags/struts−html" pre�x="html" %><%@ taglib uri="/tags/struts−logic" pre�x="logic" %><html><head>

<link rel="stylesheet"href="<%=request.getContextPath() %>/css/Geral.css" />

<title>Cadastro Paciente</title><meta http−equiv="Content−Type" content="text/html; charset=iso−8859−1"></head><body><html:form action="/pacientes.faca" onsubmit="return false">

<html:hidden property="acao" value="" /><html:hidden property="escolaridade" value="0" /><html:hidden property="estadoCivil" value="0" /><table height="100%" width="100%">

<tr><td align="center"><h2 align="center">Cadastro de Pacientes</h2><table align="center">

<tr><td>Cartao SUS</td><td><html:text property="cartaoSus" styleClass="big" value="${paciente_.cartaoSus}"> </html:text></td>

</tr>

<tr><td>Nome</td><td><html:text property="nome" styleClass="big" value="${paciente_.nome}"> </html:text></td>

</tr>

433

<tr><td>Pai</td><td><html:text property="pai" styleClass="big" value="${paciente_.pai}"> </html:text></td>

</tr>

<tr><td>Mae</td><td><html:text property="mae" styleClass="big" value="${paciente_.mae}"> </html:text></td>

</tr>

<tr><td>Conjuge</td><td><html:text property="conjuge" styleClass="big" value="${paciente_.conjuge}"> </html:text></td>

</tr>

<tr><td>Data Nascimento</td><td><html:text property="dataNascimento" styleClass="big" value="${paciente_.dataNascimento}"> </html:text></td>

</tr>

<tr><td>Nacionalidade</td><td><html:text property="nacionalidade" styleClass="big" value="${paciente_.nacionalidade}"> </html:text></td>

</tr>

<tr><td>Naturalidade</td><td><html:text property="naturalidade" styleClass="big" value="${paciente_.naturalidade}"> </html:text></td>

</tr>

<tr><td>NomeEmpresa</td><td><html:text property="nomeEmpresa" styleClass="big" value="${paciente_.nomeEmpresa}"> </html:text></td>

</tr>

434

<tr><td>Sexo</td><td><html:radio property="sexo" value="M"> Masculino </html:radio><html:radio property="sexo" value="F"> Feminino </html:radio></td>

</tr>

<tr><td>Rua</td><td><html:text property="rua" styleClass="big" value="${paciente_.rua}"> </html:text></td>

</tr>

<tr><td>Numero</td><td><html:text property="numero" styleClass="big" value="${paciente_.numero}"> </html:text></td>

</tr>

<tr><td>Complemento</td><td><html:text property="complemento" styleClass="big" value="${paciente_.complemento}"> </html:text></td>

</tr>

<tr><td>Bairro</td><td><html:text property="bairro" styleClass="big" value="${paciente_.bairro}"> </html:text></td>

</tr>

<tr><td>Cidade</td><td><html:text property="cidade" styleClass="big" value="${paciente_.cidade}"> </html:text></td>

</tr>

<tr><td>Estado</td><td><html:text property="estado" styleClass="big" value="${paciente_.estado}"> </html:text></td>

</tr>

435

<tr><td colspan="4" align="center"><button value="Enviar" onclick="escolherAcao('cadastrar');">Enviar</button></td>

</tr></table></td>

</tr></table>

</html:form></body><script language="javascript">function escolherAcao(acao){

document.forms.paciente.acao.value = acao;document.forms.paciente.submit();

}</script></html>

436

5.1.48 SistemaAgendador/WebContent/jsp/cadastraUsuario.jsp

<%@page contentType="text/html; charset=ISO−8859−1" pageEncoding="ISO−8859−1"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre�x="c" %><%@ taglib uri="/tags/struts−bean" pre�x="bean" %><%@ taglib uri="/tags/struts−html" pre�x="html" %><%@ taglib uri="/tags/struts−logic" pre�x="logic" %><html><head>

<link rel="stylesheet"href="<%=request.getContextPath() %>/css/Geral.css" />

<title>Cadastro áUsurio</title><meta http−equiv="Content−Type" content="text/html; charset=iso−8859−1"></head><body><html:form action="/usuarios.faca" onsubmit="return false">

<html:hidden property="acao" value="" /><html:hidden property="id" value="" /><table height="100%" width="100%">

<tr><td align="center"><h2 align="center">Cadastro de áUsurios</h2><table align="center">

<tr><td>Nome</td><td><html:text property="nome" value=""> </html:text></td>

</tr><tr>

<td>Login</td><td><html:text property="login" value=""> </html:text></td>

</tr><tr>

<td>Senha</td>

437

<td><html:text property="senha" value=""> </html:text></td></tr>

<tr><td colspan="4" align="center"><button value="Enviar" onclick="escolherAcao('cadastrar');">Enviar</button></td>

</tr></table></td>

</tr></table>

</html:form></body><script language="javascript">function escolherAcao(botao){

document.forms.usuario.acao.value=botao;document.forms.usuario.submit();

}</script></html>

438

5.1.49 SistemaAgendador/WebContent/jsp/index.jsp

<!DOCTYPE HTML PUBLIC "−//W3C//DTD HTML 4.01 Transitional//EN"><html><head>

<link rel="stylesheet"href="<%=request.getContextPath() %>/css/Geral.css" />

<title>Login</title><meta http−equiv="Content−Type" content="text/html; charset=iso−8859−1"></head>

<body onLoad="setFocus()"><img src="<%=request.getContextPath() %>/imagens/ship24.gif"></img><table>

<tr><td align="center"><form name="formularioLogin" action="agendador?action=login" method="post"><table>

<tr><td><pre>Login :</pre></td><td><input name="login" type="text" value="" size="50"

maxlength="50"></td></tr><tr>

<td><pre>Senha :</pre></td><td><input name="senha" type="password" value="" size="50"

maxlength="50"></td></tr>

</table></form></td>

</tr></table></body>

439

<script language="javascript">

function setFocus(){document.login.login.focus ();

}</script></html>

440

5.1.50 SistemaAgendador/JavaSource/actions/Gerenciador.java

<%@page contentType="text/html; charset=ISO−8859−1" pageEncoding="ISO−8859−1"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre�x="c" %><%@ taglib uri="/tags/struts−bean" pre�x="bean" %><%@ taglib uri="/tags/struts−html" pre�x="html" %><%@ taglib uri="/tags/struts−logic" pre�x="logic" %><html><head><link href="css/teste.css" rel="stylesheet" type="text/css"><meta http−equiv="Content−Type" content="text/html; charset=ISO−8859−1"><title>Hospitais</title></head><body bgcolor="#FFFFF1"><table style="width:90%;height:50%;text−align: center;">

<tr><td align="center"><h2>Hospitais</h2>

<input type="hidden" name="selecionados" value=""><input type="hidden" name="acao" value="">

<table><tr bgcolor="#FFF8DC">

<th>Hospital</th></tr><c:if test="${empty hospitais}">

<tr bgcolor="#FFF8DC"><td><i> Nenhum resultado para sua busca </i></td>

</c:if><c:forEach var="hospital" items="${hospitais}" varStatus="s">

<tr bgcolor="FFF8DC"><td><a href="#" onclick="escolheHospital('${hospital.id}')">${hospital .nome}</a></td>

</tr></c:forEach>

</table>

441

</td></tr></table>

</body>

<script language="javascript">function escolheHospital(hospital){

var url = '<%=request.getContextPath()%>/hospitais.faca';url = url + '?acao=mostrar&hospital=' + hospital;window.location = url;

}</script></html>

442

5.1.51 SistemaAgendador/WebContent/jsp/listaPacientes.jsp

<%@page contentType="text/html; charset=ISO−8859−1" pageEncoding="ISO−8859−1"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre�x="c" %><%@ taglib uri="/tags/struts−bean" pre�x="bean" %><%@ taglib uri="/tags/struts−html" pre�x="html" %><%@ taglib uri="/tags/struts−logic" pre�x="logic" %><html><head><link href="css/teste.css" rel="stylesheet" type="text/css"><meta http−equiv="Content−Type" content="text/html; charset=ISO−8859−1"><title>Pacientes</title></head><body bgcolor="#FFFFF1"><table style="width:90%;height:50%;text−align: center;">

<tr><td align="center"><h2>Pacientes</h2>

<input type="hidden" name="selecionados" value=""><input type="hidden" name="acao" value="">

<table><tr bgcolor="#FFF8DC">

<th>ãCarto Sus</th><th>Nome</th><th>ãMe</th>

</tr><c:if test="${empty pacientes}">

<tr bgcolor="#FFF8DC"><td><i> Nenhum resultado para sua busca </i></td>

</c:if><c:forEach var="paciente" items="${pacientes}" varStatus="s">

<tr bgcolor="FFF8DC"><td><a href="#" onclick="escolhePaciente('${paciente.cartaoSus}')">

${paciente.cartaoSus}</a></td><td><a href="#" onclick="escolhePaciente('${paciente.cartaoSus}')">

443

${paciente.nome}</a></td><td>${paciente.mae}</td>

</tr></c:forEach>

</table></td>

</tr></table>

</body>

<script language="javascript">function escolhePaciente(paciente){

var url = '<%=request.getContextPath()%>/pacientes.faca';url = url + '?acao=mostrar&paciente=' + paciente;window.location = url;

}</script></html>

444

5.1.52 SistemaAgendador/WebContent/jsp/menu.jsp

<!DOCTYPE HTML PUBLIC "−//W3C//DTD HTML 4.01 Transitional//EN"><html><head><link rel="stylesheet"

href="<%=request.getContextPath() %>/css/Geral.css" /><title>Menu</title><meta http−equiv="Content−Type" content="text/html; charset=iso−8859−1"></head><body><table>

<tr><td>&nbsp;</td>

</tr><tr>

<td><table id="cadastros">

<tr><th>Cadastros</th>

</tr><tr>

<td><ahref="<%=request.getContextPath() %>/usuarios.faca?acao=cadastro"target="mainFrame"> Cadastro de Usuario </a></td>

</tr><tr>

<td><ahref="<%=request.getContextPath() %>/pacientes.faca?acao=cadastro"target="mainFrame"> Cadastro de Paciente </a></td>

</tr><tr>

<td><ahref="<%=request.getContextPath() %>/hospitais.faca?acao=cadastro"target="mainFrame"> Cadastro de Hospital </a></td>

</tr>

445

</table></td>

</tr><tr>

<td>&nbsp;</td></tr><tr>

<td><table id="consultas">

<tr><th>Consultas</th>

</tr><tr>

<td><a href="marcarConsulta" target="mainFrame"> çãMarcao deConsulta </a></td>

</tr></table></td>

</tr><tr>

<td>&nbsp;</td></tr><tr>

<td><a href=""> Logo� </a></td></tr>

</table></body></html>

446

5.1.53 SistemaAgendador/WebContent/jsp/principal.jsp

<!DOCTYPE HTML PUBLIC "−//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"><html><head><link rel="stylesheet"

href="<%=request.getContextPath() %>/css/Geral.css" />

<title>Bem Vindo!</title><meta http−equiv="Content−Type" content="text/html; charset=iso−8859−1"></head>

<frameset rows="∗" cols="219,∗" framespacing="0" frameborder="YES" border="2"><frame src="menu.jsp" name="leftFrame" frameBorder="0" scrolling="NO" noresize><frame src="" name="mainFrame">

</frameset><noframes><body>

</body></noframes></html>

447

5.1.54 SistemaAgendador/WebContent/jsp/relatorioConsulta.jsp

<%@ page language="java" contentType="text/html; charset=ISO−8859−1"pageEncoding="ISO−8859−1"%>

<%@ taglib pre�x="c" uri="http://java.sun.com/jsp/jstl/core"%><html><head><link href="css/teste.css" rel="stylesheet" type="text/css"><meta http−equiv="Content−Type" content="text/html; charset=ISO−8859−1"><title>Usuarios</title></head><body bgcolor="#FFFFF1">

<form name="relatorioUsuario" method="post" action="excluirUsuarios"><table style="width:90%;height:50%;text−align: center;">

<tr><td align="center"><h2>Usuarios</h2>

<input type="hidden" name="selecionados" value=""><input type="hidden" name="acao" value="">

<table><tr bgcolor="#FFF8DC">

<th>Login</th><th>Nome</th><th>Telefone</th><th>E−Mail</th>

<th><INPUT type="checkbox" onclick="mudaEstado(this)" value="" ></th></tr><c:if test="${empty usuarios}">

<tr bgcolor="#FFF8DC"><td colspan="5"><i> Nenhum resultado para sua busca </i></td>

</c:if><c:forEach var="usuario" items="${usuarios}" varStatus="s">

<tr bgcolor="FFF8DC"><td><a href="editaUsuario?login=${usuario.login}"> ${usuario.login}</a></td>

448

<td>${usuario.nome}</td><td>${usuario.telefone}</td><td>${usuario.email}</td><td align="center"><input name="${usuario.login}" type="checkbox"value="${usuario.login}"></td>

</tr></c:forEach><c:if test="${!empty usuarios}">

<tr><td align="right" colspan="4"> <button style="height: auto;width: auto; font−family: Verdana, Arial, Helvetica, sans−serif; font−size: 12px; border: thin solid;" type="button" onclick="escolheAcao('voltar');" name=voltar value="";> voltar </button> </td><td align="rigth" colspan="4"> <button style="height: auto;width: auto; font−family: Verdana, Arial, Helvetica, sans−serif; font−size: 12px; border: thin solid;" type="button" onclick="veri�caSelecionados(); escolheAcao('excluir');"

name=excluir value="";> excluir </button> </td></tr>

</c:if><tr>

<td align="center" colspan="4"><div id="mensagem">

${msg}</div>

</td></tr>

</table></td>

</tr></table></form>

</body>

<script language="javascript">

function escolheAcao(botao){document.forms.relatorioUsuario.acao.value=botao;document.forms.relatorioUsuario.submit();

}

449

function mudaEstado(opcao) {form = document.forms.relatorioUsuario;check = opcao.checked;tam = form.elements.length;for ( i=0; i<tam; i++)

if (form.elements[i ]. type == 'checkbox')form.elements[i ]. checked = check;

}function veri�caSelecionados (){

var mensagem = "";form = document.forms.relatorioUsuario;tam = form.elements.length;for ( i=0; i<tam; i++){

if (form.elements[i ]. type == 'checkbox'&& form.elements[i].checked == 1){mensagem = mensagem +","+ form.elements[i].value;

}}form.selecionados .value = mensagem;

}

</script></html>

450

5.2 Módulo SUS

5.2.1 SistemaSUS/JavaSource/bd/hibernate/Banco.java

package bd.hibernate;

import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Con�guration;

public class Banco {

private static Banco banco;

SessionFactory sessionFactory;

private Banco() {sessionFactory = new Con�guration().con�gure().buildSessionFactory();

}

public static Banco getInstance() {if (banco == null)

banco = new Banco();return banco;

}

public Session getSession() {return sessionFactory.openSession();

}

}

451

5.2.2 SistemaSUS/JavaSource/bd/hibernate/tabelas/Pacientes.java

package bd.hibernate.tabelas;

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.List ;

import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;

import bd.hibernate.Banco;import beans.Endereco;import beans.Paciente;

public class Pacientes {

private static Pacientes pacientes;

Banco banco;

private Pacientes() {banco = Banco.getInstance();

}

public static Pacientes getInstance() {if (pacientes == null)

pacientes = new Pacientes();return pacientes;

}

public List<Paciente> get() {Session session = banco.getSession();

452

Transaction transaction = session.beginTransaction();Query query = session.createQuery("from Paciente");List<Paciente> p = query.list();transaction.commit();session . close ();return p;

}

public Paciente get(long paciente) {Session session = banco.getSession();Transaction transaction = session.beginTransaction();Paciente p = (Paciente) session .get(Paciente.class, paciente );transaction.commit();session . close ();return p;

}

public List<Paciente> getPacientesNome( String nome){nome = "%" + nome +"%";Session session = banco.getSession();Transaction transaction = session.beginTransaction();Query query = session.createQuery("from Paciente p where p.nome like :nome")

. setString("nome", nome);List<Paciente> m = query.list();transaction.commit();session . close ();return m;

}

public void atualizar(Paciente p){Session session = banco.getSession();Transaction transaction = session.beginTransaction();session .update(p);transaction.commit();session . close ();

453

}

public void set(Paciente paciente) {Session session = banco.getSession();Transaction transaction = session.beginTransaction();session .save(paciente );transaction.commit();session . close ();

}

private static void povoar(){Paciente p = new Paciente();p.setCartaoSus(2008954);p.setConjuge("Jose�na de Andrade");p.setEndereco(new Endereco());p.getEndereco().setBairro("Jardim Laranjeiras");p.getEndereco().setRua("rua das Abacates Flamejantes");p.getEndereco().setNumero(666);p.getEndereco().setCidade("çBiguau");p.getEndereco().setEstado("SC");p.setPai("Juracir Botelho Pinto");p.setMae("Maria Botelho Pinto");p.setNome("Francismar Botelho Pinto");p.setSexo("m");Date d = new Date();try {

d = new SimpleDateFormat("dd/MM/yyyy").parse("23/08/1972");} catch (ParseException e) {

// TODO Auto−generated catch blocke.printStackTrace();

}Calendar c = Calendar.getInstance();c.setTime(d);p.setDataNascimento(c);p.setNacionalidade("Brasileiro");

454

p.setNaturalidade("Tijucas");Pacientes.getInstance (). set(p);

}

private static void buscarPorNome(){String nome = "telho";List<Paciente> pacientes = Pacientes.getInstance().getPacientesNome(nome);for (Paciente paciente : pacientes) {

System.out.println(paciente.getCartaoSus() + paciente.getNome());}

}

public static void main(String[] args) {//buscarPorNome();povoar();

}}

455

5.2.3 SistemaSUS/JavaSource/beans/Endereco.java

package beans;

public class Endereco {private String rua;

private int numero;

private String complemento;

private String bairro;

private String cidade;

private String estado;

/∗∗∗ @return Returns the bairro.∗/public String getBairro() {

return bairro;}

/∗∗∗ @param bairro∗ The bairro to set .∗/public void setBairro(String bairro) {

this.bairro = bairro;}

/∗∗∗ @return Returns the cidade.∗/public String getCidade() {

456

return cidade;}

/∗∗∗ @param cidade∗ The cidade to set .∗/public void setCidade(String cidade) {

this.cidade = cidade;}

/∗∗∗ @return Returns the estado.∗/public String getEstado() {

return estado;}

/∗∗∗ @param estado∗ The estado to set .∗/public void setEstado(String estado) {

this.estado = estado;}

/∗∗∗ @return Returns the numero.∗/public int getNumero() {

return numero;}

/∗∗∗ @param numero

457

∗ The numero to set.∗/public void setNumero(int numero) {

this.numero = numero;}

/∗∗∗ @return Returns the rua.∗/public String getRua() {

return rua;}

/∗∗∗ @param rua∗ The rua to set.∗/public void setRua(String rua) {

this.rua = rua;}

/∗∗∗ @return Returns the complemento.∗/public String getComplemento() {

return complemento;}

/∗∗∗ @param complemento∗ The complemento to set.∗/public void setComplemento(String complemento) {

this.complemento = complemento;}

458

}

459

5.2.4 SistemaSUS/JavaSource/beans/Paciente.java

package beans;

import java.util.Calendar;

/∗∗ Created on 19/03/2005∗∗ TODO To change the template for this generated �le go to∗ Window − Preferences − Java − Code Style − Code Templates∗/

/∗∗∗ @author óNs∗∗ TODO To change the template for this generated type comment go to Window −∗ Preferences − Java − Code Style − Code Templates∗/public class Paciente {

private long cartaoSus;

private String nome;

private String sexo;

private Calendar dataNascimento;

private int estadoCivil;

private String pai;

private String mae;

private String conjuge;

460

private String nacionalidade;

private String naturalidade;

private String nomeEmpresa;

private Endereco endereco;

/∗∗∗ @return Returns the cartaoSus.∗/public long getCartaoSus() {

return cartaoSus;}

/∗∗∗ @param cartaoSus The cartaoSus to set.∗/public void setCartaoSus(long cartaoSus) {

this.cartaoSus = cartaoSus;}

/∗∗∗ @return Returns the conjuge.∗/public String getConjuge() {

return conjuge;}

/∗∗∗ @param conjuge The conjuge to set.∗/public void setConjuge(String conjuge) {

this.conjuge = conjuge;

461

}

/∗∗∗ @return Returns the dataNascimento.∗/public Calendar getDataNascimento() {

return dataNascimento;}

/∗∗∗ @param dataNascimento The dataNascimento to set.∗/public void setDataNascimento(Calendar dataNascimento) {

this.dataNascimento = dataNascimento;}

/∗∗∗ @return Returns the endereco.∗/public Endereco getEndereco() {

return endereco;}

/∗∗∗ @param endereco The endereco to set.∗/public void setEndereco(Endereco endereco) {

this.endereco = endereco;}

/∗∗∗ @return Returns the estadoCivil.∗/public int getEstadoCivil() {

return estadoCivil;

462

}

/∗∗∗ @param estadoCivil The estadoCivil to set.∗/public void setEstadoCivil(int estadoCivil) {

this.estadoCivil = estadoCivil;}

/∗∗∗ @return Returns the mae.∗/public String getMae() {

return mae;}

/∗∗∗ @param mae The mae to set.∗/public void setMae(String mae) {

this.mae = mae;}

/∗∗∗ @return Returns the nacionalidade.∗/public String getNacionalidade() {

return nacionalidade;}

/∗∗∗ @param nacionalidade The nacionalidade to set.∗/public void setNacionalidade(String nacionalidade) {

this.nacionalidade = nacionalidade;

463

}

/∗∗∗ @return Returns the naturalidade.∗/public String getNaturalidade() {

return naturalidade;}

/∗∗∗ @param naturalidade The naturalidade to set.∗/public void setNaturalidade(String naturalidade) {

this.naturalidade = naturalidade;}

/∗∗∗ @return Returns the nome.∗/public String getNome() {

return nome;}

/∗∗∗ @param nome The nome to set.∗/public void setNome(String nome) {

this.nome = nome;}

/∗∗∗ @return Returns the nomeEmpresa.∗/public String getNomeEmpresa() {

return nomeEmpresa;

464

}

/∗∗∗ @param nomeEmpresa The nomeEmpresa to set.∗/public void setNomeEmpresa(String nomeEmpresa) {

this.nomeEmpresa = nomeEmpresa;}

/∗∗∗ @return Returns the pai.∗/public String getPai() {

return pai;}

/∗∗∗ @param pai The pai to set.∗/public void setPai(String pai) {

this.pai = pai;}

/∗∗∗ @return Returns the sexo.∗/public String getSexo() {

return sexo;}

/∗∗∗ @param sexo The sexo to set.∗/public void setSexo(String sexo) {

this.sexo = sexo;

465

}

}

466

5.2.5 SistemaSUS/JavaSource/service/SUS.java

package service;

import bd.hibernate.tabelas.Pacientes;import beans.Paciente;

public class SUS {

private Pacientes pacientes;

public SUS() {pacientes = Pacientes.getInstance();

}

public void cadastrarPaciente(Paciente p) {pacientes . set(p);

}

public void alterarCadastroPaciente(Paciente p ){pacientes . atualizar (p);

}

public Object[] buscar(String nome){return pacientes.getPacientesNome(nome).toArray();

}

public Paciente getPaciente(long paciente){return pacientes.get(paciente);

}

}

467

5.2.6 SistemaSUS/JavaSource/uteis/Constantes.java

package uteis;

public interface Constantes {

public enum Especialidade {

CARDIOLOGISTA, ORTOPEDISTA, GINECOLOGISTA, OFTALMOLOGISTA, UROLOGISTA, GERAL, PISQUIATRA, DERMATOLOGISTA, OTORRINO,};

public enum EstadoCivil{SOLTEIRO, CASADO, DIVORCIADO, JUNTO, VIUVO

}

public enum Escolaridade{NAO_FREQUENTOU, PRIMARIO_INCOMPLETO, PRIMARIO, FUNDAMENTAL_INCOMPLETO, FUNDAMENTAL, MEDIO_INCOMPLETO, MEDIO, SUPERIOR_INCOMPLETO, SUPERIOR, MESTRE, DOUTOR

}}

468

5.2.7 SistemaSUS/WebContent/META-INF/MANIFEST.MF

Manifest−Vers ion : 1 . 0Class−Path :

5.2.8 SistemaSUS/WebContent/WEB-INF/SUSService/service/deploy.wsdd

<?xml ve r s i on ="1.0" encoding="UTF−8"?><!−− Use t h i s f i l e to deploy some hand le r s / cha ins and s e r v i c e s−−><!−− Two ways to do t h i s :−−><!−− java org . apache . ax i s . c l i e n t . AdminClient deploy . wsdd−−><!−− a f t e r the ax i s s e r v e r i s running−−><!−− or−−><!−− java org . apache . ax i s . u t i l s . Admin c l i e n t | s e r v e r deploy . wsdd−−><!−− from the same d i r e c t o r y that the Axis eng ine runs−−><deployment xmlns="http :// xml . apache . org / ax i s /wsdd/" xmlns : java="http :// xml . apache . org / ax i s /wsdd/ prov ide r s / java">

<!−− Se r v i c e s from SUSService WSDL s e r v i c e −−>

<s e r v i c e name="SUS" prov ide r="java :RPC" s t y l e="wrapped" use=" l i t e r a l "><parameter name="wsdlTargetNamespace" value="http :// s e r v i c e "/><parameter name="wsdlServiceElement " value="SUSService"/><parameter name="schemaQual i f i ed " value="http :// s e r v i c e , http :// beans"/><parameter name="wsd lServ i cePort " value="SUS"/><parameter name="className" value="s e r v i c e . SUS"/><parameter name="wsdlPortType" value="SUS"/><parameter name="typeMappingVersion" value="1.2"/><operat i on xmlns : operNS="http :// s e r v i c e " name="cadas t ra rPac i en t e " qname="operNS : cadas t ra rPac i en t e " soapAction="">

<parameter xmlns : pns="http :// s e r v i c e " xmlns : tns="http :// beans" qname="pns : p" type="tns : Pac iente"/></operat ion><operat i on xmlns : operNS="http :// s e r v i c e " name="a l t e ra rCadas t roPac i en t e " qname="operNS : a l t e ra rCadas t roPac i en t e " soapAction="">

<parameter xmlns : pns="http :// s e r v i c e " xmlns : tns="http :// beans" qname="pns : p" type="tns : Pac iente"/></operat ion><operat i on xmlns : operNS="http :// s e r v i c e " xmlns : retNS="http :// s e r v i c e " xmlns : r tn s="http ://www.w3 . org /2001/XMLSchema" name="buscar " qname="operNS : buscar " returnQName="retNS : buscarReturn " returnType="r tn s : anyType" soapAction="">

<parameter xmlns : pns="http :// s e r v i c e " xmlns : tns="http ://www.w3 . org /2001/XMLSchema" qname="pns : nome" type="tns : s t r i n g "/></operat ion><operat i on xmlns : operNS="http :// s e r v i c e " xmlns : retNS="http :// s e r v i c e " xmlns : r tn s="http :// beans" name="getPac i ente " qname="operNS : ge tPac i ente " returnQName="retNS : getPac ienteReturn " returnType="r tn s : Pac iente " soapAction="">

<parameter xmlns : pns="http :// s e r v i c e " xmlns : tns="http ://www.w3 . org /2001/XMLSchema" qname="pns : pac i en te " type="tns : long"/>

469

</operat ion><parameter name="allowedMethods" value="a l t e ra rCadas t roPac i en t e buscar cadas t ra rPac i en t e ge tPac i ente"/>

<typeMapping xmlns : ns="http :// beans" qname="ns : Pac iente " type="java : beans . Pac iente " s e r i a l i z e r="org . apache . ax i s . encoding . s e r . BeanSe r i a l i z e rFac to ry " d e s e r i a l i z e r="org . apache . ax i s . encoding . s e r . BeanDese r i a l i z e rFac to ry " encod ingSty l e=""/><typeMapping xmlns : ns="http :// beans" qname="ns : Endereco" type="java : beans . Endereco" s e r i a l i z e r="org . apache . ax i s . encoding . s e r . BeanSe r i a l i z e rFac to ry " d e s e r i a l i z e r="org . apache . ax i s . encoding . s e r . BeanDese r i a l i z e rFac to ry " encod ingSty l e=""/>

</s e rv i c e ></deployment>

5.2.9 SistemaSUS/WebContent/WEB-INF/SUSService/service/undeploy.wsdd

<!−− Use t h i s f i l e to undeploy some hand le r s / cha ins and s e r v i c e s−−><!−− Two ways to do t h i s :−−><!−− java org . apache . ax i s . c l i e n t . AdminClient undeploy . wsdd−−><!−− a f t e r the ax i s s e r v e r i s running−−><!−− or−−><!−− java org . apache . ax i s . u t i l s . Admin c l i e n t | s e r v e r undeploy . wsdd −−><!−− from the same d i r e c t o r y that the Axis eng ine runs−−>

<undeploymentxmlns="http :// xml . apache . org / ax i s /wsdd/">

<!−− Se r v i c e s from SUSService WSDL s e r v i c e −−>

<s e r v i c e name="SUS"/></undeployment>

5.2.10 SistemaSUS/JavaSource/bd/hibernate/Banco.java

<?xml ve r s i on ="1.0" encoding="UTF−8"?><deployment xmlns="http :// xml . apache . org / ax i s /wsdd/" xmlns : java="http :// xml . apache . org / ax i s /wsdd/ prov ide r s / java"><globa lCon f i gura t i on>

470

<parameter name="sendMult iRefs " va lue="true"/><parameter name="disablePrettyXML" value="true"/><parameter name="adminPassword" value="admin"/><parameter name="attachments . D i r ec to ry " value="/home/workspace/SistemaSUS / . dep loyab l e s /SistemaSUS/WEB−INF/attachments"/><parameter name="dotNetSoapEncFix" value="true"/><parameter name="enableNamespacePref ixOptimizat ion " value="true"/><parameter name="sendXMLDeclaration" value="true"/><parameter name="sendXsiTypes" value="true"/><parameter name="attachments . implementation " value="org . apache . ax i s . attachments . AttachmentsImpl"/><requestFlow><handler type="java : org . apache . ax i s . hand le r s . JWSHandler"><parameter name="scope " value="s e s s i o n "/>

</handler><handler type="java : org . apache . ax i s . hand le r s . JWSHandler"><parameter name="scope " value="reques t"/><parameter name="extens i on " value=". jwr"/>

</handler></requestFlow>

</g loba lCon f i gura t i on><handler name="LocalResponder " type="java : org . apache . ax i s . t r an spo r t . l o c a l . LocalResponder"/><handler name="URLMapper" type="java : org . apache . ax i s . hand le r s . http .URLMapper"/><handler name="Authent icate " type="java : org . apache . ax i s . hand le r s . S impleAuthent icat ionHandler"/><s e r v i c e name="SUS" prov ide r="java :RPC" s t y l e="wrapped" use=" l i t e r a l "><operat i on name="cadas t ra rPac i en t e " qname="ns1 : cadas t ra rPac i en t e " soapAction="" xmlns : ns1="http :// s e r v i c e "><parameter qname="ns1 : p" type="ns2 : Pac iente " xmlns : ns2="http :// beans"/>

</operat ion><operat i on name="a l t e ra rCadas t roPac i en t e " qname="ns3 : a l t e ra rCadas t roPac i en t e " soapAction="" xmlns : ns3="http :// s e r v i c e "><parameter qname="ns3 : p" type="ns4 : Pac iente " xmlns : ns4="http :// beans"/>

</operat ion><operat i on name="buscar " qname="ns5 : buscar " returnQName="ns5 : buscarReturn" returnType="xsd : anyType" soapAction="" xmlns : ns5="http :// s e r v i c e " xmlns : xsd="http ://www.w3 . org /2001/XMLSchema"><parameter qname="ns5 : nome" type="xsd : s t r i n g "/>

</operat ion><operat i on name="getPac i ente " qname="ns6 : ge tPac i ente " returnQName="ns6 : getPac ienteReturn " returnType="ns7 : Pac iente " soapAction="" xmlns : ns6="http :// s e r v i c e " xmlns : ns7="http :// beans"><parameter qname="ns6 : pac i en te " type="xsd : long " xmlns : xsd="http ://www.w3 . org /2001/XMLSchema"/>

</operat ion>

471

<parameter name="allowedMethods" value="a l t e ra rCadas t roPac i en t e buscar cadas t ra rPac i en t e ge tPac i ente"/><parameter name="typeMappingVersion" value="1.2"/><parameter name="wsdlPortType" value="SUS"/><parameter name="className" value="s e r v i c e . SUS"/><parameter name="wsd lServ i cePort " value="SUS"/><parameter name="schemaQual i f i ed " value="http :// s e r v i c e , http :// beans"/><parameter name="wsdlTargetNamespace" value="http :// s e r v i c e "/><parameter name="wsdlServiceElement " value="SUSService"/><typeMapping d e s e r i a l i z e r="org . apache . ax i s . encoding . s e r . BeanDese r i a l i z e rFac to ry " encod ingSty l e="" qname="ns8 : Pac iente " s e r i a l i z e r="org . apache . ax i s . encoding . s e r . BeanSe r i a l i z e rFac to ry " type="java : beans . Pac iente " xmlns : ns8="http :// beans"/><typeMapping d e s e r i a l i z e r="org . apache . ax i s . encoding . s e r . BeanDese r i a l i z e rFac to ry " encod ingSty l e="" qname="ns9 : Endereco" s e r i a l i z e r="org . apache . ax i s . encoding . s e r . BeanSe r i a l i z e rFac to ry " type="java : beans . Endereco" xmlns : ns9="http :// beans"/>

</s e rv i c e ><s e r v i c e name="AdminService" prov ide r="java :MSG"><parameter name="allowedMethods" value="AdminService"/><parameter name="enableRemoteAdmin" value="true"/><parameter name="className" value="org . apache . ax i s . u t i l s . Admin"/><namespace>http :// xml . apache . org / ax i s /wsdd/</namespace>

</s e rv i c e ><s e r v i c e name="Vers ion " prov ide r="java :RPC"><parameter name="allowedMethods" value="getVers ion"/><parameter name="className" value="org . apache . ax i s . Vers ion"/>

</s e rv i c e ><transpo r t name="http"><requestFlow><handler type="URLMapper"/><handler type="java : org . apache . ax i s . hand le r s . http . HTTPAuthHandler"/>

</requestFlow><parameter name="qs : l i s t " va lue="org . apache . ax i s . t r an spo r t . http . QSListHandler"/><parameter name="qs : wsdl " value="org . apache . ax i s . t r an spo r t . http .QSWSDLHandler"/><parameter name="qs . l i s t " va lue="org . apache . ax i s . t r an spo r t . http . QSListHandler"/><parameter name="qs . method" value="org . apache . ax i s . t r an spo r t . http . QSMethodHandler"/><parameter name="qs : method" value="org . apache . ax i s . t r an spo r t . http . QSMethodHandler"/><parameter name="qs . wsdl " value="org . apache . ax i s . t r an spo r t . http .QSWSDLHandler"/>

</transport><transpo r t name=" l o c a l "><responseFlow>

472

<handler type="LocalResponder"/></responseFlow>

</transport></deployment>

5.2.11 SistemaSUS/WebContent/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF−8"?><web−app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema−instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web−app_2_4.xsd">

<display−name>SistemaSUS</display−name><servlet>

<display−name>Apache−Axis Servlet</display−name><servlet−name>AxisServlet</servlet−name><servlet−class>org.apache.axis.transport.http.AxisServlet</servlet−class>

</servlet><servlet>

<display−name>Axis Admin Servlet</display−name><servlet−name>AdminServlet</servlet−name><servlet−class>org.apache.axis.transport.http.AdminServlet</servlet−class><load−on−startup>100</load−on−startup>

</servlet><servlet−mapping>

<servlet−name>AxisServlet</servlet−name><url−pattern>/servlet/AxisServlet</url−pattern>

</servlet−mapping><servlet−mapping>

<servlet−name>AxisServlet</servlet−name><url−pattern>∗.jws</url−pattern>

</servlet−mapping><servlet−mapping>

<servlet−name>AxisServlet</servlet−name>

473

<url−pattern>/services/∗</url−pattern></servlet−mapping><servlet−mapping>

<servlet−name>AdminServlet</servlet−name><url−pattern>/servlet/AdminServlet</url−pattern>

</servlet−mapping><welcome−�le−list>

<welcome−�le>index.html</welcome−�le><welcome−�le>index.htm</welcome−�le><welcome−�le>index.jsp</welcome−�le><welcome−�le>default.html</welcome−�le><welcome−�le>default.htm</welcome−�le><welcome−�le>default.jsp</welcome−�le>

</welcome−�le−list></web−app>

5.2.12 SistemaSUS/WebContent/wsdl/SUS.wsdl

<?xml ve r s i on ="1.0" encoding="UTF−8"?><wsdl : d e f i n i t i o n s targetNamespace="http :// s e r v i c e " xmlns : apachesoap="http :// xml . apache . org /xml−soap" xmlns : impl="http :// s e r v i c e " xmlns : i n t f="http :// s e r v i c e " xmlns : tns1="http :// beans" xmlns : wsdl="http :// schemas . xmlsoap . org /wsdl /" xmlns : wsdlsoap="http :// schemas . xmlsoap . org /wsdl / soap /" xmlns : xsd="http ://www.w3 . org /2001/XMLSchema"><!−−WSDL created by Apache Axis v e r s i on : 1 . 2 . 1Bu i l t on Jun 14 , 2005 ( 09 : 1 5 : 5 7 EDT)−−><wsdl : types><schema elementFormDefault="q u a l i f i e d " targetNamespace="http :// s e r v i c e " xmlns="http ://www.w3 . org /2001/XMLSchema"><import namespace="http :// beans"/><element name="cadas t ra rPac i en t e"><complexType><sequence><element name="p" type="tns1 : Pac iente"/>

</sequence></complexType>

</element><element name="cadast rarPac ienteResponse"><complexType/>

</element><element name="a l t e ra rCadas t roPac i en t e">

474

<complexType><sequence><element name="p" type="tns1 : Pac iente"/>

</sequence></complexType>

</element><element name="a l te rarCadast roPac i enteResponse"><complexType/>

</element><element name="buscar"><complexType><sequence><element name="nome" type="xsd : s t r i n g "/>

</sequence></complexType>

</element><element name="buscarResponse"><complexType><sequence><element maxOccurs="unbounded" name="buscarReturn" type="xsd : anyType"/>

</sequence></complexType>

</element><element name="getPac i ente"><complexType><sequence><element name="pac i en te " type="xsd : long"/>

</sequence></complexType>

</element><element name="getPacienteResponse"><complexType><sequence><element name="getPacienteReturn " type="tns1 : Pac iente"/>

</sequence>

475

</complexType></element>

</schema><schema elementFormDefault="q u a l i f i e d " targetNamespace="http :// beans" xmlns="http ://www.w3 . org /2001/XMLSchema"><complexType name="Endereco"><sequence><element name="ba i r r o " n i l l a b l e="true " type="xsd : s t r i n g "/><element name="cidade " n i l l a b l e="true " type="xsd : s t r i n g "/><element name="complemento" n i l l a b l e="true " type="xsd : s t r i n g "/><element name="estado " n i l l a b l e="true " type="xsd : s t r i n g "/><element name="numero" type="xsd : i n t "/><element name="rua" n i l l a b l e="true " type="xsd : s t r i n g "/>

</sequence></complexType><complexType name="Pac iente"><sequence><element name="cartaoSus " type="xsd : long"/><element name="conjuge " n i l l a b l e="true " type="xsd : s t r i n g "/><element name="dataNascimento" n i l l a b l e="true " type="xsd : dateTime"/><element name="endereco " n i l l a b l e="true " type="tns1 : Endereco"/><element name="e s t adoC iv i l " type="xsd : i n t "/><element name="mae" n i l l a b l e="true " type="xsd : s t r i n g "/><element name="nac i ona l idade " n i l l a b l e="true " type="xsd : s t r i n g "/><element name="natura l idade " n i l l a b l e="true " type="xsd : s t r i n g "/><element name="nome" n i l l a b l e="true " type="xsd : s t r i n g "/><element name="nomeEmpresa" n i l l a b l e="true " type="xsd : s t r i n g "/><element name="pai " n i l l a b l e="true " type="xsd : s t r i n g "/><element name="sexo " n i l l a b l e="true " type="xsd : s t r i n g "/>

</sequence></complexType>

</schema></wsdl : types>

<wsdl : message name="getPac ienteRequest">

476

<wsdl : part element="impl : ge tPac i ente " name="parameters"/>

</wsdl : message>

<wsdl : message name="cadast rarPac ienteResponse">

<wsdl : part element="impl : cadast rarPac ienteResponse " name="parameters"/>

</wsdl : message>

<wsdl : message name="getPac ienteResponse">

<wsdl : part element="impl : getPac ienteResponse " name="parameters"/>

</wsdl : message>

<wsdl : message name="a l t e ra rCadast roPac i enteReques t">

<wsdl : part element="impl : a l t e r a rCadas t roPac i en t e " name="parameters"/>

</wsdl : message>

<wsdl : message name="a l te rarCadast roPac i enteResponse">

<wsdl : part element="impl : a l t e rarCadast roPac i enteResponse " name="parameters"/>

</wsdl : message>

<wsdl : message name="cadast rarPac i enteRequest">

<wsdl : part element="impl : cadas t ra rPac i en t e " name="parameters"/>

</wsdl : message>

<wsdl : message name="buscarResponse">

477

<wsdl : part element="impl : buscarResponse " name="parameters"/>

</wsdl : message>

<wsdl : message name="buscarRequest">

<wsdl : part element="impl : buscar " name="parameters"/>

</wsdl : message>

<wsdl : portType name="SUS">

<wsdl : ope ra t i on name="cadas t ra rPac i en t e">

<wsdl : input message="impl : cadast rarPac i enteRequest " name="cadast rarPac i enteRequest"/>

<wsdl : output message="impl : cadast rarPac ienteResponse " name="cadast rarPac ienteResponse"/>

</wsdl : operat ion>

<wsdl : ope ra t i on name="a l t e ra rCadas t roPac i en t e">

<wsdl : input message="impl : a l t e ra rCadast roPac i enteReques t " name="a l t e ra rCadast roPac i enteReques t"/>

<wsdl : output message="impl : a l t e rarCadast roPac i enteResponse " name="a l te rarCadast roPac i enteResponse"/>

</wsdl : operat ion>

<wsdl : ope ra t i on name="buscar">

<wsdl : input message="impl : buscarRequest " name="buscarRequest"/>

<wsdl : output message="impl : buscarResponse " name="buscarResponse"/>

478

</wsdl : operat ion>

<wsdl : ope ra t i on name="getPac i ente">

<wsdl : input message="impl : getPac ienteRequest " name="getPac ienteRequest"/>

<wsdl : output message="impl : getPac ienteResponse " name="getPac ienteResponse"/>

</wsdl : operat ion>

</wsdl : portType>

<wsdl : b inding name="SUSSoapBinding" type="impl : SUS">

<wsdlsoap : b inding s t y l e="document" t ranspo r t="http :// schemas . xmlsoap . org / soap/http"/>

<wsdl : ope ra t i on name="cadas t ra rPac i en t e">

<wsdlsoap : opera t i on soapAction=""/>

<wsdl : input name="cadast rarPac i enteRequest">

<wsdlsoap : body use=" l i t e r a l "/>

</wsdl : input>

<wsdl : output name="cadast rarPac ienteResponse">

<wsdlsoap : body use=" l i t e r a l "/>

</wsdl : output>

</wsdl : operat ion>

<wsdl : ope ra t i on name="a l t e ra rCadas t roPac i en t e">

479

<wsdlsoap : opera t i on soapAction=""/>

<wsdl : input name="a l t e ra rCadast roPac i enteReques t">

<wsdlsoap : body use=" l i t e r a l "/>

</wsdl : input>

<wsdl : output name="a l te rarCadast roPac i enteResponse">

<wsdlsoap : body use=" l i t e r a l "/>

</wsdl : output>

</wsdl : operat ion>

<wsdl : ope ra t i on name="buscar">

<wsdlsoap : opera t i on soapAction=""/>

<wsdl : input name="buscarRequest">

<wsdlsoap : body use=" l i t e r a l "/>

</wsdl : input>

<wsdl : output name="buscarResponse">

<wsdlsoap : body use=" l i t e r a l "/>

</wsdl : output>

</wsdl : operat ion>

480

<wsdl : ope ra t i on name="getPac i ente">

<wsdlsoap : opera t i on soapAction=""/>

<wsdl : input name="getPac ienteRequest">

<wsdlsoap : body use=" l i t e r a l "/>

</wsdl : input>

<wsdl : output name="getPacienteResponse">

<wsdlsoap : body use=" l i t e r a l "/>

</wsdl : output>

</wsdl : operat ion>

</wsdl : binding>

<wsdl : s e r v i c e name="SUSService">

<wsdl : port b inding="impl : SUSSoapBinding" name="SUS">

<wsdlsoap : address l o c a t i o n="http :// l o c a l h o s t :8080/ SistemaSUS/ s e r v i c e s /SUS"/>

</wsdl : port>

</wsdl : s e r v i c e >

</wsdl : d e f i n i t i o n s >

5.2.13 SistemaSUS/JavaSource/beans/Paciente.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate−mapping PUBLIC

481

"−//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge .net/hibernate−mapping−3.0.dtd">

<hibernate−mapping><class name="beans.Paciente" table="PACIENTES">

<id name="cartaoSus"><column name="ID" not−null="true" /><generator class="assigned" />

</id>

<property name="nome"><column name="NOME" length="50" not−null="true" />

</property>

<property name="sexo"><column name="SEXO" />

</property>

<property name="dataNascimento"><column name="NACIMENTO" />

</property>

<property name="estadoCivil"><column name="ESTADO_CIVIL" />

</property>

<property name="pai"><column name="PAI" />

</property>

<property name="mae"><column name="MAE" />

</property>

<property name="conjuge"><column name="CONJUGE" not−null="false"/>

482

</property>

<property name="nacionalidade"><column name="NACIONALIDADE" />

</property>

<property name="naturalidade"><column name="NATURALIDADE" />

</property>

<property name="nomeEmpresa"><column name="EMPRESA" not−null="false"/>

</property>

<component name="endereco" class="beans.Endereco"><property name="rua">

<column name="RUA" /></property>

<property name="numero"><column name="NUMERO" />

</property>

<property name="complemento"><column name="COMPLEMENTO" not−null="false"/>

</property>

<property name="bairro"><column name="BAIRRO" />

</property>

<property name="cidade"><column name="CIDADE"/>

</property>

483

<property name="estado"><column name="ESTADO"/>

</property>

</component></class>

</hibernate−mapping>

5.3 Módulo Hospital

5.3.1 SistemaHospital/JavaSource/bd/hibernate/Banco.java

package bd.hibernate;

import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Con�guration;

public class Banco {

private static Banco banco;

SessionFactory sessionFactory;

private Banco() {sessionFactory = new Con�guration().con�gure().buildSessionFactory();

}

public static Banco getInstance() {if (banco == null)

banco = new Banco();return banco;

}

public Session getSession() {return sessionFactory.openSession();

484

}

}

485

5.3.2 SistemaHospital/JavaSource/bd/hibernate/tabelas/Consultas.java

package bd.hibernate.tabelas;

import java.util. Iterator ;import java.util.LinkedList;import java.util.List ;

import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;

import uteis.Data;import bd.hibernate.Banco;import beans.Consulta;import beans.Medico;import beans.Paciente;

public class Consultas {

private static Consultas consultas;

private Banco banco;

public void marcar(long consulta, Paciente paciente) {Session session = banco.getSession();Transaction transaction = session.beginTransaction();Consulta c = (Consulta) session.get(Consulta.class, consulta);c.setPaciente(paciente );session .saveOrUpdate(paciente);transaction.commit();session . close ();

}

public void desmarcar(long consulta){Session session = banco.getSession();

486

Transaction transaction = session.beginTransaction();Consulta c = (Consulta) session.get(Consulta.class, consulta);c.setPaciente(null);transaction.commit();session . close ();

}

public List<Consulta> getConsultasPaciente(long paciente) {String q = "from Consulta c where c.paciente = '"+ paciente +"' "

+ "order by c.data asc, c.hora asc";Session session = banco.getSession();Transaction transaction = session.beginTransaction();session .get(Paciente.class, paciente );Query query = session.createQuery(q);List<Consulta> consultas = query.list();transaction.commit();session . close ();return consultas;

}

public List<Consulta> get(long medico, long paciente) {String q = "from Consulta c where c.medico = '"

+ medico + "'" + "and c.paciente = '"+ paciente +"' "+ "' order by c.data asc, c.hora asc";

Session session = banco.getSession();Transaction transaction = session.beginTransaction();Query query = session.createQuery(q);List<Consulta> consultas = query.list();transaction.commit();session . close ();return consultas;

}

public List<Consulta> getDisponiveisEspecialidade(int especialidade) {Data data = new Data();

487

String q1 = "from Consulta c where c.medico.especialidade = '"+ especialidade + "'" + "and c.paciente is null and c.data = '"+ data.dataInvertida() + "' and c.hora > '" + data.getHora()+ "' order by c.hora asc";String q2 = "from Consulta c where c.medico.especialidade = '"+ especialidade + "'" + "and c.paciente is null and c.data > '"+ data.dataInvertida() + "' order by c.data asc, c.hora asc";

Session session = banco.getSession();Transaction transaction = session.beginTransaction();session .createQuery("from Medico m where m.especialidade = '" + especialidade +"'").list();Query query = session.createQuery(q1);List<Consulta> consultas = query.list();consultas .addAll(session.createQuery(q2). list ());transaction.commit();session . close ();for (Consulta consulta : consultas) {

consulta.inverterData();}return consultas;

}

public List<Consulta> getDisponiveisMedico(long medico) {Data data = new Data();Session session = banco.getSession();Transaction transaction = session.beginTransaction();session .get(Medico.class, medico);String q1 = "from Consulta c where c.medico = '"

+ medico + "'" + "and c.paciente is null and c.data = '"+ data.dataInvertida() + "' and c.hora > '" + data.getHora()+ "' order by c.hora asc";String q2 = "from Consulta c where c.medico = '" + medico+ "'" + "and c.paciente is null and c.data > '"+ data.dataInvertida() + "' order by c.data asc, c.hora asc";

Query query = session.createQuery(q1);List<Consulta> consultas = query.list();

488

consultas .addAll(session.createQuery(q2). list ());transaction.commit();session . close ();for (Consulta consulta : consultas) {

consulta.inverterData();}return consultas;

}

public Consulta get(long consulta) {Session session = banco.getSession();Transaction transaction = session.beginTransaction();Consulta c = (Consulta) session.get(Consulta.class, consulta);transaction.commit();session . close ();return c;

}

public void set(LinkedList<Consulta> consultas) {Session session = banco.getSession();Transaction transaction = session.beginTransaction();for (Consulta c : consultas) {

session .save(c);}transaction.commit();session . close ();

}

private Consultas() {banco = Banco.getInstance();

}

public static Consultas getInstance() {if (consultas == null)

consultas = new Consultas();

489

return consultas;}

private static void testarMarcarConsulta(){Paciente p = new Paciente();p.setCartaoSus(250086);p.setNome("australopitecos da silva neto");Consultas.getInstance().marcar(1,p);

}

private static void povoar(){LinkedList<Consulta> consultas = new LinkedList<Consulta>();LinkedList<Medico> medicos = Medicos.getInstance().get();Data data = Data.getData("01/02/2006−00:00");String [] horas = { "08", "09", "10", "11", "12", "13", "14", "15",

"16", "17" };String [] minutos = { "00", "30" };Consultas cs = Consultas.getInstance();Medico[] m = medicos.toArray(new Medico[medicos.size()]);Medico [][] medicosEspecialidade = new Medico[2][];Medico[] aux = new Medico[m.length / 2];int x = 0;for (int i = 0; i < aux.length; i++) {

aux[i ] = m[x++];}medicosEspecialidade[0] = aux;aux = new Medico[m.length − aux.length];for (int i = 0; i < aux.length; i++) {

aux[i ] = m[x++];}medicosEspecialidade[1] = aux;for (int i = 0; i < medicosEspecialidade.length; i++) {

System.out.println( i + ": " + medicosEspecialidade[i].length);}Consulta c;

490

for (int i = 0; i < 93; i++) {if (data.isDiaUtil ()) {

for (int j = horas.length − 1; j >= 0; j−−) {if (horas[ j ]. compareTo("13") < 0) {

m = medicosEspecialidade[0];} else {

m = medicosEspecialidade[1];}for (int k = minutos.length − 1; k >= 0; k−−) {

for (int index = m.length − 1; index >= 0; index−−) {c = new Consulta();c.setData(data.dataInvertida());c.setHora(horas[j ] + ":" + minutos[k]);c.setMedico(m[index]);consultas .addFirst(c);

}}

}}data.add(Data.DIA, −1);

}System.out.println(consultas . size ());cs . set(consultas );

}

/∗∗∗ @param args∗/public static void main(String[] args) {

povoar();}

}

491

5.3.3 SistemaHospital/JavaSource/bd/hibernate/tabelas/Medicos.java

package bd.hibernate.tabelas;

import java.util. Iterator ;import java.util.LinkedList;import java.util.List ;

import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;

import uteis.Constantes;import uteis.Constantes.Especialidade;import bd.hibernate.Banco;import beans.Medico;

public class Medicos {

private static Medicos medicos;

Banco banco;

private Medicos() {banco = Banco.getInstance();

}

public static Medicos getInstance() {if (medicos == null)

medicos = new Medicos();return medicos;

}

public List<Medico> getMedicosNome( String nome){nome = "%" + nome +"%";Session session = banco.getSession();

492

Transaction transaction = session.beginTransaction();Query query = session.createQuery("from Medico m where m.nome like :nome")

. setString("nome", nome);List<Medico> m = query.list();

transaction.commit();session . close ();return m;

}

public LinkedList<Medico> getMedicosEspecialidade( int especialidade){LinkedList<Medico> m = new LinkedList<Medico>();Session session = banco.getSession();Transaction transaction = session.beginTransaction();Query query = session.createQuery("from Medico m where m.especialidade = '" + especialidade +"'");Iterator<Medico> medicos = query.list().iterator();while (medicos.hasNext())

m.add(medicos.next());transaction.commit();session . close ();return m;

}

public LinkedList<Medico> get() {LinkedList<Medico> m = new LinkedList<Medico>();Session session = banco.getSession();Transaction transaction = session.beginTransaction();Query query = session.createQuery("from Medico order by crm asc");Iterator<Medico> medicos = query.list().iterator();while (medicos.hasNext())

m.add(medicos.next());transaction.commit();session . close ();return m;

}

493

public Medico get(long medico) {Session session = banco.getSession();Transaction transaction = session.beginTransaction();Medico m = (Medico) session.get(Medico.class, medico);transaction.commit();session . close ();return m;

}

public void set(Medico medico) {Session session = banco.getSession();Transaction transaction = session.beginTransaction();session .save(medico);transaction.commit();session . close ();

}

private static void povoar(){Medicos ms = Medicos.getInstance();Medico m = new Medico();Especialidade [] e = Constantes.Especialidade.values();String nomeMedicos[] = { "Cleosvaldo de Andrade", "Jorge Tadeu",

"Rodolfo Carlos", "Marcos Antonio", "Carlos Rodolfo","Felizberto de Almeida", "Adalgisa Fagundes","Valdirclei de Souza Neto", "Rafael do Pinto Rego","Anacleto Robertison", "Amarildo da Cunha"," Jusiclei Vasconcelo", "Roberval Tavino", "Janete Cler","Richarlison Silva Santos", "Arnaldo Antunes", "Ederson Lopez","Edilson Carvalho", };

String nome;int c = 232500;int crm;int especialidade ;int a;

494

int b;for (int i = 0; i < 2; i++) {

a = i ∗ e.length;for (int j = 0; j < e.length; j++) {

especialidade = e[j ]. ordinal ();b = a + j;crm = c + b;nome = nomeMedicos[b];m.setCrm(crm);m.setEspecialidade(especialidade );m.setNome(nome);ms.set(m);

}}

}

public static void main(String[] args) {}

}

495

5.3.4 SistemaHospital/JavaSource/bd/hibernate/tabelas/Pacientes.java

package bd.hibernate.tabelas;

import java.util.List ;

import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;

import bd.hibernate.Banco;import beans.Paciente;

public class Pacientes {

private static Pacientes pacientes;

Banco banco;

private Pacientes() {banco = Banco.getInstance();

}

public static Pacientes getInstance() {if (pacientes == null)

pacientes = new Pacientes();return pacientes;

}

public List<Paciente> get() {Session session = banco.getSession();Transaction transaction = session.beginTransaction();Query query = session.createQuery("from Paciente");List<Paciente> p = query.list();transaction.commit();session . close ();

496

return p;}

public Paciente get(long paciente) {Session session = banco.getSession();Transaction transaction = session.beginTransaction();Paciente p = (Paciente) session .get(Paciente.class, paciente );transaction.commit();session . close ();return p;

}

public void set(Paciente paciente) {Session session = banco.getSession();Transaction transaction = session.beginTransaction();session .save(paciente );transaction.commit();session . close ();

}}

497

5.3.5 SistemaHospital/JavaSource/beans/Consulta.java

/∗∗∗ Consulta.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package beans;

import uteis.Data;

public class Consulta{private String data;private String hora;private long id;private Medico medico;private Paciente paciente;

public Consulta() {}

/∗∗∗ @return Returns the data.∗/public String getData() {

return data;}

/∗∗∗ @param data The data to set.∗/public void setData(String data) {

this.data = data;}

498

/∗∗∗ @return Returns the hora.∗/public String getHora() {

return hora;}

/∗∗∗ @param hora The hora to set.∗/public void setHora(String hora) {

this.hora = hora;}

/∗∗∗ @return Returns the id.∗/public long getId() {

return id;}

/∗∗∗ @param id The id to set.∗/public void setId(long id) {

this. id = id;}

/∗∗∗ @return Returns the medico.∗/public Medico getMedico() {

return medico;}

499

/∗∗∗ @param medico The medico to set.∗/public void setMedico(Medico medico) {

this.medico = medico;}

/∗∗∗ @return Returns the paciente.∗/public Paciente getPaciente() {

return paciente;}

/∗∗∗ @param paciente The paciente to set.∗/public void setPaciente(Paciente paciente) {

this.paciente = paciente;}

public void inverterData() {this.data = Data.getDataInvertida(data +"−00:00").dataBarras();

}}

500

5.3.6 SistemaHospital/JavaSource/beans/Endereco.java

package beans;

public class Endereco {private String rua;

private int numero;

private String complemento;

private String bairro;

private String cidade;

private String estado;

/∗∗∗ @return Returns the bairro.∗/public String getBairro() {

return bairro;}

/∗∗∗ @param bairro∗ The bairro to set .∗/public void setBairro(String bairro) {

this.bairro = bairro;}

/∗∗∗ @return Returns the cidade.∗/public String getCidade() {

501

return cidade;}

/∗∗∗ @param cidade∗ The cidade to set .∗/public void setCidade(String cidade) {

this.cidade = cidade;}

/∗∗∗ @return Returns the estado.∗/public String getEstado() {

return estado;}

/∗∗∗ @param estado∗ The estado to set .∗/public void setEstado(String estado) {

this.estado = estado;}

/∗∗∗ @return Returns the numero.∗/public int getNumero() {

return numero;}

/∗∗∗ @param numero

502

∗ The numero to set.∗/public void setNumero(int numero) {

this.numero = numero;}

/∗∗∗ @return Returns the rua.∗/public String getRua() {

return rua;}

/∗∗∗ @param rua∗ The rua to set.∗/public void setRua(String rua) {

this.rua = rua;}

/∗∗∗ @return Returns the complemento.∗/public String getComplemento() {

return complemento;}

/∗∗∗ @param complemento∗ The complemento to set.∗/public void setComplemento(String complemento) {

this.complemento = complemento;}

503

}

504

5.3.7 SistemaHospital/JavaSource/beans/Medico.java

/∗∗∗ Medico.java∗∗ This �le was auto−generated from WSDL∗ by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.∗/

package beans;

public class Medico implements java.io.Serializable {private long crm;private int especialidade;private java.lang.String nome;

public Medico() {}

/∗∗∗ @return Returns the crm.∗/public long getCrm() {

return crm;}

/∗∗∗ @param crm The crm to set.∗/public void setCrm(long crm) {

this.crm = crm;}

/∗∗∗ @return Returns the especialidade.∗/

505

public int getEspecialidade() {return especialidade;

}

/∗∗∗ @param especialidade The especialidade to set .∗/public void setEspecialidade(int especialidade) {

this. especialidade = especialidade;}

/∗∗∗ @return Returns the nome.∗/public java.lang.String getNome() {

return nome;}

/∗∗∗ @param nome The nome to set.∗/public void setNome(java.lang.String nome) {

this.nome = nome;}

}

506

5.3.8 SistemaHospital/JavaSource/beans/Paciente.java

package beans;

import java.util.Calendar;

/∗∗ Created on 19/03/2005∗∗ TODO To change the template for this generated �le go to∗ Window − Preferences − Java − Code Style − Code Templates∗/

/∗∗∗ @author óNs∗∗ TODO To change the template for this generated type comment go to Window −∗ Preferences − Java − Code Style − Code Templates∗/public class Paciente {

private long cartaoSus;

private String nome;

private String sexo;

private Calendar dataNascimento;

private int estadoCivil;

private String pai;

private String mae;

private String conjuge;

507

private String nacionalidade;

private String naturalidade;

private String nomeEmpresa;

private Endereco endereco;

/∗∗∗ @return Returns the cartaoSus.∗/public long getCartaoSus() {

return cartaoSus;}

/∗∗∗ @param cartaoSus The cartaoSus to set.∗/public void setCartaoSus(long cartaoSus) {

this.cartaoSus = cartaoSus;}

/∗∗∗ @return Returns the conjuge.∗/public String getConjuge() {

return conjuge;}

/∗∗∗ @param conjuge The conjuge to set.∗/public void setConjuge(String conjuge) {

this.conjuge = conjuge;

508

}

/∗∗∗ @return Returns the dataNascimento.∗/public Calendar getDataNascimento() {

return dataNascimento;}

/∗∗∗ @param dataNascimento The dataNascimento to set.∗/public void setDataNascimento(Calendar dataNascimento) {

this.dataNascimento = dataNascimento;}

/∗∗∗ @return Returns the endereco.∗/public Endereco getEndereco() {

return endereco;}

/∗∗∗ @param endereco The endereco to set.∗/public void setEndereco(Endereco endereco) {

this.endereco = endereco;}

/∗∗∗ @return Returns the estadoCivil.∗/public int getEstadoCivil() {

return estadoCivil;

509

}

/∗∗∗ @param estadoCivil The estadoCivil to set.∗/public void setEstadoCivil(int estadoCivil) {

this.estadoCivil = estadoCivil;}

/∗∗∗ @return Returns the mae.∗/public String getMae() {

return mae;}

/∗∗∗ @param mae The mae to set.∗/public void setMae(String mae) {

this.mae = mae;}

/∗∗∗ @return Returns the nacionalidade.∗/public String getNacionalidade() {

return nacionalidade;}

/∗∗∗ @param nacionalidade The nacionalidade to set.∗/public void setNacionalidade(String nacionalidade) {

this.nacionalidade = nacionalidade;

510

}

/∗∗∗ @return Returns the naturalidade.∗/public String getNaturalidade() {

return naturalidade;}

/∗∗∗ @param naturalidade The naturalidade to set.∗/public void setNaturalidade(String naturalidade) {

this.naturalidade = naturalidade;}

/∗∗∗ @return Returns the nome.∗/public String getNome() {

return nome;}

/∗∗∗ @param nome The nome to set.∗/public void setNome(String nome) {

this.nome = nome;}

/∗∗∗ @return Returns the nomeEmpresa.∗/public String getNomeEmpresa() {

return nomeEmpresa;

511

}

/∗∗∗ @param nomeEmpresa The nomeEmpresa to set.∗/public void setNomeEmpresa(String nomeEmpresa) {

this.nomeEmpresa = nomeEmpresa;}

/∗∗∗ @return Returns the pai.∗/public String getPai() {

return pai;}

/∗∗∗ @param pai The pai to set.∗/public void setPai(String pai) {

this.pai = pai;}

/∗∗∗ @return Returns the sexo.∗/public String getSexo() {

return sexo;}

/∗∗∗ @param sexo The sexo to set.∗/public void setSexo(String sexo) {

this.sexo = sexo;

512

}

}

513

5.3.9 SistemaHospital/JavaSource/service/Hospital.java

package service;

import java.util.List ;

import uteis.Constantes;import bd.hibernate.tabelas.Consultas;import bd.hibernate.tabelas.Medicos;import beans.Consulta;import beans.Medico;import beans.Paciente;

public class Hospital implements Constantes{

private Medicos medicos;private Consultas consultas;

public Hospital(){medicos = Medicos.getInstance();consultas = Consultas.getInstance();

}

public Object[] getMedicos(int especialidade){return medicos.getMedicosEspecialidade(especialidade).toArray();

}

public Object[] getMedicos(String nome){return medicos.getMedicosNome(nome).toArray();

}

public Object[] getTodosMedicos(){return medicos.get().toArray();

}

public Medico getMedico(long medico){

514

return medicos.get(medico);}

public void marcarConsulta(long consulta, Paciente paciente){consultas .marcar(consulta, paciente);

}

public void desmarcarConsulta(long consulta){consultas .desmarcar(consulta);

}

public Object[] getConsultasPaciente(long paciente){return consultas.getConsultasPaciente(paciente).toArray();

}

public Object[] getConsultasMedicoPaciente(long medico ,long paciente){return consultas.get(medico, paciente).toArray();

}

public Object[] getDisponiveisEspecialidade(int especialidade) {return consultas.getDisponiveisEspecialidade(especialidade).toArray();

}

public Object[] getDisponiveisMedico(long medico) {return consultas.getDisponiveisMedico(medico).toArray();

}

public Consulta getConsulta(long consulta) {return consultas.get(consulta);

}}

515

5.3.10 SistemaHospital/JavaSource/uteis/Constantes.java

package uteis;

public interface Constantes {

public enum Especialidade {

CARDIOLOGISTA, ORTOPEDISTA, GINECOLOGISTA, OFTALMOLOGISTA, UROLOGISTA, GERAL, PISQUIATRA, DERMATOLOGISTA, OTORRINO,};

public enum EstadoCivil{SOLTEIRO, CASADO, DIVORCIADO, JUNTO, VIUVO

}

public enum Escolaridade{NAO_FREQUENTOU, PRIMARIO_INCOMPLETO, PRIMARIO, FUNDAMENTAL_INCOMPLETO, FUNDAMENTAL, MEDIO_INCOMPLETO, MEDIO, SUPERIOR_INCOMPLETO, SUPERIOR, MESTRE, DOUTOR

}}

516

5.3.11 SistemaHospital/JavaSource/uteis/Data.java

package uteis;

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;

public class Data {

private Date data;

private Calendar calendar;

public static �nal int MES = Calendar.MONTH;

public static �nal int ANO = Calendar.YEAR;

public static �nal int SEMANA = Calendar.DAY_OF_WEEK;

public static �nal int DIA = Calendar.DAY_OF_MONTH;

public static �nal int DOMINGO = Calendar.SUNDAY;

public static �nal int SEGUNDA = Calendar.MONDAY;

public static �nal int TERCA = Calendar.TUESDAY;

public static �nal int QUARTA = Calendar.WEDNESDAY;

public static �nal int QUINTA = Calendar.THURSDAY;

public static �nal int SEXTA = Calendar.FRIDAY;

public static �nal int SABADO = Calendar.SATURDAY;

517

public static �nal int JANEIRO = Calendar.JANUARY;

public static �nal int FEVEREIRO = Calendar.FEBRUARY;

public static �nal int MARCO = Calendar.MARCH;

public static �nal int ABRIL = Calendar.APRIL;

public static �nal int MAIO = Calendar.MAY;

public static �nal int JUNHO = Calendar.JUNE;

public static �nal int JULHO = Calendar.JULY;

public static �nal int AGOSTO = Calendar.AUGUST;

public static �nal int SETEMBRO = Calendar.SEPTEMBER;

public static �nal int OUTUBRO = Calendar.OCTOBER;

public static �nal int NOVEMBRO = Calendar.NOVEMBER;

public static �nal int DEZEMBRO = Calendar.DECEMBER;

private static �nal String domingo = "Domingo";

private static �nal String segunda = "Segunda";

private static �nal String terca = "çTera";

private static �nal String quarta = "Quarta";

private static �nal String quinta = "Quinta";

518

private static �nal String sexta = "Sexta";

private static �nal String sabado = "áSbado";

private static �nal String janeiro = "Janeiro";

private static �nal String fevereiro = "Fevereiro";

private static �nal String marco = "çMaro";

private static �nal String abril = "Abril";

private static �nal String maio = "Maio";

private static �nal String junho = "Junho";

private static �nal String julho = "Julho";

private static �nal String agosto = "Agosto";

private static �nal String setembro = "Setembro";

private static �nal String outubro = "Outubro";

private static �nal String novembro = "Novembro";

private static �nal String dezembro = "Dezembro";

private String intString(int inteiro ) {if ( inteiro < 10) {

return "0" + inteiro;} else {

return "" + inteiro;}

}

519

private String stringMes(int mes) {switch (mes) {

case JANEIRO:return janeiro;

case FEVEREIRO:return fevereiro;

case MARCO:return marco;

case ABRIL:return abril;

case MAIO:return maio;

case JUNHO:return junho;

case JULHO:return julho;

case AGOSTO:return agosto;

case SETEMBRO:return setembro;

case OUTUBRO:return outubro;

case NOVEMBRO:return novembro;

case DEZEMBRO:return dezembro;

default:return "se mata";

}}

private String stringAno(int ano) {return "" + ano;

}

520

private String stringDiaSemana(int dia) {switch (dia) {

case DOMINGO:return domingo;

case SEGUNDA:return segunda;

case TERCA:return terca;

case QUARTA:return quarta;

case QUINTA:return quinta;

case SEXTA:return sexta;

case SABADO:return sabado;

default:return "larga as drogas";

}}

@Overridepublic String toString() {

return toString(SEMANA) + ", " + toString(DIA) + " de " + toString(MES)+ " de " + toString(ANO) + ".";

}

public String toString(int tipo) {

521

switch (tipo) {case DIA:

return intString(calendar.get(Calendar.DAY_OF_MONTH));case MES:

return stringMes(calendar.get(Calendar.MONTH));case ANO:

return stringAno(calendar.get(Calendar.YEAR));case SEMANA:

return stringDiaSemana(calendar.get(Calendar.DAY_OF_WEEK));default:

return "se mata";}

}

public Date add(int tipo, int tempo) {calendar.add(tipo, tempo);return calendar.getTime();

}

public Data() {this(new Date(System.currentTimeMillis()));

}

public Data(Date date) {data = date;calendar = Calendar.getInstance();calendar.setTime(this.data);

}

public String dataBarras() {return intString(calendar.get(Calendar.DAY_OF_MONTH)) + "/"

+ intString(calendar.get(Calendar.MONTH) + 1) + "/"+ stringAno(calendar.get(Calendar.YEAR));

}

522

public String getHora() {return intString(calendar.get(Calendar.HOUR_OF_DAY)) + ":"

+ intString(calendar.get(Calendar.MINUTE));}

public String getHoraSegundos() {return intString(calendar.get(Calendar.HOUR_OF_DAY)) + ":"

+ intString(calendar.get(Calendar.MINUTE)) + ":"+ intString(calendar.get(Calendar.SECOND));

}

public String dataHora() {return dataBarras() + "−" + getHora();

}

public String getDataInvertidaHoraSegundos() {return dataInvertida() + "−" + getHoraSegundos();

}

public String dataInvertida() {return stringAno(calendar.get(Calendar.YEAR)) + "/"

+ intString(calendar.get(Calendar.MONTH) + 1) + "/"+ intString(calendar.get(Calendar.DAY_OF_MONTH));

}

public static Data getData(String string) {try {

return new Data(new SimpleDateFormat("dd/MM/yyyy−hh:mm").parse(string ));

} catch (ParseException e) {return new Data();

}}

public static Data getDataInvertida(String string) {

523

try {return new Data(new SimpleDateFormat("yyyy/MM/dd−hh:mm")

.parse(string ));} catch (ParseException e) {

return new Data();}

}

public static void main(String[] args) {Data data = getData("24/02/2006−22:30");System.out.println(data);System.out.println(data.dataBarras());System.out.println(data.dataHora());System.out.println(data.getDataInvertidaHoraSegundos());

System.err.println("−−−−−−−−−−−−−−−−−−−−−−");data = getDataInvertida("2006/02/24−22:30");System.out.println(data);System.out.println(data.dataBarras());System.out.println(data.dataHora());System.out.println(data.getDataInvertidaHoraSegundos());

System.err.println("−−−−−−−−−−−−−−−−−−−−−−");data = new Data();System.out.println(data);System.out.println(data.dataBarras());System.out.println(data.dataHora());System.out.println(data.getDataInvertidaHoraSegundos());

}

public boolean isDiaUtil() {int diaSemana = calendar.get(Calendar.DAY_OF_WEEK);switch (diaSemana) {

case DOMINGO:

524

return false;case SABADO:

return false;default:

return true;}

}}

525

5.3.12 SistemaHospital/WebContent/META-INF/MANIFEST.MF

Manifest−Version: 1.0Class−Path:

526

5.3.13 SistemaHospital/WebContent/WEB-INF/HospitalService/service/deploy.wsdd

<?xml version="1.0" encoding="UTF−8"?><!−− Use this �le to deploy some handlers/chains and services−−><!−− Two ways to do this: −−><!−− java org.apache.axis.client.AdminClient deploy.wsdd−−><!−− after the axis server is running −−><!−− or−−><!−− java org.apache.axis.utils.Admin client|server deploy.wsdd −−><!−− from the same directory that the Axis engine runs−−><deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<!−− Services from HospitalService WSDL service −−>

<service name="Hospital" provider="java:RPC" style="rpc" use="encoded"><parameter name="wsdlTargetNamespace" value="http://service"/><parameter name="wsdlServiceElement" value="HospitalService"/><parameter name="schemaUnquali�ed" value="http://service,http://beans"/><parameter name="wsdlServicePort" value="Hospital"/><parameter name="className" value="service.Hospital"/><parameter name="wsdlPortType" value="Hospital"/><parameter name="typeMappingVersion" value="1.2"/><operation xmlns:operNS="http://service" xmlns:rtns="http://service" xmlns:tns2="http://www.w3.org/2001/XMLSchema" name="getMedicos" qname="operNS:getMedicos" returnQName="getMedicosReturn" returnType="rtns:ArrayOf_xsd_anyType" returnItemType="tns2:anyType" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="especialidade" type="tns:int"/>

</operation><operation xmlns:operNS="http://service" xmlns:rtns="http://service" xmlns:tns2="http://www.w3.org/2001/XMLSchema" name="getMedicos" qname="operNS:getMedicos" returnQName="getMedicosReturn" returnType="rtns:ArrayOf_xsd_anyType" returnItemType="tns2:anyType" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="nome" type="tns:string"/>

</operation><operation xmlns:operNS="http://service" xmlns:rtns="http://service" xmlns:tns2="http://www.w3.org/2001/XMLSchema" name="getTodosMedicos" qname="operNS:getTodosMedicos" returnQName="getTodosMedicosReturn" returnType="rtns:ArrayOf_xsd_anyType" returnItemType="tns2:anyType" soapAction=""></operation><operation xmlns:operNS="http://service" xmlns:rtns="http://beans" name="getMedico" qname="operNS:getMedico" returnQName="getMedicoReturn" returnType="rtns:Medico" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="medico" type="tns:long"/>

</operation><operation xmlns:operNS="http://service" name="marcarConsulta" qname="operNS:marcarConsulta" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="consulta" type="tns:long"/><parameter xmlns:tns="http://beans" qname="paciente" type="tns:Paciente"/>

</operation><operation xmlns:operNS="http://service" name="desmarcarConsulta" qname="operNS:desmarcarConsulta" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="consulta" type="tns:long"/>

</operation>

527

<operation xmlns:operNS="http://service" xmlns:rtns="http://service" xmlns:tns2="http://www.w3.org/2001/XMLSchema" name="getConsultasPaciente" qname="operNS:getConsultasPaciente" returnQName="getConsultasPacienteReturn" returnType="rtns:ArrayOf_xsd_anyType" returnItemType="tns2:anyType" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="paciente" type="tns:long"/>

</operation><operation xmlns:operNS="http://service" xmlns:rtns="http://service" xmlns:tns2="http://www.w3.org/2001/XMLSchema" name="getConsultasMedicoPaciente" qname="operNS:getConsultasMedicoPaciente" returnQName="getConsultasMedicoPacienteReturn" returnType="rtns:ArrayOf_xsd_anyType" returnItemType="tns2:anyType" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="medico" type="tns:long"/><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="paciente" type="tns:long"/>

</operation><operation xmlns:operNS="http://service" xmlns:rtns="http://service" xmlns:tns2="http://www.w3.org/2001/XMLSchema" name="getDisponiveisEspecialidade" qname="operNS:getDisponiveisEspecialidade" returnQName="getDisponiveisEspecialidadeReturn" returnType="rtns:ArrayOf_xsd_anyType" returnItemType="tns2:anyType" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="especialidade" type="tns:int"/>

</operation><operation xmlns:operNS="http://service" xmlns:rtns="http://service" xmlns:tns2="http://www.w3.org/2001/XMLSchema" name="getDisponiveisMedico" qname="operNS:getDisponiveisMedico" returnQName="getDisponiveisMedicoReturn" returnType="rtns:ArrayOf_xsd_anyType" returnItemType="tns2:anyType" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="medico" type="tns:long"/>

</operation><operation xmlns:operNS="http://service" xmlns:rtns="http://beans" name="getConsulta" qname="operNS:getConsulta" returnQName="getConsultaReturn" returnType="rtns:Consulta" soapAction=""><parameter xmlns:tns="http://www.w3.org/2001/XMLSchema" qname="consulta" type="tns:long"/>

</operation><parameter name="allowedMethods" value="getDisponiveisMedico marcarConsulta getMedico getMedicos desmarcarConsulta getConsulta getDisponiveisEspecialidade getConsultasMedicoPaciente getConsultasPaciente getTodosMedicos"/>

<typeMapping xmlns:ns="http://beans" qname="ns:Consulta" type="java:beans.Consulta" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/><typeMapping xmlns:ns="http://beans" qname="ns:Medico" type="java:beans.Medico" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/><arrayMapping xmlns:ns="http://service" xmlns:cmp−ns="http://www.w3.org/2001/XMLSchema" qname="ns:ArrayOf_xsd_anyType" type="java:java.lang.Object[]" innerType="cmp−ns:anyType" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/><typeMapping xmlns:ns="http://beans" qname="ns:Endereco" type="java:beans.Endereco" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/><typeMapping xmlns:ns="http://beans" qname="ns:Paciente" type="java:beans.Paciente" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

</service></deployment>

528

5.3.14 SistemaHospital/WebContent/WEB-INF/HospitalService/service/undeploy.wsdd

<!−− Use this �le to undeploy some handlers/chains and services −−><!−− Two ways to do this: −−><!−− java org.apache.axis. client .AdminClient undeploy.wsdd −−><!−− after the axis server is running −−><!−− or −−><!−− java org.apache.axis. utils .Admin client|server undeploy.wsdd −−><!−− from the same directory that the Axis engine runs −−>

<undeploymentxmlns="http://xml.apache.org/axis/wsdd/">

<!−− Services from HospitalService WSDL service −−>

<service name="Hospital"/></undeployment>

529

5.3.15 SistemaHospital/WebContent/WEB-INF/server-con�g.wsdd

<?xml version="1.0" encoding="UTF−8"?><deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"><globalCon�guration><parameter name="sendMultiRefs" value="true"/><parameter name="disablePrettyXML" value="true"/><parameter name="adminPassword" value="admin"/><parameter name="attachments.Directory" value="/home/workspace/SistemaHospital/.deployables/SistemaHospital/WEB−INF/attachments"/><parameter name="dotNetSoapEncFix" value="true"/><parameter name="enableNamespacePre�xOptimization" value="true"/><parameter name="sendXMLDeclaration" value="true"/><parameter name="sendXsiTypes" value="true"/><parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/><requestFlow><handler type="java:org.apache.axis.handlers.JWSHandler"><parameter name="scope" value="session"/></handler><handler type="java:org.apache.axis.handlers.JWSHandler"><parameter name="scope" value="request"/><parameter name="extension" value=".jwr"/></handler></requestFlow></globalCon�guration><handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/><handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/><handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/><service name="Calculator" provider="java:RPC" style="wrapped" use="literal"><operation name="somar" qname="ns1:somar" returnQName="ns1:somarReturn" returnType="xsd:int" soapAction="" xmlns:ns1="http://gill" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><parameter qname="ns1:numA" type="xsd:int"/><parameter qname="ns1:numB" type="xsd:int"/></operation><operation name="subtrair" qname="ns2:subtrair" returnQName="ns2:subtrairReturn" returnType="xsd:int" soapAction="" xmlns:ns2="http://gill" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><parameter qname="ns2:numA" type="xsd:int"/><parameter qname="ns2:numB" type="xsd:int"/></operation>

530

<operation name="multiplicar" qname="ns3:multiplicar" returnQName="ns3:multiplicarReturn" returnType="xsd:int" soapAction="" xmlns:ns3="http://gill" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><parameter qname="ns3:numA" type="xsd:int"/><parameter qname="ns3:numB" type="xsd:int"/></operation><operation name="dividir" qname="ns4:dividir" returnQName="ns4:dividirReturn" returnType="xsd:int" soapAction="" xmlns:ns4="http://gill" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><parameter qname="ns4:numA" type="xsd:int"/><parameter qname="ns4:numB" type="xsd:int"/></operation><parameter name="allowedMethods" value="multiplicar subtrair dividir somar"/><parameter name="typeMappingVersion" value="1.2"/><parameter name="wsdlPortType" value="Calculator"/><parameter name="className" value="gill.Calculator"/><parameter name="wsdlServicePort" value="Calculator"/><parameter name="schemaQuali�ed" value="http://gill"/><parameter name="wsdlTargetNamespace" value="http://gill"/><parameter name="wsdlServiceElement" value="CalculatorService"/></service><service name="Calculadora" provider="java:RPC"><operation name="somar" qname="ns5:somar" returnQName="somarReturn" returnType="xsd:int" soapAction="" xmlns:ns5="http://gill" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><parameter name="numA" type="xsd:int"/><parameter name="numB" type="xsd:int"/></operation><operation name="subtrair" qname="ns6:subtrair" returnQName="subtrairReturn" returnType="xsd:int" soapAction="" xmlns:ns6="http://gill" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><parameter name="numA" type="xsd:int"/><parameter name="numB" type="xsd:int"/></operation><operation name="multiplicar" qname="ns7:multiplicar" returnQName="multiplicarReturn" returnType="xsd:int" soapAction="" xmlns:ns7="http://gill" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><parameter name="numA" type="xsd:int"/><parameter name="numB" type="xsd:int"/></operation><operation name="dividir" qname="ns8:dividir" returnQName="dividirReturn" returnType="xsd:int" soapAction="" xmlns:ns8="http://gill" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><parameter name="numA" type="xsd:int"/><parameter name="numB" type="xsd:int"/></operation><parameter name="allowedMethods" value="multiplicar subtrair dividir somar"/>

531

<parameter name="wsdlPortType" value="Calculadora"/><parameter name="typeMappingVersion" value="1.2"/><parameter name="wsdlServicePort" value="Calculadora"/><parameter name="className" value="gill.Calculadora"/><parameter name="wsdlTargetNamespace" value="http://gill"/><parameter name="wsdlServiceElement" value="CalculadoraService"/></service><service name="AdminService" provider="java:MSG"><parameter name="allowedMethods" value="AdminService"/><parameter name="enableRemoteAdmin" value="true"/><parameter name="className" value="org.apache.axis.utils.Admin"/><namespace>http://xml.apache.org/axis/wsdd/</namespace></service><service name="Version" provider="java:RPC"><parameter name="allowedMethods" value="getVersion"/><parameter name="className" value="org.apache.axis.Version"/></service><service name="Hospital" provider="java:RPC"><operation name="getMedicos" qname="ns9:getMedicos" returnQName="getMedicosReturn" returnType="ns9:ArrayOf_xsd_anyType" soapAction="" xmlns:ns9="http://service"><parameter name="especialidade" type="xsd:int" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></operation><operation name="getMedicos" qname="ns10:getMedicos" returnQName="getMedicosReturn" returnType="ns10:ArrayOf_xsd_anyType" soapAction="" xmlns:ns10="http://service"><parameter name="nome" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></operation><operation name="getTodosMedicos" qname="ns11:getTodosMedicos" returnQName="getTodosMedicosReturn" returnType="ns11:ArrayOf_xsd_anyType" soapAction="" xmlns:ns11="http://service"/><operation name="getMedico" qname="ns13:getMedico" returnQName="getMedicoReturn" returnType="ns12:Medico" soapAction="" xmlns:ns12="http://beans" xmlns:ns13="http://service"><parameter name="medico" type="xsd:long" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></operation><operation name="marcarConsulta" qname="ns14:marcarConsulta" soapAction="" xmlns:ns14="http://service"><parameter name="consulta" type="xsd:long" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/><parameter name="paciente" type="ns15:Paciente" xmlns:ns15="http://beans"/></operation><operation name="desmarcarConsulta" qname="ns16:desmarcarConsulta" soapAction="" xmlns:ns16="http://service"><parameter name="consulta" type="xsd:long" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></operation>

532

<operation name="getConsultasPaciente" qname="ns17:getConsultasPaciente" returnQName="getConsultasPacienteReturn" returnType="ns17:ArrayOf_xsd_anyType" soapAction="" xmlns:ns17="http://service"><parameter name="paciente" type="xsd:long" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></operation><operation name="getConsultasMedicoPaciente" qname="ns18:getConsultasMedicoPaciente" returnQName="getConsultasMedicoPacienteReturn" returnType="ns18:ArrayOf_xsd_anyType" soapAction="" xmlns:ns18="http://service"><parameter name="medico" type="xsd:long" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/><parameter name="paciente" type="xsd:long" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></operation><operation name="getDisponiveisEspecialidade" qname="ns19:getDisponiveisEspecialidade" returnQName="getDisponiveisEspecialidadeReturn" returnType="ns19:ArrayOf_xsd_anyType" soapAction="" xmlns:ns19="http://service"><parameter name="especialidade" type="xsd:int" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></operation><operation name="getDisponiveisMedico" qname="ns20:getDisponiveisMedico" returnQName="getDisponiveisMedicoReturn" returnType="ns20:ArrayOf_xsd_anyType" soapAction="" xmlns:ns20="http://service"><parameter name="medico" type="xsd:long" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></operation><operation name="getConsulta" qname="ns22:getConsulta" returnQName="getConsultaReturn" returnType="ns21:Consulta" soapAction="" xmlns:ns21="http://beans" xmlns:ns22="http://service"><parameter name="consulta" type="xsd:long" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></operation><parameter name="allowedMethods" value="getDisponiveisMedico marcarConsulta getMedico getMedicos desmarcarConsulta getConsulta getDisponiveisEspecialidade getConsultasMedicoPaciente getConsultasPaciente getTodosMedicos"/><parameter name="typeMappingVersion" value="1.2"/><parameter name="wsdlPortType" value="Hospital"/><parameter name="className" value="service.Hospital"/><parameter name="wsdlServicePort" value="Hospital"/><parameter name="wsdlTargetNamespace" value="http://service"/><parameter name="wsdlServiceElement" value="HospitalService"/><parameter name="schemaUnquali�ed" value="http://service,http://beans"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns23:Consulta" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:beans.Consulta" xmlns:ns23="http://beans"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns24:Medico" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:beans.Medico" xmlns:ns24="http://beans"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns25:Endereco" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:beans.Endereco" xmlns:ns25="http://beans"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns26:Paciente" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:beans.Paciente" xmlns:ns26="http://beans"/><arrayMapping innerType="xsd:anyType" languageSpeci�cType="java:java.lang.Object[]" qname="ns27:ArrayOf_xsd_anyType" xmlns:ns27="http://service" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></service><transport name="http"><requestFlow><handler type="URLMapper"/><handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/></requestFlow>

533

<parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/><parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/><parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/><parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/><parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/><parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/></transport><transport name="local"><responseFlow><handler type="LocalResponder"/></responseFlow></transport></deployment>

534

5.3.16 SistemaHospital/WebContent/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF−8"?><web−app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema−instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web−app_2_4.xsd">

<display−name>SistemaHospital</display−name><servlet>

<display−name>Apache−Axis Servlet</display−name><servlet−name>AxisServlet</servlet−name><servlet−class>org.apache.axis.transport.http.AxisServlet</servlet−class>

</servlet><servlet>

<display−name>Axis Admin Servlet</display−name><servlet−name>AdminServlet</servlet−name><servlet−class>org.apache.axis.transport.http.AdminServlet</servlet−class><load−on−startup>100</load−on−startup>

</servlet><servlet−mapping>

<servlet−name>AxisServlet</servlet−name><url−pattern>/servlet/AxisServlet</url−pattern>

</servlet−mapping><servlet−mapping>

<servlet−name>AxisServlet</servlet−name><url−pattern>∗.jws</url−pattern>

</servlet−mapping><servlet−mapping>

<servlet−name>AxisServlet</servlet−name><url−pattern>/services/∗</url−pattern>

</servlet−mapping><servlet−mapping>

<servlet−name>AdminServlet</servlet−name><url−pattern>/servlet/AdminServlet</url−pattern>

535

</servlet−mapping><welcome−�le−list>

<welcome−�le>index.html</welcome−�le><welcome−�le>index.htm</welcome−�le><welcome−�le>index.jsp</welcome−�le><welcome−�le>default.html</welcome−�le><welcome−�le>default.htm</welcome−�le><welcome−�le>default.jsp</welcome−�le>

</welcome−�le−list></web−app>

536

5.3.17 SistemaHospital/WebContent/wsdl/Hospital.wsdl

<?xml version="1.0" encoding="UTF−8"?><wsdl:de�nitions targetNamespace="http://service" xmlns:apachesoap="http://xml.apache.org/xml−soap" xmlns:impl="http://service" xmlns:intf="http://service" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="http://beans" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><!−−WSDL created by Apache Axis version: 1.2.1Built on Jun 14, 2005 (09:15:57 EDT)−−><wsdl:types><schema targetNamespace="http://service" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://beans"/><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="ArrayOf_xsd_anyType"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]"/></restriction></complexContent></complexType></schema><schema targetNamespace="http://beans" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://service"/><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="Medico"><sequence><element name="crm" type="xsd:long"/><element name="especialidade" type="xsd:int"/><element name="nome" nillable="true" type="xsd:string"/></sequence></complexType><complexType name="Endereco"><sequence><element name="bairro" nillable="true" type="xsd:string"/><element name="cidade" nillable="true" type="xsd:string"/><element name="complemento" nillable="true" type="xsd:string"/><element name="estado" nillable="true" type="xsd:string"/><element name="numero" type="xsd:int"/><element name="rua" nillable="true" type="xsd:string"/>

537

</sequence></complexType><complexType name="Paciente"><sequence><element name="cartaoSus" type="xsd:long"/><element name="conjuge" nillable="true" type="xsd:string"/><element name="dataNascimento" nillable="true" type="xsd:dateTime"/><element name="endereco" nillable="true" type="tns1:Endereco"/><element name="estadoCivil" type="xsd:int"/><element name="mae" nillable="true" type="xsd:string"/><element name="nacionalidade" nillable="true" type="xsd:string"/><element name="naturalidade" nillable="true" type="xsd:string"/><element name="nome" nillable="true" type="xsd:string"/><element name="nomeEmpresa" nillable="true" type="xsd:string"/><element name="pai" nillable="true" type="xsd:string"/><element name="sexo" nillable="true" type="xsd:string"/></sequence></complexType><complexType name="Consulta"><sequence><element name="data" nillable="true" type="xsd:string"/><element name="hora" nillable="true" type="xsd:string"/><element name="id" type="xsd:long"/><element name="medico" nillable="true" type="tns1:Medico"/><element name="paciente" nillable="true" type="tns1:Paciente"/></sequence></complexType></schema></wsdl:types>

<wsdl:message name="getDisponiveisMedicoResponse">

<wsdl:part name="getDisponiveisMedicoReturn" type="impl:ArrayOf_xsd_anyType"/>

</wsdl:message>

538

<wsdl:message name="getConsultasPacienteRequest">

<wsdl:part name="paciente" type="xsd:long"/>

</wsdl:message>

<wsdl:message name="getTodosMedicosRequest">

</wsdl:message>

<wsdl:message name="marcarConsultaResponse">

</wsdl:message>

<wsdl:message name="getMedicosResponse1">

<wsdl:part name="getMedicosReturn" type="impl:ArrayOf_xsd_anyType"/>

</wsdl:message>

<wsdl:message name="getMedicosRequest1">

<wsdl:part name="nome" type="xsd:string"/>

</wsdl:message>

<wsdl:message name="getMedicoRequest">

<wsdl:part name="medico" type="xsd:long"/>

</wsdl:message>

<wsdl:message name="getMedicoResponse">

539

<wsdl:part name="getMedicoReturn" type="tns1:Medico"/>

</wsdl:message>

<wsdl:message name="getMedicosRequest">

<wsdl:part name="especialidade" type="xsd:int"/>

</wsdl:message>

<wsdl:message name="getConsultaRequest">

<wsdl:part name="consulta" type="xsd:long"/>

</wsdl:message>

<wsdl:message name="getConsultaResponse">

<wsdl:part name="getConsultaReturn" type="tns1:Consulta"/>

</wsdl:message>

<wsdl:message name="getMedicosResponse">

<wsdl:part name="getMedicosReturn" type="impl:ArrayOf_xsd_anyType"/>

</wsdl:message>

<wsdl:message name="getConsultasMedicoPacienteRequest">

<wsdl:part name="medico" type="xsd:long"/>

<wsdl:part name="paciente" type="xsd:long"/>

</wsdl:message>

540

<wsdl:message name="getDisponiveisMedicoRequest">

<wsdl:part name="medico" type="xsd:long"/>

</wsdl:message>

<wsdl:message name="desmarcarConsultaRequest">

<wsdl:part name="consulta" type="xsd:long"/>

</wsdl:message>

<wsdl:message name="marcarConsultaRequest">

<wsdl:part name="consulta" type="xsd:long"/>

<wsdl:part name="paciente" type="tns1:Paciente"/>

</wsdl:message>

<wsdl:message name="getTodosMedicosResponse">

<wsdl:part name="getTodosMedicosReturn" type="impl:ArrayOf_xsd_anyType"/>

</wsdl:message>

<wsdl:message name="getDisponiveisEspecialidadeResponse">

<wsdl:part name="getDisponiveisEspecialidadeReturn" type="impl:ArrayOf_xsd_anyType"/>

</wsdl:message>

<wsdl:message name="getDisponiveisEspecialidadeRequest">

541

<wsdl:part name="especialidade" type="xsd:int"/>

</wsdl:message>

<wsdl:message name="getConsultasMedicoPacienteResponse">

<wsdl:part name="getConsultasMedicoPacienteReturn" type="impl:ArrayOf_xsd_anyType"/>

</wsdl:message>

<wsdl:message name="desmarcarConsultaResponse">

</wsdl:message>

<wsdl:message name="getConsultasPacienteResponse">

<wsdl:part name="getConsultasPacienteReturn" type="impl:ArrayOf_xsd_anyType"/>

</wsdl:message>

<wsdl:portType name="Hospital">

<wsdl:operation name="getMedicos" parameterOrder="especialidade">

<wsdl:input message="impl:getMedicosRequest" name="getMedicosRequest"/>

<wsdl:output message="impl:getMedicosResponse" name="getMedicosResponse"/>

</wsdl:operation>

<wsdl:operation name="getMedicos" parameterOrder="nome">

<wsdl:input message="impl:getMedicosRequest1" name="getMedicosRequest1"/>

<wsdl:output message="impl:getMedicosResponse1" name="getMedicosResponse1"/>

542

</wsdl:operation>

<wsdl:operation name="getTodosMedicos">

<wsdl:input message="impl:getTodosMedicosRequest" name="getTodosMedicosRequest"/>

<wsdl:output message="impl:getTodosMedicosResponse" name="getTodosMedicosResponse"/>

</wsdl:operation>

<wsdl:operation name="getMedico" parameterOrder="medico">

<wsdl:input message="impl:getMedicoRequest" name="getMedicoRequest"/>

<wsdl:output message="impl:getMedicoResponse" name="getMedicoResponse"/>

</wsdl:operation>

<wsdl:operation name="marcarConsulta" parameterOrder="consulta paciente">

<wsdl:input message="impl:marcarConsultaRequest" name="marcarConsultaRequest"/>

<wsdl:output message="impl:marcarConsultaResponse" name="marcarConsultaResponse"/>

</wsdl:operation>

<wsdl:operation name="desmarcarConsulta" parameterOrder="consulta">

<wsdl:input message="impl:desmarcarConsultaRequest" name="desmarcarConsultaRequest"/>

<wsdl:output message="impl:desmarcarConsultaResponse" name="desmarcarConsultaResponse"/>

</wsdl:operation>

543

<wsdl:operation name="getConsultasPaciente" parameterOrder="paciente">

<wsdl:input message="impl:getConsultasPacienteRequest" name="getConsultasPacienteRequest"/>

<wsdl:output message="impl:getConsultasPacienteResponse" name="getConsultasPacienteResponse"/>

</wsdl:operation>

<wsdl:operation name="getConsultasMedicoPaciente" parameterOrder="medico paciente">

<wsdl:input message="impl:getConsultasMedicoPacienteRequest" name="getConsultasMedicoPacienteRequest"/>

<wsdl:output message="impl:getConsultasMedicoPacienteResponse" name="getConsultasMedicoPacienteResponse"/>

</wsdl:operation>

<wsdl:operation name="getDisponiveisEspecialidade" parameterOrder="especialidade">

<wsdl:input message="impl:getDisponiveisEspecialidadeRequest" name="getDisponiveisEspecialidadeRequest"/>

<wsdl:output message="impl:getDisponiveisEspecialidadeResponse" name="getDisponiveisEspecialidadeResponse"/>

</wsdl:operation>

<wsdl:operation name="getDisponiveisMedico" parameterOrder="medico">

<wsdl:input message="impl:getDisponiveisMedicoRequest" name="getDisponiveisMedicoRequest"/>

<wsdl:output message="impl:getDisponiveisMedicoResponse" name="getDisponiveisMedicoResponse"/>

</wsdl:operation>

<wsdl:operation name="getConsulta" parameterOrder="consulta">

<wsdl:input message="impl:getConsultaRequest" name="getConsultaRequest"/>

544

<wsdl:output message="impl:getConsultaResponse" name="getConsultaResponse"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="HospitalSoapBinding" type="impl:Hospital">

<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="getMedicos">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getMedicosRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="getMedicosResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getMedicos">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getMedicosRequest1">

545

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="getMedicosResponse1">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getTodosMedicos">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getTodosMedicosRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="getTodosMedicosResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getMedico">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getMedicoRequest">

546

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="getMedicoResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="marcarConsulta">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="marcarConsultaRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="marcarConsultaResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="desmarcarConsulta">

<wsdlsoap:operation soapAction=""/>

547

<wsdl:input name="desmarcarConsultaRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="desmarcarConsultaResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getConsultasPaciente">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getConsultasPacienteRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="getConsultasPacienteResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getConsultasMedicoPaciente">

<wsdlsoap:operation soapAction=""/>

548

<wsdl:input name="getConsultasMedicoPacienteRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="getConsultasMedicoPacienteResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getDisponiveisEspecialidade">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getDisponiveisEspecialidadeRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="getDisponiveisEspecialidadeResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getDisponiveisMedico">

549

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getDisponiveisMedicoRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="getDisponiveisMedicoResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="getConsulta">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getConsultaRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:input>

<wsdl:output name="getConsultaResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service" use="encoded"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

550

<wsdl:service name="HospitalService">

<wsdl:port binding="impl:HospitalSoapBinding" name="Hospital">

<wsdlsoap:address location="http://localhost:8080/SistemaHospital/services/Hospital"/>

</wsdl:port>

</wsdl:service>

</wsdl:de�nitions>

551

5.3.18 SistemaHospital/JavaSource/beans/Consulta.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate−mapping PUBLIC

"−//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge .net/hibernate−mapping−3.0.dtd">

<hibernate−mapping><class name="beans.Consulta" table="CONSULTAS">

<id name="id"><column name="ID" not−null="true"/><generator class="increment"/>

</id>

<property name="data"><column name="DATA" length="10" not−null="true"/>

</property>

<property name="hora"><column name="HORA" length="5" not−null="true"/>

</property>

<many−to−one name="paciente" class="beans.Paciente" column="PACIENTE" not−null="false" />

<many−to−one name="medico" class="beans.Medico" column="MEDICO" not−null="true"/></class>

</hibernate−mapping>

552

5.3.19 SistemaHospital/JavaSource/beans/Medico.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate−mapping PUBLIC

"−//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge .net/hibernate−mapping−3.0.dtd">

<hibernate−mapping><class name="beans.Medico" table="MEDICOS">

<id name="crm"><column name="CRM" not−null="true"/><generator class="assigned"/>

</id>

<property name="nome"><column name="NOME" length="50" not−null="true"/>

</property>

<property name="especialidade"><column name="ESPECIALIDADE" length="3" not−null="true"/>

</property></class>

</hibernate−mapping>

553

5.3.20 SistemaHospital/JavaSource/beans/Paciente.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate−mapping PUBLIC

"−//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge .net/hibernate−mapping−3.0.dtd">

<hibernate−mapping><class name="beans.Paciente" table="PACIENTES">

<id name="cartaoSus" ><column name="ID" not−null="true"/><generator class="assigned"/>

</id>

<property name="nome"><column name="NOME" length="50" not−null="true"/>

</property></class>

</hibernate−mapping>

Recommended