Ext.data.amf.XmlEncoder

Hierarchy

Ext.Base
Ext.data.amf.XmlEncoder

Files

This class serializes data in the Action Message Format XML (AMFX) format. It can write simple and complex objects, to be used in conjunction with an AMFX-compliant server. To create an encoded XMl, first construct an Encoder:

var encoder = Ext.create('Ext.data.amf.XmlEncoder');

Then use the writer methods to out data to the :

encoder.writeObject(1);
encoder.writeObject({a: "b"});

And access the data through the #bytes property: encoder.getBody();

You can also reset the class to start a new body:

encoder.clear();

Current limitations: AMF3 format (format:3) - Each object is written out explicitly, not using the reference tables supported by the AMFX format. This means the function does NOT support circular reference objects. - Objects that aren't Arrays, Dates, Strings, Document (XML) or primitive values will be written out as anonymous objects with dynamic data. - If the object has a $flexType field, that field will be used in signifying the object-type as an attribute, instead of being passed as data. - There's no JavaScript equivalent to the ByteArray type in ActionScript, hence data will never be searialized as ByteArrays by the writeObject function. A writeByteArray method is provided for writing out ByteArray objects.

For more information on working with AMF data please refer to the AMF Guide.

Properties

Defined By

Instance properties

Ext.data.amf.XmlEncoder
view source
: String
The output string ...
  • The output string

Defaults to: ""

Get the reference to the current class from which this object was instantiated. ...

Get the reference to the current class from which this object was instantiated. Unlike statics, this.self is scope-dependent and it's meant to be used for dynamic inheritance. See statics for a detailed comparison

Ext.define('My.Cat', {
    statics: {
        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
    },

    constructor: function() {
        alert(this.self.speciesName); // dependent on 'this'
    },

    clone: function() {
        return new this.self();
    }
});


Ext.define('My.SnowLeopard', {
    extend: 'My.Cat',
    statics: {
        speciesName: 'Snow Leopard'         // My.SnowLeopard.speciesName = 'Snow Leopard'
    }
});

var cat = new My.Cat();                     // alerts 'Cat'
var snowLeopard = new My.SnowLeopard();     // alerts 'Snow Leopard'

var clone = snowLeopard.clone();
alert(Ext.getClassName(clone));             // alerts 'My.SnowLeopard'
Defined By

Static properties

...

Defaults to: []

Methods

Defined By

Instance methods

Ext.data.amf.XmlEncoder
view source
new( config ) : Ext.data.amf.XmlEncoder
Creates new encoder. ...

Creates new encoder.

Parameters

  • config : Object

    Configuration options

Returns

