[Japi-cvs] SF.net SVN: japi: [588] libs/swing-action/trunk/src/net/sf/japi/swing/ ActionBuilderFact
Status: Beta
Brought to you by:
christianhujer
From: <chr...@us...> - 2007-08-23 08:25:51
|
Revision: 588 http://japi.svn.sourceforge.net/japi/?rev=588&view=rev Author: christianhujer Date: 2007-08-23 01:25:48 -0700 (Thu, 23 Aug 2007) Log Message: ----------- Added putActionBuilder() for tests. Fixed bug in getInstance(): ActionBuilderFactory should be a Singleton. Modified Paths: -------------- libs/swing-action/trunk/src/net/sf/japi/swing/ActionBuilderFactory.java Modified: libs/swing-action/trunk/src/net/sf/japi/swing/ActionBuilderFactory.java =================================================================== --- libs/swing-action/trunk/src/net/sf/japi/swing/ActionBuilderFactory.java 2007-08-20 22:59:24 UTC (rev 587) +++ libs/swing-action/trunk/src/net/sf/japi/swing/ActionBuilderFactory.java 2007-08-23 08:25:48 UTC (rev 588) @@ -23,20 +23,24 @@ import java.util.ResourceBundle; import java.util.WeakHashMap; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** An ActionBuilderFactory provides implementations of {@link ActionBuilder}. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class ActionBuilderFactory { +public abstract class ActionBuilderFactory { /** The ActionBuilders. */ - @NotNull public final Map<String, ActionBuilder> actionBuilders = new WeakHashMap<String, ActionBuilder>(); + @NotNull private final Map<String, ActionBuilder> actionBuilders = new WeakHashMap<String, ActionBuilder>(); + /** The ActionBuilderFactory singleton instance. */ + private static final ActionBuilderFactory INSTANCE = new ActionBuilderFactory() {}; + /** Create an ActionBuilderFactory. * @return An ActionBuilderFactory. */ public static ActionBuilderFactory getInstance() { - return new ActionBuilderFactory(); + return INSTANCE; } /** Get an ActionBuilder. @@ -49,7 +53,7 @@ * @param baseName Name of ActionBuilder (which even may be <code>null</code> if you are too lazy to invent a key) * @return ActionBuilder for given key. The builder is created in case it didn't already exist. */ - @NotNull public ActionBuilder getActionBuilder(final String baseName) { + @NotNull public ActionBuilder getActionBuilder(@Nullable final String baseName) { ActionBuilder builder = actionBuilders.get(baseName); if (builder == null) { builder = new DefaultActionBuilder(baseName); @@ -58,4 +62,14 @@ return builder; } + /** Stores an ActionBuilder. + * In regular programs, an invocation of this operation should not be needed. + * This operation is designed for tests that want to provide non-default ActionBuilders as Dummies, Stubs or Mocks. + * @param baseName Basename to store an ActionBuilder for. + * @param actionBuilder ActionBuilder to store. + */ + public void putActionBuilder(@Nullable final String baseName, @NotNull final ActionBuilder actionBuilder) { + actionBuilders.put(baseName, actionBuilder); + } + } // class ActionBuilderFactory This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |