2022

Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
 package myappcode;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.appmashups.appcode.AppCode;
import com.appmashups.appcode.Context;
import com.appmashups.appcode.SaveResult;

import java.util.List;

public class HelloWorldSvc implements AppCode {

	public static class HelloParameter{
		public String id;
		public String name;
		public String value;
	}

	public static class HelloFilter{
		public String key;
}

	private List<HelloParameter> initParams ;

	private String sessionKey;

	static Logger logger = Logger.getLogger(HelloWorldSvc.class.getName());

	@Override
	public void close() throws RemoteException {
		// TODO Auto-generated method stub
		// TODO Auto-generated method stub
		logger.log(Level.INFO, "Hello World AppCode close called:" + sessionKey);
		System.out.println("Hello World AppCode close called:" + sessionKey );
		sessionKey = null;

	}

	@Override
	public void open() throws RemoteException {
		// TODO Auto-generated method stub
		init();
		sessionKey = UUID.randomUUID().toString();
		logger.log(Level.INFO, "Hello World AppCode Session opened:" + sessionKey);
		System.out.println("Hello World AppCode Session opened:" + sessionKey);
	}

	@Override
	public void setContext(Context arg0) {
		// TODO Auto-generated method stub
		logger.log(Level.INFO, "Hello World AppCode Set Context called");
		System.out.println("Hello World AppCode Set Context called");

	}

	private void init() {

		initParams = new ArrayList<HelloWorldSvc.HelloParameter>();

		HelloParameter initparam1 = new HelloParameter();
		initparam1.id = "1";
		initparam1.name = "Scott";

		HelloParameter initparam2 = new HelloParameter();
		initparam2.id = "2";
		initparam2.name = "Tiger";

		HelloParameter initparam3 = new HelloParameter();
		initparam3.id = "3";
		initparam3.name = "Matt";

		initParams.add(initparam1);
		initParams.add(initparam2);
		initParams.add(initparam3);

	}

	public List<HelloParameter> readHello(HelloFilter filter){

		logger.info("Received Read operation with filter:" + filter.key + ":with session" + sessionKey);

		System.out.println("Received Read operation with filter:" + filter.key + ":with session" + sessionKey);

		List<HelloParameter> returnList = new
	ArrayList<HelloWorldSvc.HelloParameter>();

		for(HelloParameter initParam : initParams) {

			if(filter.key.equalsIgnoreCase(initParam.name)) {

				//Now set the value to "Hello":name:sessionId
				initParam.value = "Hello:"+initParam.name+":"+sessionKey;

				System.out.println("Matched Key:" + initParam.name + ":value:" + initParam.value );

				logger.info("Matched Key:" + initParam.name + ":value:" + initParam.value );

				returnList.add(initParam);
			}
		}

		return returnList;

	}

	public SaveResult[] writeHello(List<HelloParameter> inputParams){

		List<SaveResult> saveResults = new ArrayList<SaveResult>();

		logger.info("Received write operation with session" + sessionKey);

		System.out.println("Received write operation with session" + sessionKey);

		for(HelloParameter inputParam : inputParams) {

			System.out.println("Received input parameter:id:" + inputParam.id + ":name:" + inputParam.name);
			logger.info("Received input parameter:id:" + inputParam.id + ":name:" + inputParam.name);

			inputParam.value = "Hello:"+inputParam.name+":"+sessionKey;

			System.out.println("Writing value:" + inputParam.value );

			logger.info("Writing value:" + inputParam.value);

			SaveResult result = new SaveResult();
			result.id = inputParam.id;
			result.newid = inputParam.id+":"+sessionKey;
			result.success = true;

			saveResults.add(result);

			}

			return saveResults.toArray(new SaveResult[] {});
		}

}
Code Block

 @Test
public void testReadHello() {

	try {

		HelloWorldSvc svc = new HelloWorldSvc();

		svc.setContext(null);

		svc.open();

		HelloFilter filter = new HelloFilter();
		filter.key = "Scott";

		svc.readHello(filter);

		svc.close();

		} catch (Exception e) {
			e.printStackTrace();

		}

	}

Image Added
Now we will test the write operation where we take and Array of HelloParameter objects as input and the write operation prints it out 

Panel
Wiki Markup

@Test
public void testWriteHello() {
	try {

		HelloWorldSvc svc = new HelloWorldSvc();

		svc.setContext(null);

		svc.open();

		HelloParameter param = new HelloParameter();
		param.name = "Test1";
		param.id = "id1";

		HelloParameter param2 = new HelloParameter();
		param2.name = "Test1";
		param2.id = "id2";

		List<HelloParameter> inputParams = new
	ArrayList<HelloWorldSvc.HelloParameter>();
		svc.writeHello(inputParams);

		svc.close();

	} catch (Exception e) {
		e.printStackTrace();
	}
}