private static void Padding(PrintWriter @out, IEnumerator <int> lengths, char var) { while (lengths.MoveNext()) { if (lengths.nextIndex() > 0) { @out.append(' '); } for (int length = lengths.Current; length-- > 1;) { @out.append(' '); } @out.append(var); } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: void addTo(String line, String... path) throws java.io.IOException internal virtual void AddTo(string line, params string[] path) { FileObject fo = processingEnv.Filer.getResource(StandardLocation.CLASS_OUTPUT, "", path(path)); URI uri = fo.toUri(); File file; try { file = new File(uri); } catch (Exception) { file = new File(uri.ToString()); } if (file.exists()) { foreach (string previous in _nl.split(fo.getCharContent(true), 0)) { if (line.Equals(previous)) { return; } } } else { file.ParentFile.mkdirs(); } using (PrintWriter writer = new PrintWriter(new StreamWriter(new FileStream(file, true), Encoding.UTF8))) { writer.append(line).append("\n"); } }
private static void Emit(PrintWriter @out, IList <int> lengths, System.Func <int, Value> valueLookup, int values) { for (int i = 0; i < values; i++) { if (i > 0) { @out.append(' '); } string name = ShortName(valueLookup(i).ToString()); for (int pad = lengths[i] - name.Length; pad-- > 0;) { @out.append(' '); } @out.append(name); } }
public override void printStackTrace(PrintWriter s) { s.append(_stackTrace); }
private static string DetailedMessage(string errorMessage, MethodNode method, Frame[] frames, AbstractInsnNode errorLocation) { StringWriter message = new StringWriter(); using (PrintWriter @out = new PrintWriter(message)) { IList <int> localLengths = new List <int>(); IList <int> stackLengths = new List <int>(); foreach (Frame frame in frames) { if (frame != null) { for (int i = 0; i < frame.Locals; i++) { Insert(i, frame.getLocal(i), localLengths); } for (int i = 0; i < frame.StackSize; i++) { Insert(i, frame.getStack(i), stackLengths); } } } Textifier formatted = new Textifier(); TraceMethodVisitor mv = new TraceMethodVisitor(formatted); @out.println(errorMessage); @out.append("\t\tin ").append(method.name).append(method.desc).println(); for (int i = 0; i < method.instructions.size(); i++) { AbstractInsnNode insn = method.instructions.get(i); insn.accept(mv); Frame frame = frames[i]; @out.append("\t\t"); @out.append(insn == errorLocation ? ">>> " : " "); @out.format("%05d [", i); if (frame == null) { //JAVA TO C# CONVERTER WARNING: Unlike Java's ListIterator, enumerators in .NET do not allow altering the collection: Padding(@out, localLengths.GetEnumerator(), '?'); @out.append(" : "); //JAVA TO C# CONVERTER WARNING: Unlike Java's ListIterator, enumerators in .NET do not allow altering the collection: Padding(@out, stackLengths.GetEnumerator(), '?'); } else { Emit(@out, localLengths, frame.getLocal, frame.Locals); Padding(@out, localLengths.listIterator(frame.Locals), '-'); @out.append(" : "); Emit(@out, stackLengths, frame.getStack, frame.StackSize); Padding(@out, stackLengths.listIterator(frame.StackSize), ' '); } @out.print("] : "); @out.print(formatted.text.get(formatted.text.size() - 1)); } for (int j = 0; j < method.tryCatchBlocks.size(); j++) { method.tryCatchBlocks.get(j).accept(mv); @out.print(" " + formatted.text.get(formatted.text.size() - 1)); } } return(message.ToString()); }