ReplyNode.java revision 8845:4be14673b9bf
1/* 2 * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26package build.tools.jdwpgen; 27 28import java.util.*; 29import java.io.*; 30 31class ReplyNode extends AbstractTypeListNode { 32 33 String cmdName; 34 35 void set(String kind, List<Node> components, int lineno) { 36 super.set(kind, components, lineno); 37 components.add(0, new NameNode(kind)); 38 } 39 40 void constrain(Context ctx) { 41 super.constrain(ctx.replyReadingSubcontext()); 42 CommandNode cmd = (CommandNode)parent; 43 cmdName = cmd.name; 44 } 45 46 void genJava(PrintWriter writer, int depth) { 47 genJavaPreDef(writer, depth); 48 super.genJava(writer, depth); 49 writer.println(); 50 genJavaReadingClassBody(writer, depth, cmdName); 51 } 52 53 void genJavaReads(PrintWriter writer, int depth) { 54 if (Main.genDebug) { 55 indent(writer, depth); 56 writer.println( 57 "if (vm.traceReceives) {"); 58 indent(writer, depth+1); 59 writer.print( 60 "vm.printTrace(\"Receiving Command(id=\" + ps.pkt.id + \") "); 61 writer.print(parent.context.whereJava); 62 writer.print("\""); 63 writer.print( 64 "+(ps.pkt.flags!=0?\", FLAGS=\" + ps.pkt.flags:\"\")"); 65 writer.print( 66 "+(ps.pkt.errorCode!=0?\", ERROR CODE=\" + ps.pkt.errorCode:\"\")"); 67 writer.println(");"); 68 indent(writer, depth); 69 writer.println("}"); 70 } 71 super.genJavaReads(writer, depth); 72 } 73} 74