SequentialIdGenerator.js
1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
* @author Don Griffin
*
* This class is a sequential id generator. A simple use of this class would be like so:
*
* Ext.define('MyApp.data.MyModel', {
* extend: 'Ext.data.Model',
* idgen: 'sequential'
* });
* // assign id's of 1, 2, 3, etc.
*
* An example of a configured generator would be:
*
* Ext.define('MyApp.data.MyModel', {
* extend: 'Ext.data.Model',
* idgen: {
* type: 'sequential',
* prefix: 'ID_',
* seed: 1000
* }
* });
* // assign id's of ID_1000, ID_1001, ID_1002, etc.
*
*/
Ext.define('Ext.data.SequentialIdGenerator', {
extend: 'Ext.data.IdGenerator',
alias: 'idgen.sequential',
constructor: function() {
var me = this;
me.callParent(arguments);
me.parts = [ me.prefix, ''];
},
/**
* @cfg {String} prefix
* The string to place in front of the sequential number for each generated id. The
* default is blank.
*/
prefix: '',
/**
* @cfg {Number} seed
* The number at which to start generating sequential id's. The default is 1.
*/
seed: 1,
/**
* Generates and returns the next id.
* @return {String} The next id.
*/
generate: function () {
var me = this,
parts = me.parts;
parts[1] = me.seed++;
return parts.join('');
}
});