persistence

package
v3.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 26, 2019 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Package persistence contains interfaces for various design patterns that work with data. Contains various persistence implementations (InMemory and File –persistences). These are "abstract" persistences, which only connect to data sources and do not implement the operations and methods for working the data. The classes that extend these persistences must implement this logic on their own. Identifiable Persistences work with Identifiable objects, which have primary keys. A few standard operations are defined by default for these objects: reading arrays and data pages; searching for an object by its id; and creating, updating, and deleting records of objects.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloneObject

func CloneObject(item interface{}) interface{}

CloneObject is clones object function Parameters:

  • item interface{} an object to clone

Return interface{} copy of input item

func CompareValues

func CompareValues(value1 interface{}, value2 interface{}) bool

CompareValues are ompares two values Parameters:

  • value1 interface{} an object one for compare
  • value2 interface{} an object two for compare

Return bool true if value1 equal value2 and false otherwise

func GenerateObjectId

func GenerateObjectId(item *interface{})

GenerateObjectId is generates a new id value when it's empty Parameters:

  • item *interface{} an pointer on object to set id property

Results saved in input object

func GetObjectId

func GetObjectId(item interface{}) interface{}

Get object Id value Parameters:

  • item interface{} an object to read property from.

Returns interface{} the property value or nil if property doesn't exist or introspection failed.

func GetProperty

func GetProperty(obj interface{}, name string) interface{}

Gets value of object property specified by its name. Parameters:

  • obj interface{} an object to read property from.
  • name string a name of the property to get.

Returns interface{} the property value or null if property doesn't exist or introspection failed.

func SetObjectId

func SetObjectId(item *interface{}, id interface{})

SetObjectId is set object Id value Parameters:

  • item *interface{} an pointer on object to set id property
  • id interface{} id value for set

Results saved in input object

func SetProperty

func SetProperty(obj interface{}, name string, value interface{})

Sets value of object property specified by its name. If the property does not exist or introspection fails this method doesn't do anything and doesn't any throw errors. Parameters:

  • obj interface{} an object to write property to. name string a name of the property to set.
  • value interface{} a new value for the property to set.

Types

type FilePersistence

type FilePersistence struct {
	MemoryPersistence
	Persister *JsonFilePersister
}

Abstract persistence component that stores data in flat files and caches them in memory.

FilePersistence is the most basic persistence component that is only able to store data items of any type. Specific CRUD operations over the data items must be implemented in child structs by accessing fp._items property and calling Save method.

see MemoryPersistence see JsonFilePersister

Configuration parameters

- path - path to the file where data is stored

References

- *:logger:*:*:1.0 (optional) ILogger components to pass log messages

Example

type MyJsonFilePersistence struct {
	FilePersistence
}
    func NewMyJsonFilePersistence(path string) *NewMyJsonFilePersistence {
		prototype := reflcet.TypeOf(MyData{})
		return &NewFilePersistence(prototype, NewJsonPersister(prototype, path))
    }

	func (c * FilePersistence) GetByName(correlationId string, name string) (item MyData, err error){
		for _,v := range c._items {
			if v.Name == name {
				item = v.(MyData)
				break
			}
		}
        return item, nil
    }

    func (c *FilePersistence) Set(correlatonId string, item MyData) error {
		for i,v := range c._items {
			if v.name == item.name {
				c._items = append(c._items[:i], c._items[i+1:])
			}
		}
		c._items = append(c._items, item)
        retrun c.save(correlationId)
    }
}

extends MemoryPersistence implements IConfigurable

func NewFilePersistence

func NewFilePersistence(prototype reflect.Type, persister *JsonFilePersister) *FilePersistence

Creates a new instance of the persistence.

  • persister (optional) a persister component that loads and saves data from/to flat file.

Return *FilePersistence Pointer on new FilePersistence instance

func (*FilePersistence) Configure

func (c *FilePersistence) Configure(conf config.ConfigParams)

Configures component by passing configuration parameters.

  • config configuration parameters to be set.

type IFilteredPageReader

type IFilteredPageReader interface {

	// Gets a page of data items using filter
	// Parameters
	//   	- correlation_id
	//		transaction id to trace execution through call chain.
	//   	- filter  data.FilterParams
	//		filter parameters
	//   	- paging data.PagingParams
	//      paging parameters
	//   	- sort data.SortParams
	//      sort parameters
	// Retrun  interface{}, error
	// list of items or error.
	GetPageByFilter(correlation_id string, filter data.FilterParams, paging data.PagingParams, sort data.SortParams) (page interface{}, err error)
}

