public class

SQLActor

extends JunctionActor
/*
 * Copyright (C) 2010 Stanford University
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


package edu.stanford.junction.sample.sql;

import java.net.URL;
import java.util.HashMap;
import java.util.Map;

import org.json.JSONObject;

import edu.stanford.junction.Junction;
import edu.stanford.junction.JunctionMaker;
import edu.stanford.junction.api.activity.ActivityScript;
import edu.stanford.junction.api.activity.JunctionActor;
import edu.stanford.junction.api.messaging.MessageHandler;
import edu.stanford.junction.api.messaging.MessageHeader;
import edu.stanford.junction.provider.xmpp.XMPPSwitchboardConfig;

public class SQLActor extends JunctionActor {
	// JunctionManager extends/implements JunctionAPI

	public SQLActor() {
		super("database");
	}
	
	public static void main(String[] argv) {
		try {
			System.out.println("Starting the database actor");
			JSONObject activity = new JSONObject();
			activity.put("sessionID", "sqlQuerySession");
			activity.put("ad","edu.stanford.prpl.junction.demo.sql");
			
			XMPPSwitchboardConfig config = new XMPPSwitchboardConfig("prpl.stanford.edu");
			JunctionMaker jm = JunctionMaker.getInstance(config);
			Junction jx = jm.newJunction(new ActivityScript(activity), new SQLActor());

			/*
			try {
				Thread.sleep(3000);
				JSONObject msg = new JSONObject();
				msg.put("query","select count(*) from jz_nodes");
				jx.sendMessageToSession(msg);
			} catch (Exception e) {
				e.printStackTrace();
			}
			*/
			
			Object dud = new Object();
			synchronized(dud){
				dud.wait();
			}
			
		} catch (Exception e) {
			System.err.println("fail.");
			e.printStackTrace();
		}
	}

	@Override
	public void onActivityStart() {
		// TODO Auto-generated method stub
		
	}
	
	
	
	static MessageHandler handler = null;
	@Override
	public void onMessageReceived(MessageHeader header, JSONObject message) {
		// hack to fix from updating to onMessageReceived vs getMessageHandler
		if (handler == null) handler = new QueryHandler(this);
		
		handler.onMessageReceived(header, message);
	}	
}