blob: 91d33f79016521ac782d621bf3673f0251730825 [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<html>
<head>
<title>Status File for Jakarta Commons "Lang" Component</title>
</head>
<body bgcolor="white">
<div align="center">
<h1>The Jakarta Commons <em>Lang</em> Component</h1>
$Id$<br />
<a href="#Introduction">[Introduction]</a>
<a href="#Dependencies">[Dependencies]</a>
<a href="#Release Info">[Release Info]</a>
<a href="#Known Issues">[Known Issues]</a>
<a href="#Action Items">[Action Items]</a>
<a href="#Committers">[Committers]</a>
<br /><br />
</div>
<a name="Introduction"></a>
<h3>1. INTRODUCTION</h3>
<p>The <em>Lang</em> Component contains a set of Java classes that provide
a basic set of common utility code on top of the standard Java classes.
The following principal classes are included:</p>
<ul>
<li><strong>Main package</strong> - A package for the manipulation of basic Java classes
<ul>
<li><strong>ArrayUtils</strong> - Helper for manipulating arrays.</li>
<li><strong>BitField</strong> - A class to assist with manipulating bits.</li>
<li><strong>BooleanUtils</strong> - Helper for boolean and java.lang.Boolean.</li>
<li><strong>CharEncoding</strong> - Character encoding names required of every implementation of the Java platform.</li>
<li><strong>CharRange</strong> - A range of characters.</li>
<li><strong>CharSet</strong> - A set of characters.</li>
<li><strong>CharSetUtils</strong> - Methods for dealing with CharSets, which are sets of characters such as [a-z] and [abcdez].</li>
<li><strong>CharUtils</strong> - Helper for operations on char primities and Character objects.</li>
<li><strong>ClassUtils</strong> - Helper for manipulating java.lang.Class objects.</li>
<li><strong>ObjectUtils</strong> - Helper for java.lang.Object.</li>
<li><strong>RandomStringUtils</strong> - Helper for creating randomised Strings.</li>
<li><strong>SerializationUtils</strong> - Helper for serializing Objects.</li>
<li><strong>StringEscapeUtils</strong> - Utility for escaping and unescaping Strings.</li>
<li><strong>StringUtils</strong> - Helper for java.lang.String.</li>
<li><strong>SystemUtils</strong> - Utility class defining the Java system properties.</li>
<li><strong>Validate</strong> - A class to simplify method argument validation.</li>
<li><strong>WordUtils</strong> - Utility for working with words.</li>
</ul></li>
<li><strong>Builder package</strong> - A package for the creation of equals, hashCode, compareTo and toString methods.
<ul>
<li><strong>ToStringBuilder</strong> - Helper for building toString methods.</li>
<li><strong>EqualsBuilder</strong> - Helper for building equals methods.</li>
<li><strong>HashCodeBuilder</strong> - Helper for building hashCode methods.</li>
<li><strong>CompareToBuilder</strong> - Helper for building compareTo methods.</li>
<li><strong>ReflectionToStringBuilder</strong> - Helper for building toString methods using reflection.</li>
<li><strong>ToStringStyle</strong> - Controls string formatting for <strong>ToStringBuilder</strong>.</li>
<li><strong>StandardToStringStyle</strong> - Works with <strong>ToStringBuilder</strong> to create a toString.</li>
</ul></li>
<li><strong>Enums package</strong> - A package for the creation of enumerated types. Note: The package was previously named <strong>Enum</strong>.
<ul>
<li><strong>EnumUtils</strong> - Helper for manipulating enumerated types.</li>
<li><strong>Enum</strong> - Abstract superclass for enumerated types to extend.</li>
<li><strong>ValuedEnum</strong> - Superclass for enumerated types with an integer constant.</li>
</ul></li>
<li><strong>Exception package</strong> - A package for the creation and manipulation of nested exceptions.</li>
<ul>
<li><strong>ExceptionUtils</strong> - Helper for manipulating exceptions.</li>
<li><strong>NestableException</strong> - An exception that supports a nested exception.</li>
<li><strong>NestableRuntimeException</strong> - An exception that supports a nested exception.</li>
<li><strong>NestableError</strong> - An exception that supports a nested exception.</li>
</ul></li>
<li><strong>Math package</strong> - A package for simple business (not scientific) maths classes.
<ul>
<li><strong>DoubleRange</strong> - Represents an inclusive range of doubles.</li>
<li><strong>FloatRange</strong> - Represents an inclusive range of floats.</li>
<li><strong>Fraction</strong> - A fraction.</li>
<li><strong>IntRange</strong> - Represents an inclusive range of ints.</li>
<li><strong>JVMRandom</strong> - An implementation of Random that does its best to appear to sit on top of java.lang.Math's private Random class.</li>
<li><strong>LongRange</strong> - Represents an inclusive range of longs.</li>
<li><strong>NumberRange</strong> - Represents an inclusive range of <strong>Number</strong> objects of the same type.</li>
<li><strong>NumberUtils</strong> - Helper for java.lang.Number and its subclasses.</li>
<li><strong>RandomUtils</strong> - A utility class for working with random numbers.</li>
<li><strong>Range</strong> - A range of numbers, of which there are classes representing Numbers, ints, doubles, longs and floats.</li>
</ul></li>
<li><strong>Mutable package</strong> - A package for typed mutable wrappers to primitive values and Object.
<ul>
<li><strong>MutableByte</strong> - A mutable byte wrapper.</li>
<li><strong>MutableDouble</strong> - A mutable double wrapper.</li>
<li><strong>MutableFloat</strong> - A mutable float wrapper.</li>
<li><strong>MutableInt</strong> - A mutable int wrapper.</li>
<li><strong>MutableLong</strong> - A mutable long wrapper.</li>
<li><strong>MutableObject</strong> - A mutable Object wrapper.</li>
<li><strong>MutableShort</strong> - A mutable short wrapper.</li>
</ul></li>
<li><strong>Time package</strong> - A package for date/time related utilities.
<ul>
<li><strong>DateFormatUtils</strong> - Aids in formatting Dates.</li>
<li><strong>DateUtils</strong> - Aids in manipulating Dates.</li>
<li><strong>DurationFormatUtils</strong> - Duration formatting utilities and constants.</li>
<li><strong>FastDateFormat</strong> - Optimised version of SimpleDateFormat.</li>
<li><strong>StopWatch</strong> - Records durations, represented by milliseconds.</li>
</ul></li>
</ul>
<a name="Dependencies"></a>
<h3>2. DEPENDENCIES</h3>
<p>The <em>Lang</em> component is dependent upon the following external
components for development and use:</p>
<ul>
<li><a href="http://java.sun.com/j2se">Java Development Kit</a>
(Version 1.2 or later)</li>
<li><a href="http://www.junit.org">JUnit Testing Framework</a>
(Version 3.8.1 or later) - for unit tests only, not required
for deployment</li>
<li><a href="http://ant.apache.org">Apache Ant</a>
(Version 1.6 or later) - for building distributions</li>
</ul>
<a name="Release Info"></a>
<h3>3. RELEASE INFO</h3>
<p>Current Release:
<a href="http://www.apache.org/dist/jakarta/commons/lang/">Version 2.1</a>
</p>
<p>Planned Next Release:
Undetermined
</p>
<a name="Known Issues"></a>
<h3>4. KNOWN ISSUES</h3>
<p>
<ul>
</ul>
</p>
<a name="Action Items"></a>
<h3>5. ACTION ITEMS</h3>
<p>Want to help? Here's some "to do" items the team has identified as possibly being in scope for Lang.
Note that all are still under discussion, so please mail the list before actioning.</p>
<ul>
<li>DateRange/Duration class.</li>
<li>CloneUtils - utility class to enable cloning via various different mechanisms.</li>
<li>StringUtils.reverseSplit(String, String delim, int count). Should basically be a 'reverseArray(reverseDelimitedString(split(txt, delim, count)))'.</li>
<li>AStringBuffer - A StringBuffer implementation with additional methods from StringUtils.</li>
<li>O(n) - Document all algorithm-implementing methods with the order. Possibly with an O(n) on the end of each parameterm or with an @order tag.</li>
<li>Money and Currency. Maybe separate project.</li>
<li>Code examples - Document as many static methods as possible with example usage.</li>
<li>Faster StringTokeniser - Is Java's slow?</li>
<li>StringUtilsNPE - A StringUtils that doesn't like nulls.</li>
</ul>
<a name="Committers"></a>
<h3>6. COMMITTERS</h3>
<p>The following individuals are the primary developers and maintainers of this
component. Developers who plan to use <em>Lang</em> in their own
projects are encouraged to collaborate on the future development of this
component to ensure that it continues to meet a variety of needs.</p>
<ul>
<li><a href="mailto:bayard@apache.org">Henri Yandell</a></li>
<li><a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a></li>
<li><a href="mailto:scolebourne@joda.org">Stephen Colebourne</a></li>
<li><a href="mailto:stevencaswell@apache.org">Steven Caswell</a></li>
<li><a href="mailto:rdonkin@apache.org">Robert Burrell Donkin</a></li>
<li><a href="mailto:ggregory@seagullsw.com">Gary Gregory</a></li>
<li><a href="mailto:phil@steitz.com">Phil Steitz</a></li>
<li><a href="mailto:fredrik@apache.org">Fredrik Westermarck</a></li>
<!-- New committers, add your name here -->
</ul>
</body>
</html>