comminterview.java
来自「cqME :java framework for TCK test.」· Java 代码 · 共 363 行
JAVA
363 行
/* * $Id$ * * Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. * */package com.sun.tck.j2me.interview;import java.util.Map;import com.sun.interview.Interview;import com.sun.javatest.InterviewParameters;import com.sun.interview.Question;import com.sun.interview.IntQuestion;import com.sun.interview.NullQuestion;import com.sun.interview.FinalQuestion;import com.sun.interview.YesNoQuestion;import com.sun.interview.ChoiceQuestion;import com.sun.interview.StringQuestion;import com.sun.tck.j2me.utils.Utils;/** * Interview for the communication service. * <p> * The exported value of <code>httpHost</code> JavaTest environment variable * will be converted to RFC 2732 format if the value is a literal IPv6 address. */public class CommInterview extends Interview { public static final int CLDC_MODE = 1; public static final int CDC_MODE = 2; static final int HTTP_TRANSPORT = TransportConstants.HTTP_TRANSPORT; static final int UDP_TRANSPORT = TransportConstants.UDP_TRANSPORT; static final int TCP_IP_TRANSPORT = TransportConstants.TCP_IP_TRANSPORT; static final int COMM_TRANSPORT = TransportConstants.COMM_TRANSPORT; private static final String HTTP_CONNECTION = "httpConnection"; private static final String SOCKET_CONNECTION = "socketConnection"; private static final String DATAGRAM_CONNECTION = "datagramConnection"; private static final String COMM_CONNECTION = "commConnection"; private static final String CUSTOM_CONNECTION = "customConnection"; private int iMode; private boolean bDistrMode; private int iTransport = HTTP_TRANSPORT; public CommInterview(Interview parent, int iMode, boolean bDistrMode) throws InterviewParameters.Fault { super(parent, "comm"); setResourceBundle("comm"); setHelpSet("help/vm"); if (iMode == CDC_MODE) { setFirstQuestion(qIntro); } else { setFirstQuestion(qHttpHost); } this.iMode = iMode; this.bDistrMode = bDistrMode; customComm = new CustomCommunicationInterview(this); } private NullQuestion qIntro = new NullQuestion(this, "intro") { public Question getNext() { return qHttpHost; } }; private HostQuestion qHttpHost = new HostQuestion (this, "httpHost") { protected Question getNext() { if (iMode == CLDC_MODE) { return qHttpPort; } else { return qCommTypes; } } }; /* * Only visible in CLDC mode. */ private IntQuestion qHttpPort = new IntQuestion(this, "httpPort", 1, 65535) { public void clear() { setValue(8080); } protected Question getNext() { if (!isValueValid()) return null; else { if (bDistrMode) { return qCommPort; } else { return qEnd; } } } }; ChoiceQuestion qCommTypes = new ChoiceQuestion(this, "communicationType") { { clear(); } protected void setChoices(String[] choices) { super.setChoices(choices, true); } public void clear() { setChoices(new String[] { HTTP_CONNECTION, SOCKET_CONNECTION, DATAGRAM_CONNECTION, COMM_CONNECTION, CUSTOM_CONNECTION}); setValue(SOCKET_CONNECTION); } protected Question getNext() { if (HTTP_CONNECTION.equals(getValue())) { setTransport(HTTP_TRANSPORT); return qCommPort; } else if (DATAGRAM_CONNECTION.equals(getValue())) { setTransport(UDP_TRANSPORT); return qDefaultDataLength; } else if (SOCKET_CONNECTION.equals(getValue())) { setTransport(TCP_IP_TRANSPORT); return qCommPort; } else if (COMM_CONNECTION.equals(getValue())) { setTransport(COMM_TRANSPORT); return qDefaultBaudRate; } else if (CUSTOM_CONNECTION.equals(getValue())) { return callInterview(customComm, qEnd); } else { return null; } } }; private YesNoQuestion qDefaultDataLength = new YesNoQuestion(this, "defaultDataLength") { public void clear() { setValue(YesNoQuestion.YES); } protected Question getNext() { if (value == null) { return null; } else if (value == YesNoQuestion.YES) { return qCommPort; } else { return qDataLength; } } protected void export(Map data) { if (value == YesNoQuestion.YES) { data.put("datagram.dataLength", "1400"); } } }; private IntQuestion qDataLength = new IntQuestion(this, "dataLength", 200, 1400) { protected Question getNext() { return qCommPort; } protected void export(Map data) { data.put("datagram.dataLength", String.valueOf(value)); } }; private YesNoQuestion qDefaultBaudRate = new YesNoQuestion(this, "defaultBaudRate") { public void clear() { setValue(YesNoQuestion.YES); } protected Question getNext() { if (value == null) { return null; } else if (value == YesNoQuestion.YES) { return qSerialPort; } else { return qBaudRate; } } protected void export(Map data) { if (value == YesNoQuestion.YES) { data.put("commService.comm.baudRate", "9600"); } } }; private IntQuestion qBaudRate = new IntQuestion(this, "baudRate", 300, 115200) { protected Question getNext() { return qSerialPort; } protected void export(Map data) { data.put("commService.comm.baudRate", String.valueOf(getValue())); } }; private StringQuestion qSerialPort = new StringQuestion(this, "serialPort") { { setSuggestions(new String[] { "COM1", "COM2", "COM3", "COM4", "/dev/term/a", "/dev/term/b", "/dev/ttyS0", "/dev/ttyS1", "/dev/ttyS2", "/dev/ttyS3"}); } protected Question getNext() { if ((getValue() == null) || ("".equals(getValue()))) { return null; } return qEnd; } protected void export(Map data) { data.put("commService.server.port", getValue()); exportCommService(data, iTransport); } }; private IntQuestion qCommPort = new IntQuestion(this, "commPort", 1, 65535) { public void clear() { setValue(8188); } protected Question getNext() { if (!isValueValid()) return null; else return qEnd; } protected void export(Map data) { data.put("commService.j2me.jar", DEFAULT_J2ME_COMMUNICATION_JAR); data.put("msgService.j2me.jar", DEFAULT_J2ME_MESSAGING_JAR); data.put("commService.server.port", "" + getValue()); if (iMode == CLDC_MODE) { String commClientJar = HTTP_COMM_CLIENT_JAR; String commClientClass = HTTP_COMM_CLIENT_CLASS; String commClientArgs = "IGNORE"; data.put("commService.server.address", HTTP_COMM_URL); data.put("commService.client.jar", commClientJar); data.put("commService.client", commClientClass); data.put("commService.client.args", commClientArgs); } exportCommService(data, iTransport); } }; private void exportCommService(Map data, int transport) { String commServerJar = null; String commServerClass = null; String commServiceServer = null; if (transport == HTTP_TRANSPORT) { commServerJar = HTTP_COMM_SERVER_JAR; commServerClass = HTTP_COMM_SERVER_CLASS; commServiceServer = commServerClass + " http.url=" + HTTP_COMM_URL; } else if (transport == CommInterview.UDP_TRANSPORT) { commServerJar = DATAGRAM_COMM_SERVER_JAR; commServerClass = DATAGRAM_COMM_SERVER_CLASS; commServiceServer = commServerClass + " url=" + DATAGRAM_COMM_URL; commServiceServer += " verbose=$remoteVerbose"; } else if (transport == CommInterview.TCP_IP_TRANSPORT) { commServerJar = TCP_IP_COMM_SERVER_JAR; commServerClass = TCP_IP_COMM_SERVER_CLASS; commServiceServer = commServerClass + " host=$httpHost port=$commService.server.port"; } else if (transport == CommInterview.COMM_TRANSPORT) { commServerJar = SERIAL_COMM_SERVER_JAR; commServerClass = SERIAL_COMM_SERVER_CLASS; commServiceServer = commServerClass + " -commPort $commService.server.port" + " -baudRate $commService.comm.baudRate"; } data.put("commService.server", commServiceServer); data.put("commService.server.jar", commServerJar); } /** * @return the answer to the question of the host name where ComService * server will be running. If the host name is a literal IPv6 * address, it will be converted to RFC 2732 format. */ public String getLocalhost() { return Utils.getURLFmtAddress(qHttpHost.getValue()); } int getExecHttpServerPort() { return qHttpPort.getValue(); } private void setTransport(int iTransport) { this.iTransport = iTransport; } private FinalQuestion qEnd = new FinalQuestion(this); private CustomCommunicationInterview customComm; //General static final String DEFAULT_J2ME_COMMUNICATION_JAR = "$j2meFwLibDir$/j2me_communication.jar"; static final String DEFAULT_J2ME_MESSAGING_JAR = "$j2meFwLibDir$/j2me_messaging.jar"; //HTTP static final String HTTP_COMM_URL = "http://$httpHost:$commService.server.port"; static final String HTTP_COMM_SERVER_JAR = "$j2meFwLibDir$/j2me_httpCommServer.jar"; static final String HTTP_COMM_SERVER_CLASS = "com.sun.tck.j2me.services.commService.servers.HTTPCommServer"; static final String HTTP_COMM_CLIENT_JAR = "$j2meFwLibDir$/midp_commClient.jar"; static final String HTTP_COMM_CLIENT_CLASS = "com.sun.tck.j2me.services.commService.clients.MidHTTPCommClient"; //UDP static final String DATAGRAM_COMM_URL = "datagram://$httpHost:$commService.server.port"; static final String DATAGRAM_COMM_SERVER_JAR = "$j2meFwLibDir$/datagram_commServer.jar"; static final String DATAGRAM_COMM_SERVER_CLASS = "com.sun.tck.j2me.services.commService.servers.DatagramSocketCommServer"; //TCP/IP static final String TCP_IP_COMM_SERVER_JAR = "$j2meFwLibDir$/j2mefw_jt.jar"; static final String TCP_IP_COMM_SERVER_CLASS = "com.sun.tck.j2me.services.commService.servers.SocketCommServer"; //COMM static final String SERIAL_COMM_SERVER_JAR = "$j2meFwLibDir$/serial_commServer.jar"; static final String SERIAL_COMM_SERVER_CLASS = "com.sun.tck.j2me.services.commService.servers.SerialCommServer";}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?