# Class: HasFormAssociation

## Gitana. HasFormAssociation

Has Form Association

#### new HasFormAssociation(branch, Object)

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `branch` | Gitana.Branch |  |
  `Object` |  | <optional> | object json object (if no callback required for populating)

  Source:
    - repository/types/HasFormAssociation.js, line 17

### Extends

- Gitana.Association

### Members

#### getPreviewUri

  Generates a URI to a preview resource.

  Inherited From:
    - Gitana.AbstractNode#getPreviewUri
  Source:
    - repository/AbstractNode.js, line 529

#### listAttachments

  Lists the attachments of this node.

  If local is set to true, the attachments are drawn from precached values on the node.

  Inherited From:
    - Gitana.AbstractNode#listAttachments
  Source:
    - repository/AbstractNode.js, line 481

#### unattach

  Deletes an attachment.

  Inherited From:
    - Gitana.AbstractNode#unattach
  Source:
    - repository/AbstractNode.js, line 537

### Methods

#### __copyState()

  Override the Chain.__copyState method so that it utilizes a base method that we can override on a per-class basis.

  Inherited From:
    - Gitana.Chainable#__copyState
  Source:
    - Chainable.js, line 25

#### addFeature(featureId, Object)

  Adds a feature to this node.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `featureId` | String |  | the id of the feature
  `Object` |  | <optional> | featureConfig the JSON object configuration for the feature

  Inherited From:
    - Gitana.AbstractNode#addFeature
  Source:
    - repository/AbstractNode.js, line 296

#### attach(attachmentId, contentType, data, filename)

  Creates an attachment.

  When using this method from within the JS driver, it really only works for text-based content such as JSON or text.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `attachmentId` |  | (use null or false for default attachment)
  `contentType` |  |
  `data` |  |
  `filename` |  |

  Inherited From:
    - Gitana.AbstractNode#attach
  Source:
    - repository/AbstractNode.js, line 516

#### attachment(attachmentId)

  Picks off a single attachment

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `attachmentId` |  | (null for default)

  Inherited From:
    - Gitana.AbstractNode#attachment
  Source:
    - repository/AbstractNode.js, line 490

#### attachmentDownloadUri()

  Non-chained method for getting a download URI for this node's attachment.

  Inherited From:
    - Gitana.AbstractNode#attachmentDownloadUri
  Source:
    - repository/AbstractNode.js, line 498

#### chainCopyState(otherObject)

  Override to include:

  qname type features stats __is_association

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `otherObject` |  |

  Inherited From:
    - Gitana.AbstractNode#chainCopyState
  Source:
    - repository/AbstractNode.js, line 174

#### chainCreate(chainable, object, uri, params)

  Creates an object on the server (write + read). Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `object` |  |
  `uri` |  |
  `params` |  |

  Inherited From:
    - Gitana.Chainable#chainCreate
  Source:
    - Chainable.js, line 135

#### chainCreateEx(chainable, object, createUri, readUri)

  Creates an object on the server using one URL and then reads it back using another URL. This exists because the security responses don't include _doc fields like other responses.

  Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `object` |  |
  `createUri` |  |
  `readUri` |  |

  Inherited From:
    - Gitana.Chainable#chainCreateEx
  Source:
    - Chainable.js, line 177

#### chainDelete(chainable, uri, params)

  Executes an HTTP delete for this object and continues the chain with the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |

  Inherited From:
    - Gitana.AbstractObject#chainDelete
  Source:
    - AbstractObject.js, line 43

#### chainGet(chainable, uri, params)

  Performs a GET from the server and populates the chainable. Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |

  Inherited From:
    - Gitana.Chainable#chainGet
  Source:
    - Chainable.js, line 101

#### chainGetResponse(chainable, uri, params)

  Performs a GET to the server and pushes the response into the chain. Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |

  Inherited From:
    - Gitana.Chainable#chainGetResponse
  Source:
    - Chainable.js, line 338

#### chainGetResponseRows(chainable, uri, params)

  Performs a GET to the server and pushes the "rows" response attribute into the chain. Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |

  Inherited From:
    - Gitana.Chainable#chainGetResponseRows
  Source:
    - Chainable.js, line 401

#### chainGetResponseText(chainable, uri, params)

  Performs a GET to the server and pushes the text response to the callback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |

  Inherited From:
    - Gitana.Chainable#chainGetResponseText
  Source:
    - Chainable.js, line 369

#### chainHasResponseRow(chainable, uri, value)

  Performs a GET to the server and checks whether the "rows" array attribute of the response has the given value.

  Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `value` |  |

  Inherited From:
    - Gitana.Chainable#chainHasResponseRow
  Source:
    - Chainable.js, line 418

#### chainPost(chainable, uri, params, payload)

  Performs a POST to the server and populates the chainable with results. Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |
  `payload` |  |

  Inherited From:
    - Gitana.Chainable#chainPost
  Source:
    - Chainable.js, line 222

#### chainPostEmpty(chainable, uri, params, payload, contentType)

  Performs a POST to the server. The response is not handled. Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |
  `payload` |  | (optional)
  `contentType` |  | (optional) - example "text/plain"

  Inherited From:
    - Gitana.Chainable#chainPostEmpty
  Source:
    - Chainable.js, line 258

#### chainPostResponse(chainable, uri, params)

  Performs a POST to the server and pushes the response into the chain. Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |

  Inherited From:
    - Gitana.Chainable#chainPostResponse
  Source:
    - Chainable.js, line 441

#### chainReload(uri, params)

  Reloads this object from the server and then passes control to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `uri` |  |
  `params` |  |

  Inherited From:
    - Gitana.AbstractObject#chainReload
  Source:
    - AbstractObject.js, line 74

#### chainUpdate(chainable, uri, params)

  Executes an update (write + read) of this object and then passes control to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |

  Inherited From:
    - Gitana.AbstractObject#chainUpdate
  Source:
    - AbstractObject.js, line 107

#### chainUpload(chainable, uri, params, contentType, payload)

  Performs a POST to the server. The response is not handled. Proceeds with the chain as bound to the chainable.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `chainable` |  |
  `uri` |  |
  `params` |  |
  `contentType` |  | (optional) - example "text/plain"
  `payload` |  | (optional)

  Inherited From:
    - Gitana.Chainable#chainUpload
  Source:
    - Chainable.js, line 299

#### changeQName(typeQName)

  Sets the QName of this node.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `typeQName` | String | the qname of the type to change to

  Inherited From:
    - Gitana.AbstractNode#changeQName
  Source:
    - repository/AbstractNode.js, line 449

#### changeTypeQName(typeQName)

  Changes the type QName for this node.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `typeQName` | String | the qname of the type to change to

  Inherited From:
    - Gitana.AbstractNode#changeTypeQName
  Source:
    - repository/AbstractNode.js, line 408

#### checkAuthority(principal, authorityId, callback)

  Checks whether the given principal has a granted authority for this object. This passes the result (true/false) to the chaining function.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `principal` | Gitana.DomainPrincipal | String | the principal or the principal id
  `authorityId` | String | the id of the authority
  `callback` |  |

  Inherited From:
    - Gitana.AbstractSelfableACLObject#checkAuthority
  Source:
    - AbstractSelfableACLObject.js, line 86

#### checkPermission(principal, permissionId, callback)

  Checks whether the given principal has a permission against this object. This passes the result (true/false) to the chaining function.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `principal` | Gitana.DomainPrincipal | String | the principal or the principal id
  `permissionId` | String | the id of the permission
  `callback` |  |

  Inherited From:
    - Gitana.AbstractSelfableACLObject#checkPermission
  Source:
    - AbstractSelfableACLObject.js, line 191

#### clone()

  Source:
    - repository/types/HasFormAssociation.js, line 27

#### copy(target, asynchronous)

  Copies this object into the target.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `target` |  |
  `asynchronous` |  |

  Inherited From:
    - Gitana.AbstractPlatformObject#copy
  Source:
    - platform/AbstractPlatformObject.js, line 169

#### del()

  Delete

  Inherited From:
    - Gitana.AbstractSelfableObject#del
  Source:
    - AbstractSelfableObject.js, line 38

#### exportArchive(settings)

  Exports an archive.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `settings` | Object |

  Inherited From:
    - Gitana.AbstractPlatformObject#exportArchive
  Source:
    - platform/AbstractPlatformObject.js, line 71

#### extractPrincipalDomainQualifiedId(principal)

  Helper to gets the principal id for a principal object, json structure or principal id itself. This returns something like "domainId/principalId"

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `principal` |  |

  Inherited From:
    - Gitana.Chainable#extractPrincipalDomainQualifiedId
  Source:
    - Chainable.js, line 472

#### extractPrincipalIdentifiers(principal, defaultDomainId)

  Helper to gets the principal id for a principal object, json structure or principal id itself. This returns something like "domainId/principalId"

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `principal` |  | principal object or string (principal id or domain qualified principal id)
  `defaultDomainId` |  |

  Inherited From:
    - Gitana.Chainable#extractPrincipalIdentifiers
  Source:
    - Chainable.js, line 486

