1. INTRODUCTION
The Lang Component contains a set of Java classes that provide
helper methods for standard Java classes, especially those found in the
java.lang package in the Sun JDK.
The following classes are included:
- StringUtils - Helper for java.lang.String.
- CharSetUtils - Methods for dealing with CharSets, which are sets of characters such as [a-z] and [abcdez].
- RandomStringUtils - Helper for creating randomised Strings.
- NumberUtils - Helper for java.lang.Number and its subclasses.
- NumberRange - A range of numbers with an upper and lower bound.
- ObjectUtils - Helper for java.lang.Object.
- SerializationUtils - Helper for serializing Objects.
- SystemUtils - Utility class defining the Java system properties.
- NestedException package - A sub-package for the creation of nested exceptions.
- Enum package - A sub-package for the creation of enumerated types.
- Builder package - A sub-package for the creation of equals, hashCode, compareTo and toString methods.
2. DEPENDENCIES
The Lang component is dependent upon the following external
components for development and use:
3. RELEASE INFO
Current Release:
Version 1.0.1
Planned Next Release:
A 1.1 will be released after a undefined period of development.
4. KNOWN ISSUES
- CharRange.UNSET - will have problems if we introduce reverse ranges that go down to \u0000.
- Null effects - the classes are not standardised in how they handle null.
5. ACTION ITEMS
Want to help? Here's some "to do" items the team has identified. Note that all are
still under discussion, so please mail the list before actioning.
- Reflection utilities - new sub-package to deal with reflection
- Operating system information - maybe part of SystemUtils, maybe another project
- MathUtils - possible addition of mathmatics helper. Could go in NumberUtils
- CalendarUtils - possible addition of a calendar utility class (from Serge Knystautas)
- CloneUtils - utility class to enable cloning via various different mechanisms. This code exists in [pattern] at present.
- StringUtils truncateNicely method - A substring with some extra power to choose where to cut off. It was in Avalon and was added separately to String Taglib from a code submission. This suggests it may have some commonality. [CODED]
- StringUtils parseBoolean method - This method is in OSCore's TextUtils and seems very reusable. It could go in a BooleanUtils if such a need was seen. [CODED]
- StringUtils uncapitaliseAllWords method - String Taglib has shown that this method is missing from StringUtils. [CODED]
- StringUtils unescape method - String Taglib has shown that this method is missing from StringUtils. It would take a String with "\n" in and convert it to the Java character. unescape and escape should be symmetric.
- StringUtils defaultStirng(Object) method - simliar behavior to defaultString(String), returns obj.toString() if obj != null, "" otherwise
- StringUtils defaultString(Object, String) method - similar behavior to defaultString(String, String), returns obj.toString() if obj != null, specified string otherwise
- ArrayUtils - opinion seems to be that this belongs with [lang] and not [collections]
- GUID and other Identifier generators - these may belong in [util], some code exists in [pattern] at the moment
- CharUtils - Utilities to work on a char[] in the same way as a String
- AStringBuffer - A StringBuffer implementation with additional methods from StringUtils
- 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.
6. COMMITTERS
The following individuals are the primary developers and maintainers of this
component. Developers who plan to use Lang 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.