source: release-kits/lirk3/ant-scripts/tasks/antelope/src/ise/antelope/tasks/condition/Contains.java@ 14982

Last change on this file since 14982 was 14982, checked in by oranfry, 16 years ago

initial import of LiRK3

File size: 4.4 KB
Line 
1/*
2* The Apache Software License, Version 1.1
3*
4* Copyright (c) 2001-2002 The Apache Software Foundation. All rights
5* reserved.
6*
7* Redistribution and use in source and binary forms, with or without
8* modification, are permitted provided that the following conditions
9* are met:
10*
11* 1. Redistributions of source code must retain the above copyright
12* notice, this list of conditions and the following disclaimer.
13*
14* 2. Redistributions in binary form must reproduce the above copyright
15* notice, this list of conditions and the following disclaimer in
16* the documentation and/or other materials provided with the
17* distribution.
18*
19* 3. The end-user documentation included with the redistribution, if
20* any, must include the following acknowlegement:
21* "This product includes software developed by the
22* Apache Software Foundation (http://www.apache.org/)."
23* Alternately, this acknowlegement may appear in the software itself,
24* if and wherever such third-party acknowlegements normally appear.
25*
26* 4. The names "The Jakarta Project", "Ant", and "Apache Software
27* Foundation" must not be used to endorse or promote products derived
28* from this software without prior written permission. For written
29* permission, please contact [email protected].
30*
31* 5. Products derived from this software may not be called "Apache"
32* nor may "Apache" appear in their names without prior written
33* permission of the Apache Group.
34*
35* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46* SUCH DAMAGE.
47* ====================================================================
48*
49* This software consists of voluntary contributions made by many
50* individuals on behalf of the Apache Software Foundation. For more
51* information on the Apache Software Foundation, please see
52* <http://www.apache.org/>.
53*/
54package ise.antelope.tasks.condition;
55
56import java.util.*;
57
58import org.apache.tools.ant.taskdefs.condition.IsTrue;
59import org.apache.tools.ant.BuildException;
60import org.apache.tools.ant.PropertyHelper;
61
62/**
63 * @author Dale Anson
64 */
65public class Contains extends IsTrue {
66
67 private String propertyName = null;
68
69 private String string, subString;
70 private boolean caseSensitive = true;
71
72 /**
73 * The name of a property value to search in.
74 * @param s the property name
75 * @since Ant 1.5
76 */
77 public void setProperty(String s) {
78 propertyName = s;
79 }
80
81 /**
82 * The string to search in.
83 * @param string the string to search in
84 * @since Ant 1.5
85 */
86 public void setString(String string) {
87 this.string = string;
88 }
89
90 /**
91 * The string to search for.
92 * @param subString the string to search for
93 * @since Ant 1.5
94 */
95 public void setSubstring(String subString) {
96 this.subString = subString;
97 }
98
99 /**
100 * Whether to search ignoring case or not.
101 * @param b if true, ignore case
102 * @since Ant 1.5
103 */
104 public void setCasesensitive(boolean b) {
105 caseSensitive = b;
106 }
107
108 /**
109 * @since Ant 1.5
110 * @return true if the substring is within the string
111 * @exception BuildException if the attributes are not set correctly
112 */
113 public boolean eval() throws BuildException {
114 String in = string;
115 if (in == null)
116 in = getProject().getProperty(propertyName);
117 if (in == null)
118 in = getProject().getUserProperty(propertyName);
119 if (in == null)
120 return false;
121
122 if (subString == null)
123 throw new BuildException("subString must be set in contains.");
124
125 return caseSensitive
126 ? in.indexOf(subString) > -1
127 : in.toLowerCase().indexOf(subString.toLowerCase()) > -1;
128 }
129
130}
Note: See TracBrowser for help on using the repository browser.