Try OpenEdge Now
skip to main content
ABL Reference
Class Properties and Methods Reference : ToggleFlag( ) method
 

ToggleFlag( ) method

Returns a flag enum instance with the state of the indicated flag(s) toggled. In other words, the flag is unset if it was previously set, and set if it was previously unset.
Return type: Flag enum type
Access: PUBLIC
Applies to: Progress.Reflect.Flags enumeration, Progress.Reflect.ParameterMode enumeration, any user-defined flag enum type

Syntax

ToggleFlag ( INPUT flag AS flag-enum-type )
flag
A reference to a flag enum instance. The enum type (flag-enum-type) of this instance must match the type of the instance the method is invoked on.
The following example results in vReflectFlag, an instance of Progress.Reflect.Flags, with the Public flag set and the Protected flag unset:
DEFINE VARIABLE vReflectFlag AS Flags.
vReflectFlag = Flags:Protected.

/* These two lines toggle the status of the Public and
Protected flags without affecting the status of any of
the other flags in vReflectFlag. */
vReflectFlag = vReflectFlag:ToggleFlag(Flags:Public).
vReflectFlag = vReflectFlag:ToggleFlag(Flags:Protected).
You can use the bitwise XOR operator to achieve the same result. For example, replacing the last line with vReflectFlag = vReflectFlag XOR Flags:Protected also toggles the status of the Protected flag.

Notes

*This method is available for all built-in flag enums, and the compiler automatically generates it for all user-defined flag enums. For example, this code excerpt uses a user-defined Permissions flag enum, initializes vPerm with the Read flag set, and then uses ToggleFlag( ) to set the Create flag, resulting in an enum instance with both the Read and Create flags set:
ENUM Permission FLAGS:
DEFINE ENUM None = 0
Read
Write
ReadWrite = Read,Write
Create
Delete.
END ENUM.
DEFINE VARIABLE vPerm AS Permission.
vPerm = Permission:Read.

/* This toggles the Create flag without affecting the status of
any of the other flags in vPerm. */
vPerm = vPerm:ToggleFlag(Permission:Create).

See also

SetFlag( ) method, UnsetFlag( ) method, XOR operator (bitwise)