IFilteredPageReader is interface for data processing components that can retrieve a page of data items by a filter.

type IFilteredReader

type IFilteredReader interface {

	// Gets a list of data items using filter
	// Parameters:
	// 			- correlation_id string
	//		    transaction id to trace execution through call chain.
	// 			- filter data.FilterParams
	//          filter parameters
	// 			- sort  data.SortParams
	//			sort parameters
	// Returns []interfcace{}, error
	// receives list of items or error.
	GetListByFilter(correlation_id string, filter data.FilterParams, sort data.SortParams) (items []interface{}, err error)
}

Interface for data processing components that can retrieve a list of data items by filter.

type IGetter

type IGetter interface {

	//  Gets a data items by its unique id.
	//  Parameters:
	//  - correlation_id    (optional) transaction id to trace execution through call chain.
	//  - id                an id of item to be retrieved.
	//  Return interface{}, error
	// item or error
	GetOneById(correlation_id string, id interface{}) (item interface{}, err error)
}
Interface for data processing components that can get data items.

<T extends IIdentifiable<K>, K>

type ILoader

type ILoader interface {

	// Loads data items.
	// Parameters:
	// 		- correlation_id string
	//   	transaction id to trace execution through call chain.
	// Retruns []interface{}, error
	// a list of data items or error.
	Load(correlation_id string) (items []interface{}, err error)
}

Interface for data processing components that load data items.

type IPartialUpdater

type IPartialUpdater interface {

	// Updates only few selected fields in a data item.
	// Parameters:
	//		- correlation_id string
	//		transaction id to trace execution through call chain.
	//		- id interface{}
	//      an id of data item to be updated.
	//		- data data.AnyValueMap
	//      a map with fields to be updated.
	// Returns interface{}, error
	// updated item or error.
	UpdatePartially(correlation_id string, id interface{}, data data.AnyValueMap) (item interface{}, err error)
}
Interface for data processing components to update data items partially.

<T, K>

type IQuerablePageReader

type IQuerablePageReader interface {

	//  Gets a page of data items using a query string.
	//  Parameters:
	//  		- correlation_id string
	//			transaction id to trace execution through call chain.
	//  		- query string
	//			 a query string
	//  		- paging data.PagingParams
	//			 paging parameters
	//   		- sort  data.SortParams
	//			 sort parameters
	// Returns interface{}, error
	// receives list of items or error.
	GetPageByQuery(correlation_id string, query string, paging data.PagingParams, sort data.SortParams) (page interface{}, err error)
}

Interface for data processing components that can query a page of data items.

type IQuerableReader

type IQuerableReader interface {

	//  Gets a list of data items using a query string.
	//  Prameters:
	//  		- correlation_id  string
	//			transaction id to trace execution through call chain.
	//  		- query string
	//			a query string
	//  		- sort data.SortParams
	//          sort parameters
	// Returns []interface{}, error
	// list of items or error.
	GetListByQuery(correlation_id string, query string, sort data.SortParams) (items []interface{}, err error)
}

Interface for data processing components that can query a list of data items.

type ISaver

type ISaver interface {

	// Saves given data items.
	// Parameters:
	//		- correlation_id string
	//    	transaction id to trace execution through call chain.
	// 		- items []interface{}
	//      a list of items to save.
	// Retuirns error or nil for success.
	Save(correlation_id string, items []interface{}) error
}

Interface for data processing components that save data items.

type ISetter

type ISetter interface {

	// Sets a data item. If the data item exists it updates it,
	// otherwise it create a new data item.
	// Parameters:
	// 		- correlation_id string
	//	    transaction id to trace execution through call chain.
	// 		- item  interface{}
	//      a item to be set.
	// Retruns interface{}, error
	// updated item or error.
	Set(correlation_id string, item interface{}) (value interface{}, err error)
}

Interface for data processing components that can set (create or update) data items.

type IWriter

