/** * Copyright (c) 2005-2006 Aptana, Inc. * * 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. If redistributing this code, * this entire header must remain intact. */ package org.eclipse.eclipsemonkey.lang.javascript; import org.mozilla.javascript.Context; import org.mozilla.javascript.Function; import org.mozilla.javascript.Scriptable; import org.mozilla.javascript.ScriptableObject; /** * @author Kevin Lindsey */ public class JavaScriptPrintStream extends ScriptableObject { /* * Fields */ private static final long serialVersionUID = -4338424230536797200L; private java.io.PrintStream _stream; /* * Properties */ /** * @see org.mozilla.javascript.ScriptableObject#getClassName() */ public String getClassName() { return "PrintStream"; //$NON-NLS-1$ } /* * Constructors */ /** * Create a new instance of PrintStream * * @param scope * @param stream * The underlying stream to wrap */ public JavaScriptPrintStream(Scriptable scope, java.io.PrintStream stream) { super(); this.setParentScope(scope); this._stream = stream; this .defineFunctionProperties(new String[] { "print", "println" }, JavaScriptPrintStream.class, //$NON-NLS-1$ //$NON-NLS-2$ ScriptableObject.READONLY); } /* * Methods */ /** * print * * @param cx * @param thisObj * @param args * @param funObj */ public static void print(Context cx, Scriptable thisObj, Object[] args, Function funObj) { JavaScriptPrintStream instance = (JavaScriptPrintStream) thisObj; for (int i = 0; i < args.length; i++) { String arg = Context.toString(args[0]); instance._stream.print(arg); } } /** * println * * @param cx * @param thisObj * @param args * @param funObj */ public static void println(Context cx, Scriptable thisObj, Object[] args, Function funObj) { JavaScriptPrintStream instance = (JavaScriptPrintStream) thisObj; for (int i = 0; i < args.length; i++) { String arg = Context.toString(args[0]); instance._stream.println(arg); } } }