com.atlassian.gadgets.refimpl
Class GadgetStateFactoryImpl

java.lang.Object
  extended by com.atlassian.gadgets.refimpl.GadgetStateFactoryImpl
All Implemented Interfaces:
GadgetStateFactory

public class GadgetStateFactoryImpl
extends Object
implements GadgetStateFactory

A reference implementation of GadgetStateFactory. Internally, it creates GadgetState instances using a sequential ID, starting with 1000. The next available ID is stored in the global PluginSettings object. The retrieval and update of the ID is synchronized, so this class is safe to use concurrently from multiple threads. It is not, however, safe to use concurrently across multiple clustered application instances, as there is no way to ensure that the PluginSettings retrieval and update occurs atomically. Host applications that may be deployed in a clustered environment should be sure to use their own GadgetStateFactory implementation.

Other than the gadget ID and spec URI, all other gadget properties will be set to the default values determined by GadgetState.Builder.


Constructor Summary
GadgetStateFactoryImpl(com.atlassian.sal.api.pluginsettings.PluginSettingsFactory pluginSettingsFactory, com.atlassian.sal.api.transaction.TransactionTemplate txTemplate)
          Constructs a new GadgetStateFactoryImpl that uses the specified PluginSettingsFactory to store the next available gadget ID.
 
Method Summary
 GadgetState createGadgetState(URI gadgetSpecUri)
          Creates a new GadgetState instance from the specified spec URI, using the next available unique ID.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GadgetStateFactoryImpl

public GadgetStateFactoryImpl(com.atlassian.sal.api.pluginsettings.PluginSettingsFactory pluginSettingsFactory,
                              com.atlassian.sal.api.transaction.TransactionTemplate txTemplate)
Constructs a new GadgetStateFactoryImpl that uses the specified PluginSettingsFactory to store the next available gadget ID.

Parameters:
pluginSettingsFactory - the factory used to retrieve the global PluginSettings instance
txTemplate - the transaction provider for creating new gadget states
Method Detail

createGadgetState

public GadgetState createGadgetState(URI gadgetSpecUri)
Creates a new GadgetState instance from the specified spec URI, using the next available unique ID. The specified gadgetSpecUri is stored directly in the returned GadgetState object, and is not fetched or validated in any way.

Specified by:
createGadgetState in interface GadgetStateFactory
Parameters:
gadgetSpecUri - the URI that the gadget spec file for the new gadget can be retrieved from
Returns:
a new GadgetState instance constructed from the specified spec URI


Copyright © 2014 Atlassian. All Rights Reserved.