type IWriter interface {

	// Creates a data item.
	// Parameters:
	//		- correlation_id string
	//    	transaction id to trace execution through call chain.
	// 		- item interface{}
	//      an item to be created.
	// Returns  interface{}, error
	// created item or error.
	Create(correlation_id string, item interface{}) (value interface{}, err error)

	// Updates a data item.
	// Parameters:
	// 		- correlation_id  string
	//	    transaction id to trace execution through call chain.
	// 		- item interface{}
	//      an item to be updated.
	// Returns: interface{}, error
	// updated item or error.
	Update(correlation_id string, item interface{}) (value interface{}, err error)

	//  Deleted a data item by it's unique id.
	//	Parameters:
	//  		- correlation_id string
	//		    transaction id to trace execution through call chain.
	//  		- id interface{}
	//			 an id of the item to be deleted
	//  Returns: interface{}, error
	//  deleted item or error.
	DeleteById(correlation_id string, id interface{}) (value interface{}, err error)
}

Interface for data processing components that can create, update and delete data items.

type IdentifiableFilePersistence

type IdentifiableFilePersistence struct {
	IdentifiableMemoryPersistence
	Persister *JsonFilePersister
}

Abstract persistence component that stores data in flat files and implements a number of CRUD operations over data items with unique ids. The data items must implement

IIdentifiable interface

In basic scenarios child classes shall only override GetPageByFilter, GetListByFilter or DeleteByFilter operations with specific filter function. All other operations can be used out of the box.

In complex scenarios child classes can implement additional operations by accessing cached items via IdentifiableFilePersistence._items property and calling Save method on updates.

See JsonFilePersister See MemoryPersistence

Configuration parameters

- path: path to the file where data is stored - options:

  • max_page_size: Maximum number of items returned in a single page (default: 100)

    References

- *:logger:*:*:1.0 (optional) ILogger components to pass log messages

Examples
type MyFilePersistence  struct {
	IdentifiableFilePersistence
}
    func NewMyFilePersistence(path string)(mfp *MyFilePersistence) {
		mfp = MyFilePersistence{}
		prototype := reflect.TypeOf(MyData{})
		mfp.IdentifiableFilePersistence = *NewJsonPersister(prototype,path)
		return mfp
    }

    func composeFilter(filter cdata.FilterParams)(func (item interface{})bool) {
		if &filter == nil {
			filter = NewFilterParams()
		}
        name := filter.GetAsNullableString("name");
        return func (item interface) bool {
            dummy, ok := item.(MyData)
			if *name != "" && ok && dummy.Name != *name {
				return false
			}
            return true
        }
    }

    func (c *MyFilePersistence ) GetPageByFilter(correlationId string, filter FilterParams, paging PagingParams)(page cdata.MyDataPage, err error){
		tempPage, err := c.GetPageByFilter(correlationId, composeFilter(filter), paging, nil, nil)
		dataLen := int64(len(tempPage.Data))
		data := make([]MyData, dataLen)
		for i, v := range tempPage.Data {
			data[i] = v.(MyData)
		}
		page = *NewMyDataPage(&dataLen, data)
		return page, err
    }

    persistence := NewMyFilePersistence("./data/data.json")

	_, errc := persistence.Create("123", { Id: "1", Name: "ABC" })
	if (errc != nil) {
		panic()
	}
    page, errg := persistence.GetPageByFilter("123", NewFilterParamsFromTuples("Name", "ABC"), nil)
    if errg != nil {
		panic("Error")
	}
    fmt.Println(page.Data)         // Result: { Id: "1", Name: "ABC" )
    persistence.DeleteById("123", "1")

func NewIdentifiableFilePersistence

func NewIdentifiableFilePersistence(prototype reflect.Type, persister *JsonFilePersister) *IdentifiableFilePersistence

Creates a new instance of the persistence. Parameters:

  • prototype reflect.Type type of contained data
  • persister (optional) a persister component that loads and saves data from/to flat file.

Return *IdentifiableFilePersistence pointer on new IdentifiableFilePersistence

func (*IdentifiableFilePersistence) Configure

func (c *IdentifiableFilePersistence) Configure(config config.ConfigParams)

Configures component by passing configuration parameters. Parameters:

  • config configuration parameters to be set.

type IdentifiableMemoryPersistence

type IdentifiableMemoryPersistence struct {
	MemoryPersistence
	MaxPageSize int
}

Abstract persistence component that stores data in memory and implements a number of CRUD operations over data items with unique ids. The data items must have Id field.

In basic scenarios child structs shall only override GetPageByFilter, GetListByFilter or DeleteByFilter operations with specific filter function. All other operations can be used out of the box.

