1/*
2 * [The "BSD licence"]
3 * Copyright (c) 2005-2008 Terence Parr
4 * All rights reserved.
5 *
6 * Conversion to C#:
7 * Copyright (c) 2008 Sam Harwell, Pixel Mine, Inc.
8 * All rights reserved.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 *    notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 *    notice, this list of conditions and the following disclaimer in the
17 *    documentation and/or other materials provided with the distribution.
18 * 3. The name of the author may not be used to endorse or promote products
19 *    derived from this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33using System;
34using System.Text;
35
36namespace Antlr.Runtime.JavaExtensions
37{
38    public static class StringExtensions
39    {
40#if DEBUG
41        [Obsolete]
42        public static char charAt( string str, int index )
43        {
44            return str[index];
45        }
46
47        [Obsolete]
48        public static bool endsWith( string str, string value )
49        {
50            return str.EndsWith( value );
51        }
52
53        [Obsolete]
54        public static int indexOf( string str, char value )
55        {
56            return str.IndexOf( value );
57        }
58
59        [Obsolete]
60        public static int indexOf( string str, char value, int startIndex )
61        {
62            return str.IndexOf( value, startIndex );
63        }
64
65        [Obsolete]
66        public static int indexOf( string str, string value )
67        {
68            return str.IndexOf( value );
69        }
70
71        [Obsolete]
72        public static int indexOf( string str, string value, int startIndex )
73        {
74            return str.IndexOf( value, startIndex );
75        }
76
77        [Obsolete]
78        public static int lastIndexOf( string str, char value )
79        {
80            return str.LastIndexOf( value );
81        }
82
83        [Obsolete]
84        public static int lastIndexOf( string str, string value )
85        {
86            return str.LastIndexOf( value );
87        }
88
89        [Obsolete]
90        public static int length( string str )
91        {
92            return str.Length;
93        }
94#endif
95
96        public static string replace( string str, char oldValue, char newValue )
97        {
98            int index = str.IndexOf( oldValue );
99            if ( index == -1 )
100                return str;
101
102            System.Text.StringBuilder builder = new StringBuilder( str );
103            builder[index] = newValue;
104            return builder.ToString();
105        }
106
107        public static string replaceAll( string str, string regex, string newValue )
108        {
109            return System.Text.RegularExpressions.Regex.Replace( str, regex, newValue );
110        }
111
112        public static string replaceFirst( string str, string regex, string replacement )
113        {
114            return System.Text.RegularExpressions.Regex.Replace( str, regex, replacement );
115        }
116
117#if DEBUG
118        [Obsolete]
119        public static bool startsWith( string str, string value )
120        {
121            return str.StartsWith( value );
122        }
123#endif
124
125        [Obsolete]
126        public static string substring( string str, int startOffset )
127        {
128            return str.Substring( startOffset );
129        }
130
131        public static string substring( string str, int startOffset, int endOffset )
132        {
133            return str.Substring( startOffset, endOffset - startOffset );
134        }
135
136#if DEBUG
137        [Obsolete]
138        public static char[] toCharArray( string str )
139        {
140            return str.ToCharArray();
141        }
142
143        [Obsolete]
144        public static string toUpperCase( string str )
145        {
146            return str.ToUpperInvariant();
147        }
148
149        [Obsolete]
150        public static string trim( string str )
151        {
152            return str.Trim();
153        }
154#endif
155    }
156}
157