/******************************************************************************* * Copyright (c) 2000, 2006 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * QNX Software Systems - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.debug.mi.core.command; import java.util.ArrayList; import java.util.List; import org.eclipse.cdt.debug.mi.core.MIFormat; /** * * Write given values into registers. The registers and values are * given as pairs. The corresponding MI command is * -data-write-register-values <format> [<regnum1> <value1>...<regnumN> <valueN>] * */ public class MIDataWriteRegisterValues extends MICommand { public MIDataWriteRegisterValues(String miVersion, int fmt, int[] regnos, String[] values) { super(miVersion, "-data-write-register-values"); //$NON-NLS-1$ String format = "x"; //$NON-NLS-1$ switch (fmt) { case MIFormat.NATURAL: format = "N"; //$NON-NLS-1$ break; case MIFormat.RAW: format = "r"; //$NON-NLS-1$ break; case MIFormat.DECIMAL: format = "d"; //$NON-NLS-1$ break; case MIFormat.BINARY: format = "t"; //$NON-NLS-1$ break; case MIFormat.OCTAL: format = "o"; //$NON-NLS-1$ break; case MIFormat.HEXADECIMAL: default: format = "x"; //$NON-NLS-1$ break; } setOptions(new String[]{format}); if (regnos != null && values != null) { List aList = new ArrayList(regnos.length); for (int i = 0; i < regnos.length && i < values.length; i++) { aList.add(Integer.toString(regnos[i])); aList.add(values[i]); } String[] array = (String[])aList.toArray(new String[0]); setParameters(array); } } }