Hierarchical Object Transformation System with Schema Comparison
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for transforming software objects from one structure to another, such as XSLT and casting operators, are inadequate as they do not automatically eliminate unnecessary fields, perform simple conversions, or handle hierarchical objects effectively, requiring manual intervention and being limited to specific object relationships.
Innovation Solution
A method and system that automatically transform objects by copying values, creating corresponding elements, and invoking user-implemented transformation routines, utilizing a class hierarchy and framework to handle attribute, node, and list types, with a 'best effort' approach to match corresponding members and provide hooks for user-defined transformations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Extent of automation
If XSLT or text manipulation systems are used for object transformation, then transformation capability is provided, but manual intervention is required and automatic field elimination does not occur
Solution Approach 1:
The transformation system automatically compares the source and destination object schemas, identifies corresponding fields, and performs transformations without requiring manual configuration. The system serves itself by autonomously determining transformation rules based on schema comparison and data type analysis.
Solution Approach 2:
The system changes the parameters of object fields automatically by analyzing schema differences between source and destination objects. It modifies field values, data types, and structures based on the transformation rules derived from schema comparison, eliminating the need for manual parameter specification.
2Adaptability or versatility
If casting operators are used for object transformation, then type conversion is achieved, but only between derived and base classes is supported
Solution Approach 1:
The transformation system is designed to handle multiple object types and relationships universally, not just derived-base class relationships. It can transform between any two object schemas by comparing their structures and applying appropriate transformation rules, making the system versatile across different object hierarchies and data models.
3Productivity
If manual field transformation is performed, then transformation precision is maintained, but productivity is reduced
Solution Approach 1:
The system replaces manual mechanical transformation processes with an automated computational system. It uses algorithmic schema comparison and data type analysis to automatically determine transformation rules, substituting human manual configuration with automated intelligent processing that maintains both speed and accuracy.
4Adaptability or versatility
If change lists are used for object transformation, then ordered transformations are achieved, but only for objects with derivation chains is suitable
Solution Approach 1:
Instead of requiring objects to have pre-existing derivation chains as a prerequisite for transformation, the system inverts the approach by first comparing the schemas of any two objects and then determining the transformation rules based on the comparison results. This allows transformation between objects without traditional inheritance relationships.
Data Source
AI summary
A method and system for transforming a first object into a second object, comprising: receiving the source and second objects; subject to the objects being of attribute type, copying, the value of the source object to the second object; subject to the objects being of node type which comprises, for each member of the second object: locating a corresponding member having a corresponding name in the source object; and invoking the method for the member and the corresponding member; subject to the objects being of list type, the source object adapted to contain elements of a first type and the second object adapted to contain elements of a second type, for each element of the source object: creating a corresponding default element of the second type; and invoking the method for the element and the corresponding default element; and invoking a user-implemented transformation routine.