#### get(key)

  Get a json property

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `key` |  |

  Inherited From:
    - Gitana.AbstractObject#get
  Source:
    - AbstractObject.js, line 198

#### getBranch() → {Gitana.Branch}

  Gets the Gitana Branch object.

  Inherited From:
    - Gitana.AbstractNode#getBranch
  Source:
    - repository/AbstractNode.js, line 79

  ##### Returns:

  The Gitana Branch object

  Type
    Gitana.Branch

#### getBranchId() → {String}

  Gets the Gitana Branch id.

  Inherited From:
    - Gitana.AbstractNode#getBranchId
  Source:
    - repository/AbstractNode.js, line 88

  ##### Returns:

  The Gitana Branch id

  Type
    String

#### getDescription() → {String}

  The description for the object.

  Inherited From:
    - Gitana.AbstractObject#getDescription
  Source:
    - AbstractObject.js, line 257

  ##### Returns:

  the description

  Type
    String

#### getDirection(node) → {String}

  NOTE: this is not a chained function

  Given a node, determines what direction this association describes.

  If the association's directionality is UNDIRECTED, the direction is MUTUAL.

  If the association's directionality is DIRECTED... If the node is the source, the direction is OUTGOING. If the node is the target, the direction is INCOMING.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `node` | Object | either a Gitana.Node or a string with the node id

  Inherited From:
    - Gitana.Association#getDirection
  Source:
    - repository/Association.js, line 238

  ##### Returns:

  the direction or null if the node isn't on the association

  Type
    String

#### getDirectionality() → {String}

  Inherited From:
    - Gitana.Association#getDirectionality
  Source:
    - repository/Association.js, line 43

  ##### Returns:

  the directionality of the association

  Type
    String

#### getFeature(featureId, Function) → {Object}

  Gets the configuration for a given feature.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `featureId` | String |  | the id of the feature
  `Function` |  | <optional> | callback optional callback

  Inherited From:
    - Gitana.AbstractNode#getFeature
  Source:
    - repository/AbstractNode.js, line 254

  ##### Returns:

  the JSON object configuration for the feature

  Type
    Object

#### getFeatureIds(Function) → {Array}

  Hands back a list of the feature ids that this node has.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `Function` |  | <optional> | callback optional callback

  Inherited From:
    - Gitana.AbstractNode#getFeatureIds
  Source:
    - repository/AbstractNode.js, line 219

  ##### Returns:

  An array of strings that are the ids of the features.

  Type
    Array

#### getFormKey() → {String}

  Gets the form key for the association.

  Source:
    - repository/types/HasFormAssociation.js, line 39

  ##### Returns:

  form key

  Type
    String

#### getId() → {String}

  Hands back the ID ("_doc") of this object.

  Inherited From:
    - Gitana.AbstractObject#getId
  Source:
    - AbstractObject.js, line 221

  ##### Returns:

  id

  Type
    String

#### getOtherNodeId(node) → {String}

  NOTE: this is not a chained function.

  Determines the node id of the other node.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `node` | Object | either a Gitana.Node or a string with the node id

  Inherited From:
    - Gitana.Association#getOtherNodeId
  Source:
    - repository/Association.js, line 281

  ##### Returns:

  the id of the other node

  Type
    String

#### getProxiedUri()

  Hands back the URI of this object as referenced by the browser.

  Inherited From:
    - Gitana.AbstractObject#getProxiedUri
  Source:
    - AbstractObject.js, line 188

#### getQName() → {String}

  Gets the QName for this node.

  Inherited From:
    - Gitana.AbstractNode#getQName
  Source:
    - repository/AbstractNode.js, line 438

  ##### Returns:

  the qname of this node.

  Type
    String

#### getRepository() → {Gitana.Repository}

  Gets the Gitana Repository object.

  Inherited From:
    - Gitana.AbstractRepositoryObject#getRepository
  Source:
    - repository/AbstractRepositoryObject.js, line 35

  ##### Returns:

  The Gitana Repository object

  Type
    Gitana.Repository

#### getRepositoryId() → {String}

  Gets the Gitana Repository id.

  Inherited From:
    - Gitana.AbstractRepositoryObject#getRepositoryId
  Source:
    - repository/AbstractRepositoryObject.js, line 44

  ##### Returns:

  The Gitana Repository id

  Type
    String

#### getSourceNodeChangesetId() → {String}

  Gets the source node changeset id for this association.

  Inherited From:
    - Gitana.Association#getSourceNodeChangesetId
  Source:
    - repository/Association.js, line 67

  ##### Returns:

  source node changeset id

  Type
    String

#### getSourceNodeId() → {String}

  Gets the source node id for this association.

  Inherited From:
    - Gitana.Association#getSourceNodeId
  Source:
    - repository/Association.js, line 55

  ##### Returns:

  source node id

  Type
    String

#### getSourceNodeType() → {String}

  Gets the source node type for this association.

  Inherited From:
    - Gitana.Association#getSourceNodeType
  Source:
    - repository/Association.js, line 79

  ##### Returns:

  source node type qname

  Type
    String

#### getSystemMetadata() → {Gitana.SystemMetadata}

  Hands back the system metadata for this object.

  Inherited From:
    - Gitana.AbstractObject#getSystemMetadata
  Source:
    - AbstractObject.js, line 233

  ##### Returns:

  system metadata

  Type
    Gitana.SystemMetadata

#### getTargetNodeChangesetId() → {String}

  Gets the target node changeset id for this association.

  Inherited From:
    - Gitana.Association#getTargetNodeChangesetId
  Source:
    - repository/Association.js, line 103

  ##### Returns:

  target node changeset id

  Type
    String

#### getTargetNodeId() → {String}

  Gets the target node id for this association.

  Inherited From:
    - Gitana.Association#getTargetNodeId
  Source:
    - repository/Association.js, line 91

  ##### Returns:

  target node id

  Type
    String

#### getTargetNodeType() → {String}

  Gets the target node type for this association.

  Inherited From:
    - Gitana.Association#getTargetNodeType
  Source:
    - repository/Association.js, line 115

  ##### Returns:

  target node type qname

  Type
    String

#### getTitle() → {String}

  The title for the object.

  Inherited From:
    - Gitana.AbstractObject#getTitle
  Source:
    - AbstractObject.js, line 245

  ##### Returns:

  the title

  Type
    String

#### getType()

  Inherited From:
    - Gitana.Association#getType
  Source:
    - repository/Association.js, line 27

#### getTypeQName() → {String}

  Gets the type QName for this node.

  Inherited From:
    - Gitana.AbstractNode#getTypeQName
  Source:
    - repository/AbstractNode.js, line 397

  ##### Returns:

  the type qname of this node.

  Type
    String

#### getUri()

  Inherited From:
    - Gitana.AbstractNode#getUri
  Source:
    - repository/AbstractNode.js, line 94

#### grantAuthority(principal, authorityId)

  Grants an authority to a principal against this object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `principal` | Gitana.DomainPrincipal | String | the principal or the principal id
  `authorityId` | String | the id of the authority

  Inherited From:
    - Gitana.AbstractSelfableACLObject#grantAuthority
  Source:
    - AbstractSelfableACLObject.js, line 110

#### handleResponse(response)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `response` |  |

  Inherited From:
    - Gitana.AbstractPersistable#handleResponse
  Source:
    - AbstractPersistable.js, line 36

#### handleSystemProperties()

  Inherited From:
    - Gitana.AbstractNode#handleSystemProperties
  Source:
    - repository/AbstractNode.js, line 118

#### hasFeature(featureId, Function) → {Boolean}

  Indicates whether this node has the given feature.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `featureId` | String |  | the id of the feature
  `Function` |  | <optional> | callback optional callback to receive result (for chaining)

  Inherited From:
    - Gitana.AbstractNode#hasFeature
  Source:
    - repository/AbstractNode.js, line 324

  ##### Returns:

  whether this node has this feature

  Type
    Boolean

#### importArchive(settings, Function)

  Imports an archive.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `settings` | Object |  |
  `Function` |  | <optional> | reportFn

  Inherited From:
    - Gitana.AbstractPlatformObject#importArchive
  Source:
    - platform/AbstractPlatformObject.js, line 116

#### isAssociation()

  Inherited From:
    - Gitana.Association#isAssociation
  Source:
    - repository/Association.js, line 35

#### isContainer() → {Boolean}

  Indicates whether this node has the "f:container" feature

  Inherited From:
    - Gitana.AbstractNode#isContainer
  Source:
    - repository/AbstractNode.js, line 358

  ##### Returns:

  whether this node has the "f:container" feature

  Type
    Boolean

#### json()

  Hands back a cleanup, properties-only JSON simple object.

  Inherited From:
    - Gitana.AbstractPersistable#json
  Source:
    - AbstractPersistable.js, line 66

#### listAuthorities(principal, callback)

  Retrieve list of authorities and pass into chaining method.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `principal` | Gitana.DomainPrincipal | String | the principal or the principal id
  `callback` |  |

  Inherited From:
    - Gitana.AbstractSelfableACLObject#listAuthorities
  Source:
    - AbstractSelfableACLObject.js, line 60

#### loadACL(callback)

  Retrieve full ACL and pass into chaining method.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` |  |

  Inherited From:
    - Gitana.AbstractSelfableACLObject#loadACL
  Source:
    - AbstractSelfableACLObject.js, line 38

#### loadAuthorityGrants(callback)

  Loads the authority grants for a given set of principals.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` |  |

  Inherited From:
    - Gitana.AbstractSelfableACLObject#loadAuthorityGrants
  Source:
    - AbstractSelfableACLObject.js, line 165

#### loadFrom(anotherObject)

  Helper method that loads this object from another object of the same type.

  For example, loading a node from another loaded node.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `anotherObject` |  |

  Inherited From:
    - Gitana.AbstractObject#loadFrom
  Source:
    - AbstractObject.js, line 342

#### readOtherNode(node, node)

  Given a node, reads back the other node of the association.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `node` | Object | either a Gitana.Node or a string with the node id
  `node` |  |

  Inherited From:
    - Gitana.Association#readOtherNode
  Source:
    - repository/Association.js, line 173

#### readSourceNode()

  Reads the source node.

  Inherited From:
    - Gitana.Association#readSourceNode
  Source:
    - repository/Association.js, line 127

#### readTargetNode()

  Reads the target node.

  Inherited From:
    - Gitana.Association#readTargetNode
  Source:
    - repository/Association.js, line 149

#### ref()

  Inherited From:
    - Gitana.AbstractNode#ref
  Source:
    - repository/AbstractNode.js, line 102

#### reload()

  Reload

  Inherited From:
    - Gitana.AbstractSelfableObject#reload
  Source:
    - AbstractSelfableObject.js, line 58

#### removeFeature(featureId)

  Removes a feature from this node.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `featureId` | String | the id of the feature

  Inherited From:
    - Gitana.AbstractNode#removeFeature
  Source:
    - repository/AbstractNode.js, line 275

#### replacePropertiesWith(object)

  Replaces all of the properties of this object with those of the given object. This method should be used to update the state of this object.

  Any functions from the incoming object will not be copied.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `object` | Object | object containing the properties

  Inherited From:
    - Gitana.AbstractObject#replacePropertiesWith
  Source:
    - AbstractObject.js, line 280

#### revokeAllAuthorities(principal)

  Revokes all authorities for a principal against the server.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `principal` | Gitana.Principal | String | the principal or the principal id

  Inherited From:
    - Gitana.AbstractSelfableACLObject#revokeAllAuthorities
  Source:
    - AbstractSelfableACLObject.js, line 153

#### revokeAuthority(principal, authorityId)

  Revokes an authority from a principal against this object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `principal` | Gitana.DomainPrincipal | String | the principal or the principal id
  `authorityId` | String | the id of the authority

  Inherited From:
    - Gitana.AbstractSelfableACLObject#revokeAuthority
  Source:
    - AbstractSelfableACLObject.js, line 132

#### set(key, value)

  Set a json property

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `key` |  |
  `value` |  |

  Inherited From:
    - Gitana.AbstractObject#set
  Source:
    - AbstractObject.js, line 209

#### setFormKey(formKey)

  Sets the form key for the association.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `formKey` |  |

  Source:
    - repository/types/HasFormAssociation.js, line 51

#### stats()

  Hands back the stats.

  Inherited From:
    - Gitana.AbstractNode#stats
  Source:
    - repository/AbstractNode.js, line 198

#### stringify(pretty)

  Helper function to convert the object portion to JSON

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pretty` |  |

  Inherited From:
    - Gitana.AbstractObject#stringify
  Source:
    - AbstractObject.js, line 330

#### touch()

  Touches the node. This allows the node to reindex and regenerate any renditions it may have associated with it.

  Inherited From:
    - Gitana.AbstractNode#touch
  Source:
    - repository/AbstractNode.js, line 371

#### update()

  Update

  Inherited From:
    - Gitana.AbstractSelfableObject#update
  Source:
    - AbstractSelfableObject.js, line 77