1 /* 2 * Copyright (C) 2006 uguu@users.sourceforge.jp, All Rights Reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 15 * 3. Neither the name of Clarkware Consulting, Inc. nor the names of its 16 * contributors may be used to endorse or promote products derived 17 * from this software without prior written permission. For written 18 * permission, please contact clarkware@clarkware.com. 19 * 20 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, 21 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 22 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 23 * CLARKWARE CONSULTING OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 24 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 26 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 27 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 28 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 29 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32 package jp.sourceforge.rpn_computer.command; 33 34 import jp.sourceforge.rpn_computer.RpnCommand; 35 import jp.sourceforge.rpn_computer.RpnContext; 36 37 /** 38 * <p> 39 * スタックに値をプッシュします。 40 * </p> 41 * 42 * @author uguu@users.sourceforge.jp 43 */ 44 public final class PushStackCommand implements RpnCommand { 45 46 private double value; 47 48 /** 49 * <p> 50 * インスタンスを初期化します。 51 * </p> 52 * 53 * @param value 54 * スタックにプッシュする値。 55 */ 56 public PushStackCommand(double value) { 57 this.value = value; 58 } 59 60 /** 61 * {@inheritDoc} 62 */ 63 public void execute(RpnContext context) { 64 context.pushStack(new Double(this.value)); 65 } 66 67 /** 68 * {@inheritDoc} 69 */ 70 public String toString() { 71 return "push_stack[" + this.value + "]"; 72 } 73 }