{ "type": "class",
  "qname": "org.apache.royale.textLayout.operations.FlowOperation",
  "baseClassname": ""
  ,
    "description": "The FlowOperation class is the base class for all Text Layout Framework operations.  <p>Operations are transformations of a text flow. An Operation class defines the logic for performing and undoing the transformation. Operations are executed by an edit manager. Most applications do not need to create or manage operations directly (unless implementing a custom edit manager).</p>  <p>When an operation is performed, the edit manager dispatches an Operation object within the FlowOperationEvent object. You can query this Operation object to decide whether or not to allow the operation, to decide whether to perform some other operation as well, or to update related user-interface elements.</p>",
  "tags": [
  {  "tagName": "see",
         "values": ["org.apache.royale.textLayout.events.FlowOperationEvent", "org.apache.royale.textLayout.edit.EditManager"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "field",
        "qname": "userData",
        "return": "*",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Arbitrary data associated with an element.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "org.apache.royale.textLayout.operations.FlowOperation",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Creates the FlowOperation object.",
        "tags": [
        {  "tagName": "param",
               "values": ["textFlow The text flow to which this operation is applied."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": [{ "name": "textFlow", "type": "org.apache.royale.textLayout.elements.ITextFlow"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.textLayout.elements.ITextFlow",
        "qname": "textFlow",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The ITextFlow object to which this operation is applied.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "doOperation",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Executes the operation.  <p>This method must be overridden in derived classes. The base class method does nothing. You should not call <code>doOperation()</code> directly. The edit manager calls the method when it executes the operation. </p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["Boolean <code>true</code>, if the operation succeeded. Otherwise, <code>false</code>."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Boolean",
          "params": []}
      ,
      { "type": "method",
        "qname": "undo",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Reverses the operation.  <p>This method must be overridden in derived classes. The base class method does nothing. You should not call <code>undo()</code> directly. The edit manager calls the method when it reverses the operation. </p>  SelectionState object can be the current selection or a selection created specifically for the operation.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["The SelectionState object passed to the operation when it was performed. This"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.edit.SelectionState",
          "params": []}
      ,
      { "type": "method",
        "qname": "canUndo",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Test if this operation be placed on the undo stack.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["true means to push the operation onto the undo stack.  false means do not push this operation."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Boolean",
          "params": []}
      ,
      { "type": "method",
        "qname": "redo",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Re-executes the operation.  <p>This method must be overridden in derived classes. The base class method does nothing. You should not call <code>redo()</code> directly. The edit manager calls the method when it re-executes the operation. </p>  SelectionState object can be the current selection or a selection created specifically for the operation.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["The SelectionState object passed to the operation when it was performed. This"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.edit.SelectionState",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "uint",
        "qname": "beginGeneration",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The text flow generation before the operation.  <p>A generation of 0 indicates that the operation did not complete.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "uint",
        "qname": "endGeneration",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The text flow generation after the operation.  <p>A generation of 0 indicates that the operation did not complete.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]}]
  }
