(function(window)
{
var Gitana = window.Gitana;
Gitana.AuditRecord = Gitana.AbstractObject.extend(
/** @lends Gitana.AuditRecord.prototype */
{
/**
* @constructs
* @augments Gitana.AbstractObject
*
* @class AuditRecord
*
* @param {Object} datastore
* @param [Object] object json object (if no callback required for populating)
*/
constructor: function(datastore, object)
{
this.base(datastore.getCluster(), object);
this.objectType = function() { return "Gitana.AuditRecord"; };
//////////////////////////////////////////////////////////////////////////////////////////////
//
// PRIVILEGED METHODS
//
//////////////////////////////////////////////////////////////////////////////////////////////
/**
* Gets the Gitana Data Store object.
*
* @inner
*
* @returns {Gitana.DataStore} The Gitana DataStore object
*/
this.getDataStore = function() { return datastore; };
/**
* Gets the Gitana Data Store id.
*
* @inner
*
* @returns {String} The Gitana DataStore id
*/
this.getDataStoreId = function() { return datastore.getId(); };
},
/**
* @OVERRIDE
*/
getUri: function()
{
return this.datastore.getUri() + "/audit";
},
/**
* @override
*/
clone: function()
{
return this.getFactory().auditRecord(this.getDataStore(), this);
},
/**
* @returns {String} the scope of the audit record (i.e. "NODE")
*/
getScope: function()
{
return this.get("scope");
},
/**
* @returns {String} the action of the audit record ("CREATE", "READ", "UPDATE", "DELETE", "MOVE", "COPY", "EXISTS")
*/
getAction: function()
{
return this.get("action");
},
/**
* @returns {String} the principal for the audit record
*/
getPrincipalId: function()
{
return this.get("principal");
},
/**
* @returns {String} method that was invoked
*/
getMethod: function()
{
return this.get("method");
},
/**
* @returns {String} handler
*/
getHandler: function()
{
return this.get("handler");
},
/**
* @returns {Object} argument descriptors
*/
getArgs: function()
{
return this.get("args");
},
/**
* @returns {Object} return value descriptor
*/
getReturn: function()
{
return this.get("return");
}
});
})(window);