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; 33 34 /** 35 * <p> 36 * コンパイルされた一連のコマンドです。 37 * </p> 38 * 39 * @author uguu@users.sourceforge.jp 40 */ 41 public final class RpnCommandList { 42 43 private RpnCommand[] commands; 44 45 /** 46 * <p> 47 * インスタンスを初期化します。 48 * </p> 49 * 50 * @param commands 51 * コンパイルされた一連のコマンド。nullの場合、配列にnullが含まれる場合、{@link NullPointerException}例外をスローします。 52 */ 53 public RpnCommandList(RpnCommand[] commands) { 54 if (commands == null) { 55 throw new NullPointerException("commandsがnullです。"); 56 } 57 for (int i = 0; i < commands.length; i++) { 58 if (commands[i] == null) { 59 throw new NullPointerException("commands[" + i + "]がnullです。"); 60 } 61 } 62 this.commands = commands; 63 } 64 65 /** 66 * <p> 67 * コンパイルされた一連のコマンドを返します。 68 * </p> 69 * 70 * @return コンパイルされた一連のコマンド。 71 */ 72 public RpnCommand[] getCommands() { 73 return this.commands; 74 } 75 76 /** 77 * <p> 78 * 一連のコマンドの文字列表現を返します。 79 * </p> 80 * 81 * @return 一連のコマンドの文字列表現。 82 */ 83 public String toString() { 84 String str = ""; 85 for (int i = 0; i < this.commands.length; i++) { 86 str += this.commands[i].toString() + "\n"; 87 } 88 return str; 89 } 90 }