My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
Features  
FlexXB features
Phase-Requirements, Featured
Updated Sep 22, 2011 by alex.id....@gmail.com

Introduction

This page will contain a list of features and requirements I have planned for my project, along with some delivery dates :D.

Click the name links to see a more detailed explanation for each feature that is already implemented.

Features

Xml requests and responses can have namespaces for each composing element, thus each model object must be liked to its corresponding namespace.
Each object or object field can be rendered as xml under a name which can be different from it's regular name (alias).
An object's field can be disregarded completly from the (de)serialization process or skipped on serialization or deserialization.
An object's field can be serialized as a partial rendering (an element having as name the field's alias and subelement or attribute its id).
All deserialized objects received as responses should be cached according to their type and unique id in order to preserve object uniqueness across the application.
Object types that should be used in deserialization should be determined from the namespaces present in the xml response.
Some simple types (such as Date) may require custom conversion methods to and from String values.
Some fields in an object can be renderer as being eveloped in an hierarchy of elements that do not have actionScript correspondents (basically, the model objects will shortcircuit a part of the server object's hierarchy).
There are specific cases in which a user defined serialization/deserialization process and objects needing such a process should notify FlexXB of that intent.
  • FXB-011 XSD validation against incoming XML:
Xml responses should be validated by using XSD schemas.
Fields marked with getFromCache option will be extracted from cache or, if the object is absent from cache, will be deserialized.
  • FXB-013 Add method references to annotation's attribute values:
When specifying the annotations, the user should be able to provide, as a value for each of the annotation's attributes, a reference to a method within the object that will get called each time the serialization process accesses that annotation.
The serializer should allow custom treatments at different stages in the xml processing. These stages are: Pre-Serialize, Post-Serialize, Pre-Deserialize and Post-Deserialize.
FlexXB should provide a data service that is able to send xml requests and receive xml responses.
FlexXB should provide an API to allow developers to programatically describe object types to be registered in the FlexXB engine.
There are cases in which the business objects have parametered constructors which should not default to null in order to inforce some business constraints. FlexXB should provide a way to annotate the constructors along with the parameers they take. Due to the fact that those parameters will more than likely have values found in the xml (like serialized object fields) the parameters will reference a field that will be the end-receiver of the value.
Allow multiple namespaces to be defined for a class. Various members of the class can use different namespaces.
Allow multiple annotations per field differentiated by a version. This is extremely useful when the same object can be rendered to xml in different ways accorduing to the end server it is talking to.
This feature is the same as offered by JAXB: https://jaxb.dev.java.net/guide/Mapping_cyclic_references_to_XML.html. When encountering objects cycles, the application needs to recover from it without ending up in a stack overflow exception. To do this you will be able to specify objects once in the xml document and reference them by id wherever is needed; also one may implement a custom interface allowing the replacement of the current object with a new one that will break the cycle.
Make FlexXB serialization format agnostic. Allows users to extend the engine and add support for different serialization formats (JSON, etc) while still sharing the base features such as object caching, circular reference handling, constructor annotations, id fields, version extraction. The advantage is that the base features are integrated by default with the new serialization context that defines the new format and one should only care about the actual AS3 object - ? conversions.
  • FXB-022 JSON serialization support:
Provide (de)serialization mechanisms for JSON encoding, while taking full advantage of FlexXB stock features such as circular reference handling, object cache, etc.

Feature ID Description Delivery version
FXB-001Support for object namespacing1.0 alpha
FXB-002Xml alias1.0 alpha
FXB-003Ignore a field on serialization, deserialization or both1.0 alpha
FXB-010Allow custom object (de)serialization1.0 alpha
FXB-005Integrate model object cache to insure object uniqueness1.0 beta
FXB-004Serialize partial object 1.0 beta
FXB-008Custom to and from string conversion for simple types1.0 beta
FXB-012Add getFromCache option for deserializing complex fields1.0 beta
FXB-014Add events to signal processing start and finish1.0 beta
FXB-015Xml Service1.0 beta
FXB-006Class type identification by response's namespace on deserialization1.0
FXB-009Use paths in xml aliases1.0
FXB-016Annotation API1.1
FXB-017Constructor Annotation1.2
FXB-018Multiple namespace support1.4.1
FXB-019Annotation versioning1.7.0
FXB-020Circular reference handling1.7.0
FXB-021Serialization format support2.0
FXB-022JSON serialization support2.4.0
FXB-013Add method references to annotation's attribute values?
FXB-011XSD validation against incoming XML?

Powered by Google Project Hosting