Update of /cvsroot/wonder/ProjectWonder/Frameworks/ERExtensionsJava In directory usw-pr-cvs1:/tmp/cvs-serv18205 Modified Files: ERXDictionaryUtilities.java ERXInstanceOfConditional.java ERXRetainer.java ERXStatelessComponent.java Log Message: More JavaDoc Index: ERXDictionaryUtilities.java =================================================================== RCS file: /cvsroot/wonder/ProjectWonder/Frameworks/ERExtensionsJava/ERXDictionaryUtilities.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ERXDictionaryUtilities.java 2 Apr 2002 14:41:17 -0000 1.1 --- ERXDictionaryUtilities.java 1 May 2002 02:15:02 -0000 1.2 *************** *** 12,16 **** --- 12,27 ---- import java.lang.*; + /** + * Collection of {@link NSDictionary} utilities. + */ public class ERXDictionaryUtilities extends Object { + + /** + * Creates an immutable dictionary containing all of the keys and + * objects from two dictionaries. + * @param dict1 the first dictionary + * @param dict2 the second dictionary + * @return immutbale dictionary containing the union of the two dictionaries. + */ public static NSDictionary dictionaryWithDictionaryAndDictionary(NSDictionary dict1, NSDictionary dict2) { if(dict1 == null || dict1.allKeys().count() == 0) *************** *** 23,31 **** return new NSDictionary(result); } ! public static NSDictionary dictionaryFromPropertyList(String name, NSBundle bundle) { return (NSDictionary)NSPropertyListSerialization.propertyListFromString(ERXStringUtilities.stringFromResource(name, "plist", bundle)); } ! public static NSDictionary dictionaryWithObjectsAndKeys(Object[] objectsAndKeys) { NSMutableDictionary result = new NSMutableDictionary(); --- 34,55 ---- return new NSDictionary(result); } ! ! /** ! * Creates an NSDictionary from a resource associated with a given bundle ! * that is in property list format.<br/> ! * @param name name of the file or resource. ! * @param bundle NSBundle to which the resource belongs. ! * @return NSDictionary de-serialized from the property list. ! */ public static NSDictionary dictionaryFromPropertyList(String name, NSBundle bundle) { return (NSDictionary)NSPropertyListSerialization.propertyListFromString(ERXStringUtilities.stringFromResource(name, "plist", bundle)); } ! ! /** ! * Creates a dictionary from a list of alternating objects and keys ! * starting with an object. ! * @param objectsAndKeys alternating list of objects and keys ! * @return NSDictionary containing all of the object-key pairs. ! */ public static NSDictionary dictionaryWithObjectsAndKeys(Object[] objectsAndKeys) { NSMutableDictionary result = new NSMutableDictionary(); Index: ERXInstanceOfConditional.java =================================================================== RCS file: /cvsroot/wonder/ProjectWonder/Frameworks/ERExtensionsJava/ERXInstanceOfConditional.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ERXInstanceOfConditional.java 27 Apr 2002 21:45:42 -0000 1.2 --- ERXInstanceOfConditional.java 1 May 2002 02:15:02 -0000 1.3 *************** *** 14,34 **** import org.apache.log4j.Category; ! //////////////////////////////////////////////////////////////////////////////////////////////////////// ! // Basic conditional that given an object and a class name (fully qualified) will evaluate true if the ! // object is an instance of that class. ! //////////////////////////////////////////////////////////////////////////////////////////////////////// public class ERXInstanceOfConditional extends WOComponent { public ERXInstanceOfConditional(WOContext aContext) { super(aContext); } ! //////////////////////////////////////// log4j category ////////////////////////////////////////// public final static Category log = Category.getInstance(ERXInstanceOfConditional.class); ! public boolean isStateless() { return true; } ! public void reset() { _instanceOf = null; } ! private Boolean _instanceOf; public boolean instanceOf() { if (_instanceOf == null) { --- 14,57 ---- import org.apache.log4j.Category; ! /** ! * Conditional component that tests if an object is an instance of a given ! * class or interface ! * <br/> ! * Synopsis:<br/> ! * object=<i>anObject</i>;className=<i>aClassName2</i>;[negate=<i>aBoolean</i>;] ! * <br/> ! * Bindings:<br/> ! * <b>object</b> object to test ! * <b>className</b> class or interface name ! * <b>negate</b><br/> Inverts the sense of the conditional. ! * <br/> ! */ public class ERXInstanceOfConditional extends WOComponent { + /** Public constructor */ public ERXInstanceOfConditional(WOContext aContext) { super(aContext); } ! /** logging support */ public final static Category log = Category.getInstance(ERXInstanceOfConditional.class); ! ! /** component is stateless */ public boolean isStateless() { return true; } ! ! /** resets cached ivars */ ! public void reset() { ! super.reset(); ! _instanceOf = null; ! } ! /** cached value of comparison */ private Boolean _instanceOf; + + /** + * Tests if the bound object is an instance of the class. + * Note: If the class is not found a ClassNotFoundException + * will be thrown via an NSForwardException. + * @return the boolean result of the <code>isInstance</code> test. + */ public boolean instanceOf() { if (_instanceOf == null) { Index: ERXRetainer.java =================================================================== RCS file: /cvsroot/wonder/ProjectWonder/Frameworks/ERExtensionsJava/ERXRetainer.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ERXRetainer.java 5 Feb 2002 20:11:30 -0000 1.1.1.1 --- ERXRetainer.java 1 May 2002 02:15:02 -0000 1.2 *************** *** 8,23 **** import com.webobjects.foundation.*; - import org.apache.log4j.Category; ! // This is used to to retain pure Java objects on the objC side of things so that they can recieve notifications. public class ERXRetainer { ! /////////////////////////////////// log4j category /////////////////////////////////////////////// ! public final static Category cat = Category.getInstance(ERXRetainer.class); ! private static NSMutableSet _retainerSet = new NSMutableSet(); ! ! public static void retain(Object object) { _retainerSet.addObject(object); } ! public static void release(Object object) { _retainerSet.removeObject(object); } ! public static boolean isObjectRetained(Object object) { return _retainerSet.containsObject(object); } } --- 8,46 ---- import com.webobjects.foundation.*; ! /** ! * Used as a generic way to retain a reference to an object so that it will ! * not be collected by the garbage collector. This class is most often used ! * to retain objects used to observe {link @NSNotification}s.<br/> ! * <br/> ! * Note that the current implementation does not implement reference counting ! * so calling retain multiple times on the same object does not have any effect ! * after the first call. ! */ public class ERXRetainer { ! /** set used to retain references to objects */ private static NSMutableSet _retainerSet = new NSMutableSet(); ! /** ! * Retains a reference to the object. ! * @param object object to be retained. ! */ ! public static void retain(Object object) { ! _retainerSet.addObject(object); ! } ! /** ! * Releases the reference to the object. ! * @param object object to be released. ! */ ! public static void release(Object object) { ! _retainerSet.removeObject(object); ! } ! /** ! * Tests if the given object is being retained by the ERXRetainer class. ! * @param object object to be tested. ! * @return returns if the given object is currently retained. ! */ ! public static boolean isObjectRetained(Object object) { ! return _retainerSet.containsObject(object); ! } } Index: ERXStatelessComponent.java =================================================================== RCS file: /cvsroot/wonder/ProjectWonder/Frameworks/ERExtensionsJava/ERXStatelessComponent.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ERXStatelessComponent.java 5 Feb 2002 20:11:31 -0000 1.1.1.1 --- ERXStatelessComponent.java 1 May 2002 02:15:02 -0000 1.2 *************** *** 10,25 **** import com.webobjects.appserver.*; ! public class ERXStatelessComponent extends WOComponent { ! ! public ERXStatelessComponent(WOContext aContext) { ! super(aContext); ! } public boolean isStateless() { return true; } public boolean synchronizesVariablesWithBindings() { return false; } public boolean valueForBooleanBinding(String binding) { return valueForBooleanBinding(binding, false); } public boolean valueForBooleanBinding(String binding, boolean defaultValue) { if (hasBinding(binding)) { --- 10,41 ---- import com.webobjects.appserver.*; ! /** ! * Abstract stateless component used as the super class for a number ! * of components within the ER frameworks. Adds a number of nice binding resolution ! * methods. ! */ ! public abstract class ERXStatelessComponent extends WOComponent { + /** component is stateless */ public boolean isStateless() { return true; } + /** component does not synchronize variables */ public boolean synchronizesVariablesWithBindings() { return false; } + /** + * Resolves a given binding as a boolean value. Defaults to + * false. + * @param binding binding to be resolved as a boolean value. + * @return result of evaluating binding as a boolean. + */ public boolean valueForBooleanBinding(String binding) { return valueForBooleanBinding(binding, false); } + /** + * Resolves a given binding as a boolean value. + * @param binding binding to be resolved as a boolean value. + * @param defaultValue default boolean value to be used if the + * binding is not bound. + * @return result of evaluating binding as a boolean. + */ public boolean valueForBooleanBinding(String binding, boolean defaultValue) { if (hasBinding(binding)) { *************** *** 30,33 **** --- 46,58 ---- } } + + /** + * Resolves a given binding as a boolean value with the option of + * specifing a boolean operator as the default value. + * @param binding name of the component binding. + * @param defaultValue boolean operator to be evaluated if the + * binding is not present. + * @return result of evaluating binding as a boolean. + */ public boolean valueForBooleanBinding(String binding, ERXUtilities.BooleanOperation defaultValue) { if (hasBinding(binding)) { *************** *** 38,45 **** } } ! public Object valueForObjectBinding(String binding) { return valueForObjectBinding(binding, null); } public Object valueForObjectBinding(String binding, Object defaultValue) { Object result = null; --- 63,93 ---- } } ! ! /** ! * Resolves a given binding as an object in the normal fashion of ! * calling <code>valueForBinding</code>. This has the one advantage ! * of being able to resolve the resulting object as ! * a {link ERXUtilities$Operation} if it is an Operation and ! * then returning the result as the evaluation of that operation. ! * @param binding name of the component binding. ! * @return the object for the given binding and in the case that ! * it is an instance of an Operation the value of that operation. ! */ public Object valueForObjectBinding(String binding) { return valueForObjectBinding(binding, null); } + + /** + * Resolves a given binding as an object in the normal fashion of + * calling <code>valueForBinding</code>. This has the one advantage + * of being able to resolve the resulting object as + * a {link ERXUtilities$Operation} if it is an Operation and + * then returning the result as the evaluation of that operation. + * @param binding name of the component binding. + * @param defaultValue value to be used if <code>valueForBinding</code> + * returns null. + * @return the object for the given binding and in the case that + * it is an instance of an Operation the value of that operation. + */ public Object valueForObjectBinding(String binding, Object defaultValue) { Object result = null; |