1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.millscript.millscript.functions;
23
24 import org.millscript.commons.util.IList;
25 import org.millscript.millscript.vm.Machine;
26 import org.millscript.millscript.vm.Package;
27
28 /**
29 * This class implements the MillScript <code>newPage</code> function.
30 */
31 public final class NewPageFunction extends AbstractOutputFileFunction {
32
33 /**
34 * Constructs a new NewPageFunction for the specified package.
35 *
36 * @param pack the package this function belongs to
37 */
38 public NewPageFunction( final Package pack ) {
39 super( pack );
40 }
41
42 /**
43 * @see org.millscript.millscript.functions.Function#apply(org.millscript.millscript.vm.Machine, int)
44 */
45 @Override
46 public void apply( final Machine mc, final int nargs ) {
47 if ( nargs == 1 ) {
48 mc.pushObject( newPage( mc.popString() ) );
49 } else if ( nargs == 2 ) {
50 final String extn = mc.popString();
51 final String name = mc.popString();
52 mc.pushObject( newPage( name, extn ) );
53 } else if ( nargs == 3 ) {
54 final String extn = mc.popString();
55 final String name = mc.popString();
56 final IList folder = mc.popIList();
57 mc.pushObject( newPage( folder, name, extn ) );
58 } else {
59 checkNargs( mc, 3, nargs );
60 }
61 }
62
63 /**
64 * @see org.millscript.millscript.functions.AbstractOutputFileFunction#getDefaultExtension()
65 */
66 @Override
67 public String getDefaultExtension() {
68 return "html";
69 }
70
71 }