Macro.java revision 56ed4167b942ec265f9cee70ac4d71d10b3835ce
19f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 29f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Copyright (C) 2010 Google Inc. 39f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 49f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Licensed under the Apache License, Version 2.0 (the "License"); 59f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * you may not use this file except in compliance with the License. 69f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * You may obtain a copy of the License at 79f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 89f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 99f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Unless required by applicable law or agreed to in writing, software 119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * See the License for the specific language governing permissions and 149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * limitations under the License. 159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpackage com.google.clearsilver.jsilver.template; 189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport com.google.clearsilver.jsilver.exceptions.JSilverInterpreterException; 209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/** 229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * An executable macro. This exhibits all the same characteristics of a Template. 239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpublic interface Macro extends Template { 259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Name of macro (e.g. showTable). Used to generate error messages. 289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String getMacroName(); 309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the name of the nth argument defined in the macro. Throws exception if the argument is not 339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * found. 349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String getArgumentName(int index) throws JSilverInterpreterException; 369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Return the number of arguments this macro expects. Must be equal to the number of arguments 399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * supplied. 409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int getArgumentCount(); 429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson} 439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson