Show:

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");

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]
)
EnumSymbol

Adds a new symbol to an Enum.

Parameters:

  • [propertiesObj] Object optional

    A 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:

EnumSymbol:

The new symbol

Example:

var DayOfWeek = new Enum("DayOfWeek", prototype);
DayOfWeek.Monday    = DayOfWeek.addSymbol( { dayIndex: 0 });

contains

(
  • Object
)
Boolean

Returns whether an Enum contains a specified symbol.

Parameters:

  • Object Object

    or symbol to test.

Returns:

Boolean:

Whether this Enum contains the specified symbol.

Example:

var symbol = DayOfWeek.Friday;
if (DayOfWeek.contains(symbol)) {
    // do something
}

fromName

(
  • name
)
EnumSymbol

Returns an Enum symbol given its name.

Parameters:

  • name String

    Name for which an enum symbol should be returned.

Returns:

EnumSymbol:

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:

Array of String:

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:

Array of EnumSymbol:

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:

Boolean:

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();