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:
-
name
String -
[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:
The new symbol
Example:
var DayOfWeek = new Enum("DayOfWeek", prototype);
DayOfWeek.Monday = DayOfWeek.addSymbol( { dayIndex: 0 });
contains
-
Object
Returns whether an Enum contains a specified symbol.
Parameters:
-
Object
Objector symbol to test.
Returns:
Whether this Enum contains the specified symbol.
Example:
var symbol = DayOfWeek.Friday;
if (DayOfWeek.contains(symbol)) {
// do something
}
fromName
-
name
Returns an Enum symbol given its name.
Parameters:
-
name
StringName for which an enum symbol should be returned.
Returns:
The symbol that matches the name or 'undefined' if not found.
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:
All of the names of the symbols contained within this Enum.
Example:
var symbols = DayOfWeek.getNames();
getSymbols
()
Array of EnumSymbol
Returns all of the symbols contained within this Enum.
Returns:
All of the symbols contained within this Enum.
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();