package org.sistema.hibernate.onetooneunidirxml;

import org.sistema.hibernate.onetooneunidirxml.dao.PortDAO;
import org.sistema.hibernate.onetooneunidirxml.dao.ServiceDAO;
import org.sistema.hibernate.onetooneunidirxml.models.Port;
import org.sistema.hibernate.onetooneunidirxml.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);

		/*
		 * Agregamos un servicio sin puerto asociado
		 */
		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 servicio 3
		serviceDAO.insert(service3);
		
		//Se almacenan los otros dos puertos que tienen servicios 
		//asociados,por lo tanto, los servicios se almacenan en cascada.
		portDAO.insert(port1);
		portDAO.insert(port2);
		
		//Finalmente se elimina el puerto 1, luego 
		// el servicio será borrado en cascada.
		portDAO.delete(port1);
	}

}
