1
- Jsonix . Binding . ElementMarshaller = Jsonix . Class ( {
1
+ Jsonix . Binding . Marshalls = {
2
+ } ;
3
+
4
+ Jsonix . Binding . Marshalls . Element = Jsonix . Class ( {
2
5
marshalElement : function ( value , context , output , scope ) {
3
- var elementValue = this . getOutputElementValue ( value , context , output , scope ) ;
6
+ var elementValue = this . convertToTypedNamedValue ( value , context , output , scope ) ;
4
7
var declaredTypeInfo = elementValue . typeInfo ;
5
8
var typeInfo = declaredTypeInfo ;
6
- if ( Jsonix . Util . Type . exists ( declaredTypeInfo ) )
7
- {
9
+ if ( Jsonix . Util . Type . exists ( declaredTypeInfo ) ) {
8
10
output . writeStartElement ( elementValue . name ) ;
9
11
if ( Jsonix . Util . Type . exists ( elementValue . value ) ) {
10
12
if ( context . supportXsiType ) {
11
13
var actualTypeInfo = context . getTypeInfoByValue ( elementValue . value ) ;
12
- if ( actualTypeInfo && actualTypeInfo . typeName && declaredTypeInfo !== actualTypeInfo )
13
- {
14
+ if ( actualTypeInfo && actualTypeInfo . typeName && declaredTypeInfo !== actualTypeInfo ) {
14
15
typeInfo = actualTypeInfo ;
15
16
var xsiTypeName = actualTypeInfo . typeName ;
16
17
var xsiType = Jsonix . Schema . XSD . QName . INSTANCE . print ( xsiTypeName , context , output , scope ) ;
@@ -20,22 +21,30 @@ Jsonix.Binding.ElementMarshaller = Jsonix.Class({
20
21
typeInfo . marshal ( elementValue . value , context , output , scope ) ;
21
22
}
22
23
output . writeEndElement ( ) ;
23
- }
24
- else
25
- {
24
+ } else {
26
25
throw new Error ( "Element [" + elementValue . name . key + "] is not known in this context." ) ;
27
26
}
28
27
} ,
29
- getOutputElementValue : function ( value , context , output , scope ) {
28
+ getTypeInfoByElementName : function ( name , context , scope ) {
29
+ var elementInfo = context . getElementInfo ( name , scope ) ;
30
+ if ( Jsonix . Util . Type . exists ( elementInfo ) ) {
31
+ return elementInfo . typeInfo ;
32
+ } else {
33
+ return undefined ;
34
+ }
35
+ }
36
+ } ) ;
37
+ Jsonix . Binding . Marshalls . Element . AsElementRef = Jsonix . Class ( {
38
+ convertToTypedNamedValue : function ( value , context , output , scope ) {
30
39
Jsonix . Util . Ensure . ensureObject ( value ) ;
31
- var elementValue = this . convertFromElementValue ( value , context , output , scope ) ;
40
+ var elementValue = this . convertToNamedValue ( value , context , output , scope ) ;
32
41
return {
33
42
name : elementValue . name ,
34
43
value : elementValue . value ,
35
44
typeInfo : this . getTypeInfoByElementName ( elementValue . name , context , scope )
36
45
} ;
37
46
} ,
38
- convertFromElementValue : function ( elementValue , context , output , scope ) {
47
+ convertToNamedValue : function ( elementValue , context , output , scope ) {
39
48
var name ;
40
49
var value ;
41
50
if ( Jsonix . Util . Type . exists ( elementValue . name ) && ! Jsonix . Util . Type . isUndefined ( elementValue . value ) ) {
@@ -58,13 +67,5 @@ Jsonix.Binding.ElementMarshaller = Jsonix.Class({
58
67
}
59
68
}
60
69
throw new Error ( "Invalid element value [" + elementValue + "]. Element values must either have {name:'myElementName', value: elementValue} or {myElementName:elementValue} structure." ) ;
61
- } ,
62
- getTypeInfoByElementName : function ( name , context , scope ) {
63
- var elementInfo = context . getElementInfo ( name , scope ) ;
64
- if ( Jsonix . Util . Type . exists ( elementInfo ) ) {
65
- return elementInfo . typeInfo ;
66
- } else {
67
- return undefined ;
68
- }
69
70
}
70
- } ) ;
71
+ } ) ;
0 commit comments