KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > medor > expression > lib > StringComparatorParameterOperand


1 /**
2  * MEDOR: Middleware Enabling Distributed Object Requests
3  *
4  * Copyright (C) 2001-2005 France Telecom
5  * Contact: alexandre.lefebvre@rd.francetelecom.com
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  *
21  * Initial developers: M. Alia, A. Lefebvre
22  */

23 package org.objectweb.medor.expression.lib;
24
25 import org.objectweb.jorm.type.api.PType;
26 import org.objectweb.jorm.type.api.PTypeSpace;
27 import org.objectweb.medor.expression.api.CalculatedParameterOperand;
28 import org.objectweb.medor.expression.api.ExpressionException;
29 import org.objectweb.medor.expression.api.ParameterOperand;
30
31 /**
32  * This class defines a parameter operand to use for string comparison such as
33  * a like expression.
34  *
35  * @author S.Chassande-Barrioz
36  * @author A.Lefebvre
37  */

38 public class StringComparatorParameterOperand
39     extends BasicParameterOperand
40     implements CalculatedParameterOperand {
41     
42     String JavaDoc prefix;
43     String JavaDoc suffix;
44
45     public StringComparatorParameterOperand(BasicParameterOperand po, String JavaDoc prefix, String JavaDoc suffix) {
46         super(po);
47         this.prefix = prefix;
48         this.suffix = suffix;
49     }
50
51     public StringComparatorParameterOperand(String JavaDoc name, String JavaDoc prefix, String JavaDoc suffix) {
52         super(PTypeSpace.STRING, name);
53         this.prefix = prefix;
54         this.suffix = suffix;
55     }
56
57     
58     /**
59      *
60      */

61     public void evaluate(ParameterOperand[] pos) throws ExpressionException {
62         String JavaDoc res = null;
63         for (int i = 0; i < pos.length; i++) {
64             if (pos[i] != null
65                     && name.equals(pos[i].getName())
66                     && pos[i].getType().getTypeCode() == PType.TYPECODE_STRING) {
67                 res = pos[i].getString();
68             }
69         }
70         if (res == null) {
71             throw new ExpressionException("Impossible to evaluate this parameter wihtout the parameter " + name);
72         }
73         if (suffix != null) {
74             res += suffix;
75         }
76         if (prefix != null) {
77             res = prefix + res;
78         }
79         this.setValue(res);
80     }
81 }
82
Popular Tags