All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.epsilon.emc.simulink.engine.MatlabEngineCommands Maven / Gradle / Ivy

/*********************************************************************
* Copyright (c) 2008 The University of York.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/

package org.eclipse.epsilon.emc.simulink.engine;

public class MatlabEngineCommands {
	
	/** COMMANDS */
	public static final String ASSIGN = "? = ?";
	public static final String INSPECT = "inspect(?);";
	public static final String HANDLE = "handle = ?;";
	public static final String HANDLES = "handles = ";
	public static final String INSPECT_HANDLE = "inspect(handle);";
	
	public static final String GET_HANDLE_PROPERTY = "get_param(handle, '?');";
	public static final String GET_PROPERTY = "get_param(?, '?');";
	public static final String SET_HANDLE_PROPERTY = "set_param(handle, '?', '?');";
	public static final String SET_PROPERTY = "set_param(?, '?', '?');";

	/** OPERATION */
	public static final String LINE_BREAK = "\n";
	public static final String COMMAND_END = ";";
	public static final String SEP = " ";
		
	public static final String HANDLE_INSPECT_HANDLE = HANDLE + INSPECT_HANDLE;
	public static final String GET_PROPERTY_FROM_HANDLE = HANDLE + GET_HANDLE_PROPERTY;
	public static final String SET_PROPERTY_TO_HANDLE = HANDLE + SET_HANDLE_PROPERTY;
	
	private static final int SILENT = 0;
	private static final int DEBUG = 1;
	
	protected static String chain(String[] commands, int mode) {
		StringBuilder builder = new StringBuilder();
		for(String s : commands) {
			String sep = " ";
			switch (mode) {
			case SILENT:
				// Does not print command result
				sep = COMMAND_END; 
			case DEBUG:
				// Prints command result at end of line
				sep = LINE_BREAK; 
			}
		    builder.append(s + sep);
		}
		return builder.toString();
	}
	
	public static String simulinkHandle(String cmd, String handle, Object...params) {
		if (handle == null || handle.isEmpty()) {
			handle = "handle";
		}
		String c = cmd + "(" + handle;
		for (Object parameter : params) 
			c += ", '" + String.valueOf(parameter).replace("'", "''") + "'";
		return c + ")";
	}
	public static String simulink(String cmd, Object...params) {
		return simulinkHandle(cmd, "handle", params);
	}
	
	public static String cmd(String cmd, Object... args) {
		return String.format(cmd, args);
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy