package com.Asdf.DynamicLibraries;

//import java.net.URLClassLoader;
import java.net.*;
import java.io.File;

class DynamicDemo
{
	public static void LoadAndCall(String classDir, String classNamePlugin, String classNameSearch)
	{
		URL[] urls;
		try
		{
			// Notice, the class can also be loaded from the intterwebs!1
			File dir = new File(classDir);
			urls = new URL[]{dir.toURI().toURL()};
			ClassLoader cl = new URLClassLoader(urls);
			Class cp = cl.loadClass(classNamePlugin);
			DemoPluginInterface i = (DemoPluginInterface)cp.newInstance();
			i.yksi();
			i.kaksi();
			i.kolme();
			
			Class cs = cl.loadClass(classNameSearch);
			DemoSearchInterface si = (DemoSearchInterface)cs.newInstance();
			si.Match(i);
			
		}
		catch(MalformedURLException e)
		{
			System.out.println("Kiitti vitusti, url oli kuraa: " + e.getMessage());
		}
		catch(ClassNotFoundException cne)
		{
			System.out.println("Kiitti vitusti, classii ei löytyny: " + cne.getMessage());
		}
		catch(InstantiationException ie)
		{
			System.out.println("Kiitti vitusti, classii ei ollut mitä odotettiin: " + ie.getMessage());
		}
		catch(IllegalAccessException ie)
		{
			System.out.println("Kiitti vitusti, classii ei saatuu alustettuu: " + ie.getMessage());
		}
	}

	public static void main(String[] args)
	{
		System.out.println("Nyt selvitetään toimiiko tämä");
		LoadAndCall("classes_plugin/", "com.Asdf.Plugins.MyPlugin", "com.Asdf.Plugins.MyPluginSearch");
		
			
	}
}