In complex scenarios child structes can implement additional operations by accessing cached items via c.Items property and calling Save method on updates.

See MemoryPersistence

Configuration parameters

- options:

  • max_page_size: Maximum number of items returned in a single page (default: 100)

    References

- *:logger:*:*:1.0 (optional) ILogger components to pass log messages

Examples
type MyMemoryPersistence struct{
	IdentifiableMemoryPersistence
}
    func composeFilter(filter: FilterParams) (func (item interface{}) bool ) {
        if &filter == nil {
			filter = NewFilterParams()
		}
        name := filter.getAsNullableString("Name");
        return func(item interface{}) bool {
			dummy, ok := item.(MyData)
            if (*name != "" && ok && item.Name != *name)
                return false;
            return true;
        };
    }

    func (mmp * MyMemoryPersistence) GetPageByFilter(correlationId string, filter FilterParams, paging PagingParams) (page DataPage, err error) {
        tempPage, err := c.GetPageByFilter(correlationId, composeFilter(filter), paging, nil, nil)
		dataLen := int64(len(tempPage.Data))
		data := make([]MyData, dataLen)
		for i, v := range tempPage.Data {
			data[i] = v.(MyData)
		}
		page = *NewMyDataPage(&dataLen, data)
		return page, err}

    persistence := NewMyMemoryPersistence();

	item, err := persistence.Create("123", { Id: "1", Name: "ABC" })
	...
	page, err := persistence.GetPageByFilter("123", NewFilterParamsFromTuples("Name", "ABC"), nil)
	if err != nil {
		panic("Error can't get data")
	}
    fmt.Prnitln(page.data)         // Result: { Id: "1", Name: "ABC" }
	item, err := persistence.DeleteById("123", "1")
	...

extends MemoryPersistence implements IConfigurable, IWriter, IGetter, ISetter

func NewIdentifiableMemoryPersistence

func NewIdentifiableMemoryPersistence(prototype reflect.Type) (c *IdentifiableMemoryPersistence)

Creates a new empty instance of the persistence. Parameters:

  • prototype reflect.Type data type of contains items

Return * IdentifiableMemoryPersistence created empty IdentifiableMemoryPersistence

func (*IdentifiableMemoryPersistence) Configure

func (c *IdentifiableMemoryPersistence) Configure(config config.ConfigParams)

Configures component by passing configuration parameters. Parameters:

  • config config.ConfigParams configuration parameters to be set.

func (*IdentifiableMemoryPersistence) Create

func (c *IdentifiableMemoryPersistence) Create(correlationId string, item interface{}) (result interface{}, err error)

Creates a data item. Returns:

  • correlation_id string (optional) transaction id to trace execution through call chain.
  • item string an item to be created.

Returns: interface{}, error created item or error.

func (*IdentifiableMemoryPersistence) DeleteByFilter

func (c *IdentifiableMemoryPersistence) DeleteByFilter(correlationId string, filterFunc func(interface{}) bool) (err error)

Deletes data items that match to a given filter. this method shall be called by a func (c* IdentifiableMemoryPersistence) DeleteByFilter method from child struct that receives FilterParams and converts them into a filter function. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain.
  • filter filter func(interface{}) bool (optional) a filter function to filter items.

Retruns: error error or nil for success.

func (*IdentifiableMemoryPersistence) DeleteById

func (c *IdentifiableMemoryPersistence) DeleteById(correlationId string, id interface{}) (result interface{}, err error)

Deleted a data item by it's unique id. Parameters:

  • correlation_id string (optional) transaction id to trace execution through call chain.
  • id interface{} an id of the item to be deleted

Retruns: interface{}, error deleted item or error.

func (*IdentifiableMemoryPersistence) DeleteByIds

func (c *IdentifiableMemoryPersistence) DeleteByIds(correlationId string, ids []interface{}) (err error)

Deletes multiple data items by their unique ids. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain.
  • ids []interface{} ids of data items to be deleted.

Returns: error error or null for success.

func (*IdentifiableMemoryPersistence) GetListByFilter

func (c *IdentifiableMemoryPersistence) GetListByFilter(correlationId string, filterFunc func(interface{}) bool,
	sortFunc func(a, b interface{}) bool, selectFunc func(in interface{}) (out interface{})) (results []interface{}, err error)