Fires

    Call the original method that was previously overridden with override, This method is deprecated as callParent does ...

    Call the original method that was previously overridden with override,

    This method is deprecated as callParent does the same thing.

    Ext.define('My.Cat', {
        constructor: function() {
            alert("I'm a cat!");
        }
    });
    
    My.Cat.override({
        constructor: function() {
            alert("I'm going to be a cat!");
    
            var instance = this.callOverridden();
    
            alert("Meeeeoooowwww");
    
            return instance;
        }
    });
    
    var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                              // alerts "I'm a cat!"
                              // alerts "Meeeeoooowwww"
    

    Parameters

    • args : Array/Arguments

      The arguments, either an array or the arguments object from the current method, for example: this.callOverridden(arguments)

    Returns

    • Object

      Returns the result of calling the overridden method

    Call the "parent" method of the current method. ...

    Call the "parent" method of the current method. That is the method previously overridden by derivation or by an override (see Ext.define).

     Ext.define('My.Base', {
         constructor: function (x) {
             this.x = x;
         },
    
         statics: {
             method: function (x) {
                 return x;
             }
         }
     });
    
     Ext.define('My.Derived', {
         extend: 'My.Base',
    
         constructor: function () {
             this.callParent([21]);
         }
     });
    
     var obj = new My.Derived();
    
     alert(obj.x);  // alerts 21
    

    This can be used with an override as follows:

     Ext.define('My.DerivedOverride', {
         override: 'My.Derived',
    
         constructor: function (x) {
             this.callParent([x*2]); // calls original My.Derived constructor
         }
     });
    
     var obj = new My.Derived();
    
     alert(obj.x);  // now alerts 42
    

    This also works with static methods.

     Ext.define('My.Derived2', {
         extend: 'My.Base',
    
         statics: {
             method: function (x) {
                 return this.callParent([x*2]); // calls My.Base.method
             }
         }
     });
    
     alert(My.Base.method(10));     // alerts 10
     alert(My.Derived2.method(10)); // alerts 20
    

    Lastly, it also works with overridden static methods.

     Ext.define('My.Derived2Override', {
         override: 'My.Derived2',
    
         statics: {
             method: function (x) {
                 return this.callParent([x*2]); // calls My.Derived2.method
             }
         }
     });
    
     alert(My.Derived2.method(10)); // now alerts 40
    

    To override a method and replace it and also call the superclass method, use callSuper. This is often done to patch a method to fix a bug.

    Parameters

    • args : Array/Arguments

      The arguments, either an array or the arguments object from the current method, for example: this.callParent(arguments)

    Returns

    • Object

      Returns the result of calling the parent method

    This method is used by an override to call the superclass method but bypass any overridden method. ...

    This method is used by an override to call the superclass method but bypass any overridden method. This is often done to "patch" a method that contains a bug but for whatever reason cannot be fixed directly.

    Consider:

     Ext.define('Ext.some.Class', {
         method: function () {
             console.log('Good');
         }
     });
    
     Ext.define('Ext.some.DerivedClass', {
         method: function () {
             console.log('Bad');
    
             // ... logic but with a bug ...
    
             this.callParent();
         }
     });
    

    To patch the bug in DerivedClass.method, the typical solution is to create an override:

     Ext.define('App.paches.DerivedClass', {
         override: 'Ext.some.DerivedClass',
    
         method: function () {
             console.log('Fixed');
    
             // ... logic but with bug fixed ...
    
             this.callSuper();
         }
     });
    

    The patch method cannot use callParent to call the superclass method since that would call the overridden method containing the bug. In other words, the above patch would only produce "Fixed" then "Good" in the console log, whereas, using callParent would produce "Fixed" then "Bad" then "Good".

    Parameters

    • args : Array/Arguments

      The arguments, either an array or the arguments object from the current method, for example: this.callSuper(arguments)

    Returns

    • Object

      Returns the result of calling the superclass method

    Ext.data.amf.XmlEncoder
    view source
    ( )
    Clears the accumulated data, starting with an empty string ...

    Clears the accumulated data, starting with an empty string

    Fires

      Ext.data.amf.XmlEncoder
      view source
      ( xml ) : Stringprivate
      Converts an XML Document object to a string. ...

      Converts an XML Document object to a string.

      Parameters

      • xml : Object

        XML document to convert (typically Document object)

      Returns

      • String

        A string representing the document

      Ext.data.amf.XmlEncoder
      view source
      ( message )
      Encodes an AMFX remoting message with the AMFX envelope. ...

      Encodes an AMFX remoting message with the AMFX envelope.

      Parameters

      Ext.data.amf.XmlEncoder
      view source
      ( array )
      Encodes an array, marking it as an ECMA array if it has associative (non-ordinal) indices ...

      Encodes an array, marking it as an ECMA array if it has associative (non-ordinal) indices

      Parameters

      • array : Array

        the array to encode

      Fires

        Ext.data.amf.XmlEncoder
        view source
        ( val )
        Returns an encoded boolean ...

        Returns an encoded boolean

        Parameters

        Ext.data.amf.XmlEncoder
        view source
        ( array )
        Encodes a byte arrat in AMFX format ...

        Encodes a byte arrat in AMFX format

        Parameters

        • array : Array

          the byte array to encode

        Ext.data.amf.XmlEncoder
        view source
        ( date )
        Encode a date ...

        Encode a date

        Parameters

        • date : Date

          the date to encode

        Ext.data.amf.XmlEncoder
        view source
        ( num )
        Returns an encoded double ...

        Returns an encoded double

        Parameters

        • num : Number

          the double to encode

        Ext.data.amf.XmlEncoder
        view source
        ( key, value ) : Stringprivate
        Encodes one ECMA array element ...

        Encodes one ECMA array element

        Parameters

        • key : String

          the name of the element

        • value : Object

          the value of the element

        Returns

        • String

          the encoded key-value pair

        Fires

          Ext.data.amf.XmlEncoder
          view source
          ( obj ) : String
          Encodes a generic object into AMFX format. ...

          Encodes a generic object into AMFX format. If a $flexType member is defined, list that as the object type.

          Parameters

          • obj : Object

            the object to encode

          Returns

          Fires

            Ext.data.amf.XmlEncoder
            view source
            ( num )
            Returns an encoded int ...

            Returns an encoded int

            Parameters

            • num : Number

              the integer to encode

            Ext.data.amf.XmlEncoder
            view source
            ( )
            Returns the encoding for null ...

            Returns the encoding for null

            Ext.data.amf.XmlEncoder
            view source
            ( num )
            Returns an encoded number. ...

            Returns an encoded number. Decides wheter to use int or double encoding.

            Parameters

            • num : Number

              the number to encode

            Fires

              Ext.data.amf.XmlEncoder
              view source
              ( item ) : String
              encode the appropriate data item. ...

              encode the appropriate data item. Supported types: - undefined - null - boolean - integer - double - UTF-8 string - XML Document (identified by being instaneof Document. Can be generated with: new DOMParser()).parseFromString(xml, "text/xml"); - Date - Array - Generic object

              Parameters

              • item : Object

                A primitive or object to write to the stream

              Returns

              • String

                the encoded object in AMFX format

              Fires

                Ext.data.amf.XmlEncoder
                view source
                ( str )
                Returns an encoded string ...

                Returns an encoded string

                Parameters

                • str : String

                  the string to encode

                Ext.data.amf.XmlEncoder
                view source
                ( )
                Returns the encoding for undefined (which is the same as the encoding for null) ...

                Returns the encoding for undefined (which is the same as the encoding for null)

                Fires

                  Ext.data.amf.XmlEncoder
                  view source
                  ( xml )
                  Encodes an xml document into a CDATA section ...

                  Encodes an xml document into a CDATA section

                  Parameters

                  • xml : XMLElement/HTMLElement

                    an XML document or element (Document type in some browsers)

                  Fires

                    ...

                    Parameters

                    Returns the initial configuration passed to constructor. ...

                    Returns the initial configuration passed to constructor.

                    Parameters

                    • name : String (optional)

                      When supplied, value for particular configuration option is returned, otherwise the full config object is returned.

                    Returns

                    ...

                    Parameters

                    ( instanceConfig ) : Objectchainableprotected
                    Initialize configuration for this class. ...

                    Initialize configuration for this class. a typical example:

                    Ext.define('My.awesome.Class', {
                        // The default config
                        config: {
                            name: 'Awesome',
                            isAwesome: true
                        },
                    
                        constructor: function(config) {
                            this.initConfig(config);
                        }
                    });
                    
                    var awesome = new My.awesome.Class({
                        name: 'Super Awesome'
                    });
                    
                    alert(awesome.getName()); // 'Super Awesome'
                    

                    Parameters

                    Returns

                    • Object

                      mixins The mixin prototypes as key - value pairs

                    Fires

                      Ext.data.amf.XmlEncoder
                      view source
                      ( item ) : Boolean
                      Tries to determine if an object is an XML document ...

                      Tries to determine if an object is an XML document

                      Parameters

                      Returns

                      • Boolean

                        true if it's an XML document, false otherwise

                      ( names, callback, scope )private
                      ...

                      Parameters

                      ( config, applyIfNotSet ) : Ext.Basechainableprivate
                      ...

                      Parameters

                      Returns

                      Get the reference to the class from which this object was instantiated. ...

                      Get the reference to the class from which this object was instantiated. Note that unlike self, this.statics() is scope-independent and it always returns the class from which it was called, regardless of what this points to during run-time

                      Ext.define('My.Cat', {
                          statics: {
                              totalCreated: 0,
                              speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
                          },
                      
                          constructor: function() {
                              var statics = this.statics();
                      
                              alert(statics.speciesName);     // always equals to 'Cat' no matter what 'this' refers to
                                                              // equivalent to: My.Cat.speciesName
                      
                              alert(this.self.speciesName);   // dependent on 'this'
                      
                              statics.totalCreated++;
                          },
                      
                          clone: function() {
                              var cloned = new this.self();                    // dependent on 'this'
                      
                              cloned.groupName = this.statics().speciesName;   // equivalent to: My.Cat.speciesName
                      
                              return cloned;
                          }
                      });
                      
                      
                      Ext.define('My.SnowLeopard', {
                          extend: 'My.Cat',
                      
                          statics: {
                              speciesName: 'Snow Leopard'     // My.SnowLeopard.speciesName = 'Snow Leopard'
                          },
                      
                          constructor: function() {
                              this.callParent();
                          }
                      });
                      
                      var cat = new My.Cat();                 // alerts 'Cat', then alerts 'Cat'
                      
                      var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'
                      
                      var clone = snowLeopard.clone();
                      alert(Ext.getClassName(clone));         // alerts 'My.SnowLeopard'
                      alert(clone.groupName);                 // alerts 'Cat'
                      
                      alert(My.Cat.totalCreated);             // alerts 3
                      

                      Returns

                      Ext.data.amf.XmlEncoder
                      view source
                      ( str )private
                      Appends a string to the body of the message ...

                      Appends a string to the body of the message

                      Parameters

                      • str : String

                        the string to append

                      Fires

                        Ext.data.amf.XmlEncoder
                        view source
                        ( message )
                        Writes an AMFX remoting message with the AMFX envelope to the string. ...

                        Writes an AMFX remoting message with the AMFX envelope to the string.

                        Parameters

                        Fires

                          Ext.data.amf.XmlEncoder
                          view source
                          ( array )
                          Writes an array to the string, marking it as an ECMA array if it has associative (non-ordinal) indices ...

                          Writes an array to the string, marking it as an ECMA array if it has associative (non-ordinal) indices

                          Parameters

                          • array : Array

                            the array to encode

                          Fires

                            Ext.data.amf.XmlEncoder
                            view source
                            ( val )
                            Writes a boolean value to the string ...

                            Writes a boolean value to the string

                            Parameters

                            Fires

                              Ext.data.amf.XmlEncoder
                              view source
                              ( array )
                              Writes an AMFX byte array to the string. ...

                              Writes an AMFX byte array to the string. This is for convenience only and is not called automatically by writeObject.

                              Parameters

                              • array : Array

                                the byte array to encode

                              Fires

                                Ext.data.amf.XmlEncoder
                                view source
                                ( date )
                                Write a date to the string ...

                                Write a date to the string

                                Parameters

                                • date : Date

                                  the date to encode

                                Fires

                                  Ext.data.amf.XmlEncoder
                                  view source
                                  ( num )
                                  Writes a double tag with the content. ...

                                  Writes a double tag with the content.

                                  Parameters

                                  • num : Number

                                    the double to encode

                                  Fires

                                    Ext.data.amf.XmlEncoder
                                    view source
                                    ( obj )
                                    Writes a generic object to the string. ...

                                    Writes a generic object to the string. If a $flexType member is defined, list that as the object type.

                                    Parameters

                                    • obj : Object

                                      the object to encode

                                    Fires

                                      Ext.data.amf.XmlEncoder
                                      view source
                                      ( num )
                                      Writes a int tag with the content. ...

                                      Writes a int tag with the content.

                                      Parameters

                                      • num : Number

                                        the integer to encode

                                      Fires

                                        Ext.data.amf.XmlEncoder
                                        view source
                                        ( )
                                        Writes the null value to the string ...

                                        Writes the null value to the string

                                        Fires

                                          Ext.data.amf.XmlEncoder
                                          view source
                                          ( num )
                                          Writes a number, deciding if to use int or double as the tag ...

                                          Writes a number, deciding if to use int or double as the tag

                                          Parameters

                                          • num : Number

                                            the number to encode

                                          Fires

                                            Ext.data.amf.XmlEncoder
                                            view source
                                            ( item )
                                            Writes the appropriate data item to the string. ...

                                            Writes the appropriate data item to the string. Supported types: - undefined - null - boolean - integer - double - UTF-8 string - XML Document (identified by being instaneof Document. Can be generated with: new DOMParser()).parseFromString(xml, "text/xml"); - Date - Array - Generic object

                                            Parameters

                                            • item : Object

                                              A primitive or object to write to the stream

                                            Fires

                                              Ext.data.amf.XmlEncoder
                                              view source
                                              ( str )
                                              Writes a string tag with the string content. ...

                                              Writes a string tag with the string content.

                                              Parameters

                                              • str : String

                                                the string to encode

                                              Fires

                                                Ext.data.amf.XmlEncoder
                                                view source
                                                ( )
                                                Writes the undefined value to the string ...

                                                Writes the undefined value to the string

                                                Fires

                                                  Ext.data.amf.XmlEncoder
                                                  view source
                                                  ( xml )
                                                  Write an XML document to the string ...

                                                  Write an XML document to the string

                                                  Parameters

                                                  • xml : XMLElement/HTMLElement

                                                    an XML document or element (Document type in some browsers)

                                                  Fires

                                                    Defined By

                                                    Static methods

                                                    ( config, fullMerge )privatestatic
                                                    ...

                                                    Parameters

                                                    ( members )chainableprivatestatic
                                                    ...

                                                    Parameters

                                                    ( name, member )chainableprivatestatic
                                                    ...

                                                    Parameters

                                                    ( members )chainablestatic
                                                    Add methods / properties to the prototype of this class. ...

                                                    Add methods / properties to the prototype of this class.

                                                    Ext.define('My.awesome.Cat', {
                                                        constructor: function() {
                                                            // ...
                                                        }
                                                    });
                                                    
                                                     My.awesome.Cat.addMembers({
                                                         meow: function() {
                                                            alert('Meowww...');
                                                         }
                                                     });
                                                    
                                                     var kitty = new My.awesome.Cat();
                                                     kitty.meow();
                                                    

                                                    Parameters

                                                    ( members ) : Ext.Basechainablestatic
                                                    Add / override static properties of this class. ...

                                                    Add / override static properties of this class.

                                                    Ext.define('My.cool.Class', {
                                                        // this.se
                                                    });
                                                    
                                                    My.cool.Class.addStatics({
                                                        someProperty: 'someValue',      // My.cool.Class.someProperty = 'someValue'
                                                        method1: function() {  },    // My.cool.Class.method1 = function() { ... };
                                                        method2: function() {  }     // My.cool.Class.method2 = function() { ... };
                                                    });
                                                    

                                                    Parameters

                                                    Returns

                                                    ( xtype )chainableprivatestatic
                                                    ...

                                                    Parameters

                                                    ( fromClass, members ) : Ext.Basechainableprivatestatic
                                                    Borrow another class' members to the prototype of this class. ...

                                                    Borrow another class' members to the prototype of this class.

                                                    Ext.define('Bank', {
                                                        money: '$$$',
                                                        printMoney: function() {
                                                            alert('$$$$$$$');
                                                        }
                                                    });
                                                    
                                                    Ext.define('Thief', {
                                                        // ...
                                                    });
                                                    
                                                    Thief.borrow(Bank, ['money', 'printMoney']);
                                                    
                                                    var steve = new Thief();
                                                    
                                                    alert(steve.money); // alerts '$$$'
                                                    steve.printMoney(); // alerts '$$$$$$$'
                                                    

                                                    Parameters

                                                    • fromClass : Ext.Base

                                                      The class to borrow members from

                                                    • members : Array/String

                                                      The names of the members to borrow

                                                    Returns

                                                    ( args )protectedstatic
                                                    ...

                                                    Parameters

                                                    Create a new instance of this Class. ...

                                                    Create a new instance of this Class.

                                                    Ext.define('My.cool.Class', {
                                                        // ...
                                                    });
                                                    
                                                    My.cool.Class.create({
                                                        someConfig: true
                                                    });
                                                    

                                                    All parameters are passed to the constructor of the class.

                                                    Returns

                                                    ( alias, origin )static
                                                    Create aliases for existing prototype methods. ...

                                                    Create aliases for existing prototype methods. Example:

                                                    Ext.define('My.cool.Class', {
                                                        method1: function() {  },
                                                        method2: function() {  }
                                                    });
                                                    
                                                    var test = new My.cool.Class();
                                                    
                                                    My.cool.Class.createAlias({
                                                        method3: 'method1',
                                                        method4: 'method2'
                                                    });
                                                    
                                                    test.method3(); // test.method1()
                                                    
                                                    My.cool.Class.createAlias('method5', 'method3');
                                                    
                                                    test.method5(); // test.method3() -> test.method1()
                                                    

                                                    Parameters

                                                    ( parent )privatestatic
                                                    ...

                                                    Parameters

                                                    Ext.data.amf.XmlEncoder
                                                    view source
                                                    ( id ) : Stringstatic
                                                    Utility function to generate a flex-friendly UID ...

                                                    Utility function to generate a flex-friendly UID

                                                    Parameters

                                                    • id : Number

                                                      used in the first 8 chars of the id. If not provided, a random number will be used.

                                                    Returns

                                                    • String

                                                      a string-encoded opaque UID

                                                    Get the current class' name in string format. ...

                                                    Get the current class' name in string format.

                                                    Ext.define('My.cool.Class', {
                                                        constructor: function() {
                                                            alert(this.self.getName()); // alerts 'My.cool.Class'
                                                        }
                                                    });
                                                    
                                                    My.cool.Class.getName(); // 'My.cool.Class'
                                                    

                                                    Returns

                                                    ...
                                                    ( name, mixinClass )privatestatic
                                                    Used internally by the mixins pre-processor ...

                                                    Used internally by the mixins pre-processor

                                                    Parameters

                                                    ( fn, scope )chainableprivatestatic
                                                    ...

                                                    Parameters

                                                    ( members ) : Ext.Basechainabledeprecatedstatic
                                                    Override members of this class. ...

                                                    Override members of this class. Overridden methods can be invoked via callParent.

                                                    Ext.define('My.Cat', {
                                                        constructor: function() {
                                                            alert("I'm a cat!");
                                                        }
                                                    });
                                                    
                                                    My.Cat.override({
                                                        constructor: function() {
                                                            alert("I'm going to be a cat!");
                                                    
                                                            var instance = this.callParent(arguments);
                                                    
                                                            alert("Meeeeoooowwww");
                                                    
                                                            return instance;
                                                        }
                                                    });
                                                    
                                                    var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                                                                              // alerts "I'm a cat!"
                                                                              // alerts "Meeeeoooowwww"
                                                    

                                                    As of 2.1, direct use of this method is deprecated. Use Ext.define instead:

                                                    Ext.define('My.CatOverride', {
                                                        override: 'My.Cat',
                                                    
                                                        constructor: function() {
                                                            alert("I'm going to be a cat!");
                                                    
                                                            var instance = this.callParent(arguments);
                                                    
                                                            alert("Meeeeoooowwww");
                                                    
                                                            return instance;
                                                        }
                                                    });
                                                    

                                                    The above accomplishes the same result but can be managed by the Ext.Loader which can properly order the override and its target class and the build process can determine whether the override is needed based on the required state of the target class (My.Cat).

                                                    This method has been deprecated since 2.1.0

                                                    Please use Ext.define instead

                                                    Parameters

                                                    • members : Object

                                                      The properties to add to this class. This should be specified as an object literal containing one or more properties.

                                                    Returns

                                                    Ext.data.amf.XmlEncoder
                                                    view source
                                                    ( from, to ) : Numberstatic
                                                    Returns a random integer between the specified range (inclusive) ...

                                                    Returns a random integer between the specified range (inclusive)

                                                    Parameters

                                                    • from : Number

                                                      Lowest value to return.

                                                    • to : Number

                                                      Highst value to return.

                                                    Returns

                                                    • Number

                                                      A random integer within the specified range.