Patent ID: 7325226

Claim:
In a computer system that supports a serialization engine capable of generating source code for objects, a method of serializing a plurality of objects from an initial representation to any of one or more subsequent representations, for one or more standard object types and serialization formats, and which may be extended to cover one or more custom object types and serialization formats, the method comprising acts of: providing a serialization manager to (i) coordinate one or more standard serialization providers that each identify one or more standard serializers for a standard object type or serialization format, and (ii) load, as needed, one or more custom serialization providers that each identify one or more custom serializers for one or more custom object types or serialization formats that are not covered by the one or more standard serialization providers; requesting a first serializer from the serialization manager for an object graph that comprises a root object and one or more other objects of particular object types, and for a particular serialization format, wherein the first serializer is requested from the serialization manager as part of a cut, copy or paste operation on the object graph, the first serializer serializing the root object to produce a new snippet of code sufficient to undo or redo a change in the object graph, the first serializer producing the snippet of code to include a new type definition; requesting at least one other serializer from the serialization manger for the one or more other objects of the particular object types, and for a respective particular serialization format, wherein the at least one other serializer is requested from the serialization manager as part of the cut, copy or paste operation on the object graph, and such that due to the cut, copy or paste operation, the at least one other serializer produces an additional snippet of code sufficient to undo or redo a change to the object graph, the production of the code snippet preventing production of a new class representation of the one or more other objects of the object graph, such that instead of producing a new class representation comprising at least some portion of source code, a visual representation of the object graph is generated; and calling the serializer to serialize the object graph.