Gets a list of data items retrieved by a given filter and sorted according to sort parameters. This method shall be called by a func (c * IdentifiableMemoryPersistence) GetListByFilter method from child struct that receives FilterParams and converts them into a filter function. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain.
  • filter func(interface{}) bool (optional) a filter function to filter items
  • sortFunc func(a, b interface{}) bool (optional) sorting compare function func Less (a, b interface{}) bool see sort.Interface Less function
  • selectFunc func(in interface{}) (out interface{}) (optional) projection parameters

Returns []interface{}, error array of items and error

func (*IdentifiableMemoryPersistence) GetListByIds

func (c *IdentifiableMemoryPersistence) GetListByIds(correlationId string, ids []interface{}) (result []interface{}, err error)

Gets a list of data items retrieved by given unique ids. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain.
  • ids []interface{} ids of data items to be retrieved

Returns []interface{}, error data list or error.

func (*IdentifiableMemoryPersistence) GetOneById

func (c *IdentifiableMemoryPersistence) GetOneById(correlationId string, id interface{}) (result interface{}, err error)

Gets a data item by its unique id. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain.
  • id interface{} an id of data item to be retrieved.

Returns: interface{}, error data item or error.

func (*IdentifiableMemoryPersistence) GetOneRandom

func (c *IdentifiableMemoryPersistence) GetOneRandom(correlationId string, filterFunc func(interface{}) bool) (result interface{}, err error)

Gets a random item from items that match to a given filter. This method shall be called by a func (c* IdentifiableMemoryPersistence) GetOneRandom method from child type that receives FilterParams and converts them into a filter function. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain.
  • filter func(interface{}) bool (optional) a filter function to filter items.

Returns: interface{}, error random item or error.

func (*IdentifiableMemoryPersistence) GetPageByFilter

func (c *IdentifiableMemoryPersistence) GetPageByFilter(correlationId string, filterFunc func(interface{}) bool,
	paging cdata.PagingParams, sortFunc func(a, b interface{}) bool, selectFunc func(in interface{}) (out interface{})) (page cdata.DataPage, err error)

Gets a page of data items retrieved by a given filter and sorted according to sort parameters. cmethod shall be called by a func (imp* IdentifiableMemoryPersistence) getPageByFilter method from child struct that receives FilterParams and converts them into a filter function. Parameters:

  • correlationId string transaction id to trace execution through call chain.
  • filter func(interface{}) bool (optional) a filter function to filter items
  • paging cdata.PagingParams (optional) paging parameters
  • sortFunc func(a, b interface{}) bool (optional) sorting compare function func Less (a, b interface{}) bool see sort.Interface Less function
  • selectFunc func(in interface{}) (out interface{}) (optional) projection parameters

Return cdata.DataPage, error data page or error.

func (*IdentifiableMemoryPersistence) Set

func (c *IdentifiableMemoryPersistence) Set(correlationId string, item interface{}) (result interface{}, err error)

Sets a data item. If the data item exists it updates it, otherwise it create a new data item. Parameters:

  • correlation_id string (optional) transaction id to trace execution through call chain.
  • item interface{} a item to be set.

Returns: interface{}, error updated item or error.

func (*IdentifiableMemoryPersistence) Update

func (c *IdentifiableMemoryPersistence) Update(correlationId string, item interface{}) (result interface{}, err error)

Updates a data item. Parameters:

  • correlation_id string (optional) transaction id to trace execution through call chain.
  • item interface{} an item to be updated.

Returns: interface{}, error updated item or error.

func (*IdentifiableMemoryPersistence) UpdatePartially

func (c *IdentifiableMemoryPersistence) UpdatePartially(correlationId string, id interface{}, data cdata.AnyValueMap) (result interface{}, err error)

Updates only few selectFuncected fields in a data item. Parameters:

  • correlation_id string (optional) transaction id to trace execution through call chain.
  • id interface{} an id of data item to be updated.
  • data cdata.AnyValueMap a map with fields to be updated.

Returns: interface{}, error updated item or error.

type JsonFilePersister

type JsonFilePersister struct {
	Prototype reflect.Type
	// contains filtered or unexported fields
}

Persistence component that loads and saves data from/to flat file.

It is used by FilePersistence, but can be useful on its own.

Configuration parameters

