Enum Class
Base class for all Breeze enumerations, such as EntityState, DataType, FetchStrategy, MergeStrategy etc. A Breeze Enum is a namespaced set of constant values. Each Enum consists of a group of related constants, called 'symbols'. Unlike enums in some other environments, each 'symbol' can have both methods and properties. See the example below:
// Example of creating a new Enum
var prototype = {
nextDay: function () {
var nextIndex = (this.dayIndex+1) % 7;
return DayOfWeek.getSymbols()[nextIndex];
}
};
var DayOfWeek = new Enum("DayOfWeek", prototype);
DayOfWeek.Monday = DayOfWeek.addSymbol( { dayIndex: 0 });
DayOfWeek.Tuesday = DayOfWeek.addSymbol( { dayIndex: 1 });
DayOfWeek.Wednesday = DayOfWeek.addSymbol( { dayIndex: 2 });
DayOfWeek.Thursday = DayOfWeek.addSymbol( { dayIndex: 3 });
DayOfWeek.Friday = DayOfWeek.addSymbol( { dayIndex: 4 });
DayOfWeek.Saturday = DayOfWeek.addSymbol( { dayIndex: 5, isWeekend: true });
DayOfWeek.Sunday = DayOfWeek.addSymbol( { dayIndex: 6, isWeekend: true });
DayOfWeek.seal();
// custom methods
ok(DayOfWeek.Monday.nextDay() === DayOfWeek.Tuesday);
ok(DayOfWeek.Sunday.nextDay() === DayOfWeek.Monday);
// custom properties
ok(DayOfWeek.Tuesday.isWeekend === undefined);
ok(DayOfWeek.Saturday.isWeekend == true);
// Standard enum capabilities
ok(DayOfWeek instanceof Enum);
ok(Enum.isSymbol(DayOfWeek.Wednesday));
ok(DayOfWeek.contains(DayOfWeek.Thursday));
ok(DayOfWeek.Tuesday.parentEnum == DayOfWeek);
ok(DayOfWeek.getSymbols().length === 7);
ok(DayOfWeek.Friday.toString() === "Friday");
Item Index
Methods
Methods
<ctor> Enum
-
name -
[methodObj]
Enum constructor - may be used to create new Enums.
Parameters:
-
nameString -
[methodObj]Object optional
Example:
var prototype = {
nextDay: function () {
var nextIndex = (this.dayIndex+1) % 7;
return DayOfWeek.getSymbols()[nextIndex];
}
};
var DayOfWeek = new Enum("DayOfWeek", prototype);
addSymbol
-
[propertiesObj]
Adds a new symbol to an Enum.
Parameters:
-
[propertiesObj]Object optionalA collection of properties that should be added to the new symbol. In other words, the 'propertiesObj' is any state that should be held by the symbol.
Returns:
Example:
var DayOfWeek = new Enum("DayOfWeek", prototype);
DayOfWeek.Monday = DayOfWeek.addSymbol( { dayIndex: 0 });
contains
-
Object
Returns whether an Enum contains a specified symbol.
Parameters:
-
ObjectObjector symbol to test.
Returns:
Example:
var symbol = DayOfWeek.Friday;
if (DayOfWeek.contains(symbol)) {
// do something
}
fromName
-
name
Returns an Enum symbol given its name.
Parameters:
-
nameStringName for which an enum symbol should be returned.
Returns:
Example:
var dayOfWeek = DayOfWeek.from("Thursday");
// nowdayOfWeek === DayOfWeek.Thursday
getNames
()
Array of String
Returns the names of all of the symbols contained within this Enum.
Returns:
Example:
var symbols = DayOfWeek.getNames();
getSymbols
()
Array of EnumSymbol
Returns all of the symbols contained within this Enum.
Returns:
Example:
var symbols = DayOfWeek.getSymbols();
isSymbol
()
Boolean
static
Checks if an object is an Enum 'symbol'.
Returns:
Example:
if (Enum.isSymbol(DayOfWeek.Wednesday)) {
// do something ...
};
seal
()
Seals this enum so that no more symbols may be added to it. This should only be called after all symbols have already been added to the Enum.
Example:
DayOfWeek.seal();
