(function(window) { var Gitana = window.Gitana; Gitana.BinaryAttachmentMap = Gitana.AbstractMap.extend( /** @lends Gitana.BinaryAttachmentMap.prototype */ { constructor: function(persistable, object) { this.objectType = function() { return "Gitana.BinaryAttachmentMap"; }; this.__persistable = (function() { var _persistable = persistable; return function(p) { if (!Gitana.isUndefined(p)) { _persistable = p; } return _persistable; }; })(); if (!object) { object = this.__persistable().getSystemMetadata()["attachments"]; } // must come at end because loading of object requires persistable() method this.base(this.__persistable().getDriver(), object); }, /** * Override to include: * * __persistable * * @param otherObject */ chainCopyState: function(otherObject) { this.base(otherObject); if (otherObject.__persistable) { this.__persistable(otherObject.__persistable()); } }, /** * @override */ clone: function() { return new Gitana.BinaryAttachmentMap(this.__persistable(), this); }, /** * @param json */ buildObject: function(attachment) { return new Gitana.BinaryAttachment(this.__persistable(), attachment); } }); })(window);