- path: path to the file where data is stored

 Example

    persister := NewJsonFilePersister(reflect.TypeOf(MyData{}), "./data/data.json");

	err_sav := persister.Save("123", ["A", "B", "C"])
	if err_sav == nil {
		items, err_lod := persister.Load("123")
		if err_lod == nil {
			fmt.Println(items);// Result: ["A", "B", "C"]
		}

implements ILoader, ISaver, IConfigurable

func NewJsonFilePersister

func NewJsonFilePersister(prototype reflect.Type, path string) *JsonFilePersister

Creates a new instance of the persistence. Parameters:

  • path string (optional) a path to the file where data is stored.

func (*JsonFilePersister) Configure

func (c *JsonFilePersister) Configure(config config.ConfigParams)

Configures component by passing configuration parameters. Parameters:

  • config config.ConfigParams parameters to be set.

func (*JsonFilePersister) Load

func (c *JsonFilePersister) Load(correlation_id string) (data []interface{}, err error)

Loads data items from external JSON file. Parameters:

  • correlation_id string transaction id to trace execution through call chain.

Returns []interface{}, error loaded items or error.

func (*JsonFilePersister) Path

func (c *JsonFilePersister) Path() string

Gets the file path where data is stored. Returns the file path where data is stored.

func (*JsonFilePersister) Save

func (c *JsonFilePersister) Save(correlationId string, items []interface{}) error

Saves given data items to external JSON file. Parameters:

  • correlation_id string transaction id to trace execution through call chain.
  • items []interface[] list of data items to save Retruns error error or nil for success.

func (*JsonFilePersister) SetPath

func (c *JsonFilePersister) SetPath(value string)

Sets the file path where data is stored. Parameters:

  • value string the file path where data is stored.

type MemoryPersistence

type MemoryPersistence struct {
	Logger *log.CompositeLogger
	Items  []interface{}
	Loader ILoader
	Saver  ISaver

	Prototype reflect.Type
	Lock      sync.RWMutex
	// contains filtered or unexported fields
}

Abstract persistence component that stores data in memory.

This is the most basic persistence component that is only able to store data items of any type. Specific CRUD operations over the data items must be implemented in child struct by accessing Items property and calling Save method.

The component supports loading and saving items from another data source. That allows to use it as a base struct for file and other types of persistence components that cache all data in memory.

References

- *:logger:*:*:1.0 ILogger components to pass log messages

Example

type MyMemoryPersistence struct {
    MemoryPersistence

}
 func (c * MyMemoryPersistence) GetByName(correlationId string, name string)(item interface{}, err error) {
    for _, v := range c.Items {
        if v.name == name {
            item = v
            break
        }
    }
    return item, nil
});

func (c * MyMemoryPersistence) Set(correlatonId: string, item: MyData, callback: (err) => void): void {
    c.Items = append(c.Items, item);
    c.Save(correlationId);
}

persistence := NewMyMemoryPersistence();
err := persistence.Set("123", MyData{ name: "ABC" })
item, err := persistence.GetByName("123", "ABC")
fmt.Println(item)   // Result: { name: "ABC" }

implements IReferenceable, IOpenable, ICleanable

func NewMemoryPersistence

func NewMemoryPersistence(prototype reflect.Type) *MemoryPersistence

Creates a new instance of the MemoryPersistence Parameters:

  • prototype reflect.Type type of contained data

Return *MemoryPersistence a MemoryPersistence

func (*MemoryPersistence) Clear

func (c *MemoryPersistence) Clear(correlationId string) error

Clears component state. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain. Returns error or null no errors occured.

func (*MemoryPersistence) Close

func (c *MemoryPersistence) Close(correlationId string) error

Closes component and frees used resources. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain.

Retruns: error or nil if no errors occured.

func (*MemoryPersistence) IsOpen

func (c *MemoryPersistence) IsOpen() bool

Checks if the component is opened. Returns true if the component has been opened and false otherwise.

func (*MemoryPersistence) Open

func (c *MemoryPersistence) Open(correlationId string) error

Opens the component. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain.

Returns error or null no errors occured.

func (*MemoryPersistence) Save

func (c *MemoryPersistence) Save(correlationId string) error

Saves items to external data source using configured saver component. Parameters:

  • correlationId string (optional) transaction id to trace execution through call chain.

Return error or null for success.

func (*MemoryPersistence) SetReferences

func (c *MemoryPersistence) SetReferences(references refer.IReferences)
 Sets references to dependent components.
 Parameters:
		- references refer.IReferences
		references to locate the component dependencies.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL