 package com.sogyo.ejbxml.client;

import javax.naming.*;
import javax.ejb.*;
import javax.rmi.*;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;
import javax.rmi.PortableRemoteObject;
//import java.io.*;

//import com.sogyo.ejbxml.entity.*;
import com.sogyo.ejbxml.entity.Product;
import com.sogyo.ejbxml.entity.ProductHome;

public class Client
{
	ProductHome home = null;
	public Client()
	{
		try
		{
			//Properties env = new Properties();
			//env.setProperty("java.naming.factory.initial",  "org.jnp.interfaces.NamingContextFactory");
			//env.setProperty("java.naming.provider.url",  "127.0.0.1:1099");
			//env.setProperty("java.naming.factory.url.pkgs",  "org.jboss.naming");

			System.setProperty("java.naming.factory.initial",
			      			   "org.jnp.interfaces.NamingContextFactory");
			System.setProperty("java.naming.provider.url",
			      			   "localhost:1099");

			InitialContext ctx = new InitialContext();
			//InitialContext jndiContext = new InitialContext(env);
			System.out.println("Got context");

			Object ref = ctx.lookup("product/Product");
			System.out.println("Got reference");

			home = (ProductHome)PortableRemoteObject.narrow(ref, ProductHome.class);

			//home = (ProductHome) ctx.lookup("product/Product");
			System.out.println(home);
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	}

	public void create(String prodid, String naam, String description, String basePrice)
	{
		double price = Double.valueOf(basePrice.trim()).doubleValue();
		try
		{
			home.create(prodid, naam, description, price);
			//home.create("6518", "P3-300", "300 Mhz Pentium", 300);
			//home.create("8711713", "P4-450", "450 Mhz Pentium", 400);
			//home.create("111378", "P6-650", "650 Mhz Pentium", 500);
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	}

	public String search(String naam)
	{
		System.out.println("********search********");
		String description = null;
		try
		{
			System.out.println(naam);
			Enumeration enum = home.findByName(naam);
			System.out.println("enum opgehaald");
			while(enum.hasMoreElements())
			{
				Product prod = (Product) enum.nextElement();
				System.out.println(prod);
				description = prod.getDescription();
				//System.out.println(prod.getDescription());
			}
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		return description;
	}


}
