queryresponseobjectfactory.java

来自「mysql集群」· Java 代码 · 共 67 行

JAVA
67
字号
package com.meidusa.amoeba.aladdin.poolable;

import java.util.HashMap;
import java.util.Map;

import com.meidusa.amoeba.aladdin.handler.MessageHandlerRunner;
import com.meidusa.amoeba.config.ParameterMapping;
import com.meidusa.amoeba.net.poolable.PoolableObjectFactory;
import com.meidusa.amoeba.util.Initialisable;
import com.meidusa.amoeba.util.InitialisationException;

public class QueryResponseObjectFactory implements PoolableObjectFactory,Initialisable{
	private Class<MessageHandlerRunner> messageHandlerRunner;
	private Map<String,Object> runnerParameters = new HashMap<String,Object>();
	
	public Map<String, Object> getRunnerParameters() {
		return runnerParameters;
	}

	public void setRunnerParameters(Map<String, Object> parameters) {
		this.runnerParameters = parameters;
	}

	public void setMessageHandlerRunner(Class<MessageHandlerRunner> messageHandlerRunner) {
		this.messageHandlerRunner = messageHandlerRunner;
	}

	public void activateObject(Object obj) throws Exception {
		
	}

	public void destroyObject(Object obj) throws Exception {
		
	}

	public Object makeObject() throws Exception {
		QueryResponse object = new QueryResponse();
		MessageHandlerRunner runner = messageHandlerRunner.newInstance();
		
		ParameterMapping.mappingObject(runner, runnerParameters);
		
		if(runner instanceof Initialisable){
			((Initialisable)runner).init();
		}
		
		object.setMessageHandlerRunner(runner);
		if(object instanceof Initialisable){
			((Initialisable)object).init();
		}
		return object;
	}

	public void passivateObject(Object obj) throws Exception {
		QueryResponse object = (QueryResponse)obj;
		object.getRunner().reset();
	}

	public boolean validateObject(Object obj) {
		return true;
	}

	public void init() throws InitialisationException {
		
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?