package org.sistema.hibernate.onetoonebidirxml;

import org.sistema.hibernate.onetoonebidirxml.dao.PortDAO;
import org.sistema.hibernate.onetoonebidirxml.dao.ServiceDAO;
import org.sistema.hibernate.onetoonebidirxml.models.Port;
import org.sistema.hibernate.onetoonebidirxml.models.Service;

/**
 * Main class to try some operations
 * @author Eugenia Pérez
 * @email eugenia_perez@cuatrovientos.org
 */
public class Main {

	public static void main(String[] args) {
		Port port1 = new Port();
		port1.setNumber(80);
		port1.setType("tcp");
		Port port2 = new Port();
		port2.setNumber(3306);
		port2.setType("tcp");
		Service service1 = new Service();
		service1.setName("Apache Web Server");
		service1.setPath("/usr/bin/apache2");

		Service service2 = new Service();
		service2.setName("MySQL");
		service2.setPath("/usr/bin/mysql");
		port1.setService(service1);
		port2.setService(service2);
		service1.setPort(port1);
		service2.setPort(port2);

		/*
		 * Este puerto se agrega para comprobar que los servicios 
		 * tomen el mismo identificador que los puertos
		 */
		Service service3 = new Service();
		service3.setName("SQLServer");
		service3.setPath("c:\\Program Files\\SQLServer\\sqls.exe");
		
		PortDAO portDAO = new PortDAO();
		ServiceDAO serviceDAO = new ServiceDAO();
		
		// Se almacena el primer servicio
		serviceDAO.insert(service1);
		
		// Se almacenan los otros dos puertos que tienen servicios 
		// asociados, por lo tanto, los servicios se almacenan en cascada.
		serviceDAO.insert(service2);
		serviceDAO.insert(service3);
		
		// Finalmente se elimina el puerto 1, luego el servicio será 
		// borrado en cascada.
		serviceDAO.delete(service1);
	}
}
