view src/kryshen/tema/functions/Logics.java @ 1:548a93c24e55

Tema 0.1jk - Javakonkurs edition (imported from CVS).
author Mikhail Kryshen <mikhail@kryshen.net>
date Thu, 14 Dec 2006 23:22:05 +0300
parents
children
line source
1 /*
2 * Copyright (C) 2006 Mikhail A. Kryshen
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 * $Id: Logics.java,v 1.6 2006/12/14 14:39:26 mikhail Exp $
19 */
21 package kryshen.tema.functions;
23 import java.io.*;
24 import java.util.*;
26 import kryshen.tema.*;
28 /**
29 * Logical and conditional functions.
30 *
31 * @author Mikhail A. Kryshen
32 */
33 public class Logics {
34 public static final Function FALSE =
35 new Function() {
36 public int invoke(FunctionDataParser fdp, Writer out)
37 throws IOException, TemplateException {
39 fdp.parseData(out);
40 return 0;
41 }
42 };
44 public static final Function TRUE =
45 new Function() {
46 public int invoke(FunctionDataParser fdp, Writer out)
47 throws IOException, TemplateException {
49 fdp.parseData(out);
50 return 1;
51 }
52 };
54 /**
55 * Outputs it's data it has non-zero value.
56 */
57 public static final Function OPTIONAL =
58 new Function() {
59 public int invoke(FunctionDataParser fdp, Writer out)
60 throws IOException, TemplateException {
62 StringWriter sw = new StringWriter();
63 int s = fdp.parseData(sw);
64 sw.close();
65 String data = sw.toString();
67 if (s != 0) {
68 out.write(data);
69 return 1;
70 } else {
71 return 0;
72 }
73 }
74 };
75 }