function $AdfMarshalingService$$() {
  this.Init()
}
$goog$exportSymbol$$("AdfMarshalingService", $AdfMarshalingService$$);
$AdfObject$$.$createSubclass$($AdfMarshalingService$$);
$AdfMarshalingService$$.prototype.Init = function $$AdfMarshalingService$$$$Init$() {
  $AdfMarshalingService$$.$superclass$.Init.call(this);
  this.$_typeMap$ = {};
  this.$_nameMap$ = {}
};
$AdfObject$$.$exportPrototypeSymbol$("AdfMarshalingService.prototype.Init", {Init:$AdfMarshalingService$$.prototype.Init});
$AdfMarshalingService$$.prototype.$registerEncoder$ = function $$AdfMarshalingService$$$$$registerEncoder$$($encoder$$) {
  var $encoderTypeMap$$ = $encoder$$.$_typeMap$, $typeMap$$ = this.$_typeMap$, $type$$117$$;
  for($type$$117$$ in $encoderTypeMap$$) {
    $typeMap$$[$type$$117$$] = {name:$encoderTypeMap$$[$type$$117$$], encoder:$encoder$$}
  }
};
$AdfObject$$.$exportPrototypeSymbol$("AdfMarshalingService.prototype.registerEncoder", {$registerEncoder$:$AdfMarshalingService$$.prototype.$registerEncoder$});
$AdfMarshalingService$$.prototype.$marshal$ = function $$AdfMarshalingService$$$$$marshal$$($objStack$$inline_542_parentElem$$, $obj$$28$$, $objStack$$) {
  var $encoderEntry_node$$55$$ = $JSCompiler_StaticMethods__getEncoderEntryByType$$(this, $obj$$28$$.constructor);
  $encoderEntry_node$$55$$ == $JSCompiler_alias_NULL$$ && ($encoderEntry_node$$55$$ = $JSCompiler_StaticMethods__getEncoderEntryByType$$(this, Object));
  if($objStack$$ == $JSCompiler_alias_NULL$$) {
    $objStack$$ = new $AdfMarshalingService$$.$_ObjectStack$
  }else {
    var $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$;
    a: {
      $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ = $objStack$$.stack;
      for(var $doc$$inline_545_stackSize$$inline_535$$ = $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$.length, $i$$inline_536_type$$inline_546$$ = 0;$i$$inline_536_type$$inline_546$$ < $doc$$inline_545_stackSize$$inline_535$$;$i$$inline_536_type$$inline_546$$++) {
        var $stackObj$$inline_537$$ = $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$[$i$$inline_536_type$$inline_546$$];
        if($stackObj$$inline_537$$ === $obj$$28$$ && $obj$$28$$.constructor === $stackObj$$inline_537$$.constructor) {
          $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ = $JSCompiler_alias_TRUE$$;
          break a
        }
      }
      $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ = $JSCompiler_alias_FALSE$$
    }
    if($JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$) {
      return $JSCompiler_alias_NULL$$
    }
  }
  $objStack$$.push($obj$$28$$);
  $encoderEntry_node$$55$$ = $AdfMarshalingService$$.$_createElementNS$($objStack$$inline_542_parentElem$$.ownerDocument, $encoderEntry_node$$55$$.name);
  $objStack$$inline_542_parentElem$$.appendChild($encoderEntry_node$$55$$);
  $objStack$$inline_542_parentElem$$ = $objStack$$;
  $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ = $JSCompiler_alias_NULL$$;
  $doc$$inline_545_stackSize$$inline_535$$ = $encoderEntry_node$$55$$.ownerDocument;
  $i$$inline_536_type$$inline_546$$ = $obj$$28$$.constructor;
  if($i$$inline_536_type$$inline_546$$ == String || $i$$inline_536_type$$inline_546$$ == Number) {
    $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ = $obj$$28$$
  }else {
    if($i$$inline_536_type$$inline_546$$ == Boolean) {
      $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ = $obj$$28$$ ? "1" : "0"
    }else {
      if($i$$inline_536_type$$inline_546$$ == Date) {
        $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ = $obj$$28$$.getTime()
      }else {
        if($i$$inline_536_type$$inline_546$$ == Array) {
          for(var $i$$inline_547_j$$inline_549$$ = 0;$i$$inline_547_j$$inline_549$$ < $obj$$28$$.length;$i$$inline_547_j$$inline_549$$++) {
            var $k$$inline_551_keyNode$$inline_550_node$$inline_548$$ = $JSCompiler_alias_NULL$$;
            $obj$$28$$[$i$$inline_547_j$$inline_549$$] != $JSCompiler_alias_NULL$$ && ($k$$inline_551_keyNode$$inline_550_node$$inline_548$$ = this.$marshal$($encoderEntry_node$$55$$, $obj$$28$$[$i$$inline_547_j$$inline_549$$], $objStack$$inline_542_parentElem$$));
            $k$$inline_551_keyNode$$inline_550_node$$inline_548$$ == $JSCompiler_alias_NULL$$ && $encoderEntry_node$$55$$.appendChild($AdfMarshalingService$$.$_createElementNS$($doc$$inline_545_stackSize$$inline_535$$, $AdfMarshalingService$$.$_DE$.$ARRAY_NULL_ELEM$))
          }
          $encoderEntry_node$$55$$.setAttribute($AdfMarshalingService$$.$_DE$.$COUNT_ATTR$, $obj$$28$$.length)
        }else {
          if($i$$inline_536_type$$inline_546$$ == Object) {
            for($i$$inline_547_j$$inline_549$$ in $obj$$28$$) {
              $k$$inline_551_keyNode$$inline_550_node$$inline_548$$ = $AdfMarshalingService$$.$_createElementNS$($doc$$inline_545_stackSize$$inline_535$$, $AdfMarshalingService$$.$_DE$.$KEY_ELEM$), $k$$inline_551_keyNode$$inline_550_node$$inline_548$$.setAttribute($AdfMarshalingService$$.$_DE$.$VALUE_ATTR$, $i$$inline_547_j$$inline_549$$), $encoderEntry_node$$55$$.appendChild($k$$inline_551_keyNode$$inline_550_node$$inline_548$$), $obj$$28$$[$i$$inline_547_j$$inline_549$$] != $JSCompiler_alias_NULL$$ && 
              this.$marshal$($k$$inline_551_keyNode$$inline_550_node$$inline_548$$, $obj$$28$$[$i$$inline_547_j$$inline_549$$], $objStack$$inline_542_parentElem$$)
            }
          }else {
            if($AdfUIComponent$$.prototype.isPrototypeOf($obj$$28$$)) {
              $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ = $obj$$28$$.$getClientId$()
            }else {
              if($AdfKeyStroke$$.prototype.isPrototypeOf($obj$$28$$)) {
                $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ = $obj$$28$$.$toMarshalledString$()
              }else {
                for($k$$inline_551_keyNode$$inline_550_node$$inline_548$$ in $obj$$28$$) {
                  try {
                    var $propObj$$inline_552$$ = $obj$$28$$[$k$$inline_551_keyNode$$inline_550_node$$inline_548$$];
                    if($propObj$$inline_552$$ != $JSCompiler_alias_NULL$$ && "function" != typeof $propObj$$inline_552$$) {
                      var $objKeyNode$$inline_553$$ = $AdfMarshalingService$$.$_createElementNS$($doc$$inline_545_stackSize$$inline_535$$, $AdfMarshalingService$$.$_DE$.$KEY_ELEM$);
                      $objKeyNode$$inline_553$$.setAttribute($AdfMarshalingService$$.$_DE$.$VALUE_ATTR$, $k$$inline_551_keyNode$$inline_550_node$$inline_548$$);
                      $encoderEntry_node$$55$$.appendChild($objKeyNode$$inline_553$$);
                      this.$marshal$($objKeyNode$$inline_553$$, $propObj$$inline_552$$, $objStack$$inline_542_parentElem$$)
                    }
                  }catch($exp$$inline_554$$) {
                    $AdfLogger$$.$LOGGER$.$logErrorAsWarning$($exp$$inline_554$$, "Error in marshaling object")
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  $JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$ != $JSCompiler_alias_NULL$$ && $encoderEntry_node$$55$$.appendChild($doc$$inline_545_stackSize$$inline_535$$.createTextNode($JSCompiler_inline_result$$58_stack$$inline_534_value$$inline_544$$.toString()));
  $objStack$$.pop($obj$$28$$);
  return $encoderEntry_node$$55$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfMarshalingService.prototype.marshal", {$marshal$:$AdfMarshalingService$$.prototype.$marshal$});
$AdfMarshalingService$$.getDefault = function $$AdfMarshalingService$$$getDefault$() {
  var $service$$ = $AdfMarshalingService$$.$_defaultService$;
  $service$$ || ($service$$ = new $AdfMarshalingService$$, $service$$.$registerEncoder$(new $AdfMarshalingService$$.$_DE$), $AdfMarshalingService$$.$_defaultService$ = $service$$);
  return $service$$
};
$goog$exportSymbol$$("AdfMarshalingService.getDefault", $AdfMarshalingService$$.getDefault);
function $JSCompiler_StaticMethods__getEncoderEntryByType$$($JSCompiler_StaticMethods__getEncoderEntryByType$self$$, $type$$118$$) {
  return $JSCompiler_StaticMethods__getEncoderEntryByType$self$$.$_typeMap$[$type$$118$$ === String ? "String" : $type$$118$$ === Boolean ? "Boolean" : $type$$118$$ === Number ? "Number" : $type$$118$$ === Array ? "Array" : $type$$118$$ === Date ? "Date" : $AdfUIComponent$$.prototype.isPrototypeOf($type$$118$$.prototype) ? "AdfUIComponent" : $AdfKeyStroke$$ === $type$$118$$ ? "AdfKeyStroke" : "Object"]
}
$AdfMarshalingService$$.$_createElementNS$ = function $$AdfMarshalingService$$$$_createElementNS$$($doc$$27$$, $name$$70$$) {
  var $agent$$36$$ = $AdfAgent$$.$AGENT$;
  return $agent$$36$$.$getPlatform$() == $AdfAgent$$.$IE_PLATFORM$ && 11 > $agent$$36$$.$getVersion$() ? $doc$$27$$.createNode(1, $name$$70$$, "http://oracle.com/richClient/comm") : $doc$$27$$.createElementNS("http://oracle.com/richClient/comm", $name$$70$$)
};
$AdfMarshalingService$$.$_ObjectStack$ = function $$AdfMarshalingService$$$$_ObjectStack$$() {
  this.stack = []
};
$AdfMarshalingService$$.$_ObjectStack$.prototype.push = function $$AdfMarshalingService$$$$_ObjectStack$$$push$($obj$$29$$) {
  this.stack.push($obj$$29$$)
};
$AdfMarshalingService$$.$_ObjectStack$.prototype.pop = function $$AdfMarshalingService$$$$_ObjectStack$$$pop$() {
  return this.stack.pop()
};
$AdfMarshalingService$$.$_DE$ = function $$AdfMarshalingService$$$$_DE$$() {
  var $typeMap$$1$$ = {};
  $typeMap$$1$$.Number = $AdfMarshalingService$$.$_DE$.$NUMBER$;
  $typeMap$$1$$.Boolean = $AdfMarshalingService$$.$_DE$.$BOOLEAN$;
  $typeMap$$1$$.String = $AdfMarshalingService$$.$_DE$.$STRING$;
  $typeMap$$1$$.Date = $AdfMarshalingService$$.$_DE$.$DATE$;
  $typeMap$$1$$.Array = $AdfMarshalingService$$.$_DE$.$ARRAY$;
  $typeMap$$1$$.Object = $AdfMarshalingService$$.$_DE$.$MAP$;
  $typeMap$$1$$.AdfUIComponent = $AdfMarshalingService$$.$_DE$.$ADFUICOMPONENT$;
  $typeMap$$1$$.AdfKeyStroke = $AdfMarshalingService$$.$_DE$.$ADFKEYSTROKE$;
  this.$_typeMap$ = $typeMap$$1$$
};
$AdfMarshalingService$$.$_DE$.$ARRAY_NULL_ELEM$ = "o";
$AdfMarshalingService$$.$_DE$.$KEY_ELEM$ = "k";
$AdfMarshalingService$$.$_DE$.$VALUE_ATTR$ = "v";
$AdfMarshalingService$$.$_DE$.$COUNT_ATTR$ = "n";
$AdfMarshalingService$$.$_DE$.$NUMBER$ = "n";
$AdfMarshalingService$$.$_DE$.$BOOLEAN$ = "b";
$AdfMarshalingService$$.$_DE$.$STRING$ = "s";
$AdfMarshalingService$$.$_DE$.$DATE$ = "d";
$AdfMarshalingService$$.$_DE$.$ARRAY$ = "a";
$AdfMarshalingService$$.$_DE$.$MAP$ = "m";
$AdfMarshalingService$$.$_DE$.$ADFUICOMPONENT$ = "AdfUIComponent";
$AdfMarshalingService$$.$_DE$.$ADFKEYSTROKE$ = "AdfKeyStroke";
