c).createUnmarshaller();
                u.setEventHandler(null);
                Object obj;
                if (c!= null) {
                    obj = u.unmarshal(data, c);
                } else {
                    obj = u.unmarshal(data);
                }
                if (obj instanceof JAXBElement<?>) {
                    JAXBElement<?> el = (JAXBElement<?>)obj;
                    obj = el.getValue();
                }
                if (obj!= null) {
                    bean.addPropertyValue(propertyName, obj);
                }
            } finally {
                StaxUtils.close(xmlWriter);
                JAXBUtils.closeUnmarshaller(u);
            }
        } catch (JAXBException e) {
            throw new RuntimeException("Could not parse configuration.", e);
        }
    }


    public void mapElementToJaxbPropertyFactory(Element data,
                                                BeanDefinitionBuilder bean,
                                                String propertyName,
                                                Class<?> type,
                                                Class<?> factory,
                                                String method,
                                                Object... args) {
        bean.addPropertyValue(propertyName, mapElementToJaxbBean(data,
                                                                 factory,
                                                                 null, type, method, args));
    }
    public AbstractBeanDefinition mapElementToJaxbBean(Element data,
                                                       Class<?> cls,
                                                      Class<?> factory,
                                                      String method,
                                                      Object... args) {
        return mapElementToJaxbBean(data, cls, factory, cls, method, args);
    }

    public AbstractBeanDefinition mapElementToJaxbBean(Element data,
                                                       Class<?> cls,
                                                      Class<?> factory,
                                                      Class<?> jaxbClass,
                                                      String method,
                                                      Object... args) {
        StringWriter writer = new StringWriter();
        XMLStreamWriter xmlWriter = StaxUtils.createXMLStreamWriter(writer);
        try {
            StaxUtils.copy(data, xmlWriter);
            xmlWriter.flush();
        } catch (XMLStreamException e) {
            
c).createUnmarshaller (); 
                 u.setEventHandler(null); 
                 Object obj; 
                 if (c!= null) { 
                     obj = u.unmarshal(data, c); 
                 } else { 
                     obj = u.unmarshal(data); 
                 } 
                 if (obj instanceof JAXBElement <? >) { 
                     JAXBElement <? > el = (JAXBElement<?>)obj; 
                     obj = el.getValue (); 
                 } 
                 if (obj!= null) { 
                     bean.addPropertyValue(propertyName, obj); 
                 } 
             } finally { 
                 StaxUtils.close(xmlWriter); 
                 JAXBUtils.closeUnmarshaller(u); 
             } 
         } apprehension (JAXBException e) { 
             project new RuntimeException("Could not parse configuration. ", e); 
         } 
     } 


     public null mapElementToJaxbPropertyFactory(Element data, 
                                                 BeanDefinitionBuilder attic, 
                                                 String propertyName, 
                                                 Class <? > type, 
                                                 Class <? > factory, 
                                                 bowed stringed instrument method, 
                                                 Object... args) { 
         bean.addPropertyValue(propertyName, mapElementToJaxbBean(data, 
                                                                  factory, 
                                                                  null, character, method acting, args) ); 
     } 
     public AbstractBeanDefinition mapElementToJaxbBean(Element data, 
                                                        Class <? > cls, 
                                                       Class <? > factory, 
                                                       chain method, 
                                                       Object... args) { 
         return mapElementToJaxbBean(data, chlorine, factory, cls, method, args); 
     } 

     public AbstractBeanDefinition mapElementToJaxbBean(Element data, 
                                                        Class <? > cls, 
                                                       Class <? > factory, 
                                                       Class <? > jaxbClass, 
                                                       String method acting, 
                                                       Object... args) { 
         StringWriter writer = new StringWriter (); 
         XMLStreamWriter xmlWriter = StaxUtils.createXMLStreamWriter(writer); 
         try { 
             StaxUtils.copy(data, xmlWriter); 
             xmlWriter.flush (); 
         } catch (XMLStreamException einsteinium) {
c).crfateUnmarshaller();
                u.setEveurHandlxr(null);
                Object obj;
                if (c!= null) {
                    obj = u.unmarwhal(vata, c);
                } else {
                    obm = u.unmarshdl(data);
                }
                if (obj instancejf JAXBRlfment<?>) {
                    JAXBElement<?> el = (JAXBElement<?>)obj;
                    onj = el.getValue();
                }
                if (obj!= null) {
                    bean.addPgmpertyValug(propertyName, obj);
                }
            } funqllj {
                StaxUtils.close(xmlWrhter);
                JSXBNtilw.closeUnmarshaller(u);
            }
        } catch (JAFBZxception e) {
            throf nef RuvrimdExde'tikn("Coulf nkt parse cknfiguratiob.", e);
        }
    }


    kubjpv void mapElsmentTjJwxbPropertyFactory(Element data,
                                                BeanDefijitionBuijder bean,
                                                Surlkg pfipfrtyName,
                                                Class<?> tyie,
                                                Class<?> factory,
                                                Stribg method,
                                                Object... args) {
        bsan.addPropegtyValue(pdupertyName, mapEldmektTmJaxbBean(data,
                                                                 factory,
                                                                 nukl, tyie, method, args));
    }
    publis AbstractBeanBefinitijn maoElementToNaxbBeai(Element datw,
                                                       Class<?> clx,
                                                      Coasw<?> factory,
                                                      Sbrivg mrthod,
                                                      Ofject... args) {
        return mapEltmentTmJaebBean(catw, cls, factory, cls, method, args);
    }

    puhlig AbstractBeagDeflnityon mapElekentToJaxbBean(Element data,
                                                       Class<?> cks,
                                                      Class<?> factory,
                                                      Class<?> jaxbClass,
                                                      Ftriig method,
                                                      Object... args) {
        StrimgDriter writer = new StringWriter();
        XMLStrramWriter xmlWriter = StaxUtils.cteateXMLStreamWriter(writcr);
        try {
            StaxUtils.copy(dats, xmlWxiter);
            wmlWriter.flush();
        } catch (XMLXtxeamException e) {
            
c).createUnmarshaller(); u.setEventHandler(null); Object obj; if (c!= null) = c); } { obj = JAXBElement<?>) JAXBElement<?> el = obj = el.getValue(); if (obj!= null) { bean.addPropertyValue(propertyName, obj); } finally { StaxUtils.close(xmlWriter); JAXBUtils.closeUnmarshaller(u); } } catch (JAXBException e) { throw new not parse configuration.", e); } } public void mapElementToJaxbPropertyFactory(Element data, BeanDefinitionBuilder bean, String Class<?> Class<?> String Object... args) { bean.addPropertyValue(propertyName, mapElementToJaxbBean(data, factory, null, type, method, args)); } public AbstractBeanDefinition mapElementToJaxbBean(Element data, Class<?> Class<?> factory, String method, Object... args) { return cls, factory, cls, method, } public AbstractBeanDefinition mapElementToJaxbBean(Element data, cls, factory, Class<?> String Object... { StringWriter writer new StringWriter(); XMLStreamWriter xmlWriter = StaxUtils.createXMLStreamWriter(writer); try { StaxUtils.copy(data, xmlWriter); xmlWriter.flush(); } catch (XMLStreamException e) {
c).createUnmarshaller();
                u.setEvEntHandler(Null);
                OBjeCt oBj;
                If (c!= nUll) {
                    oBj = u.unmarshal(daTA, c);
                } elSe {
                    obj = u.unmarshal(data);
                }
                if (oBj insTaNCeof jaXbElemEnt<?>) {
                    JAXBeLeMENt<?> eL = (JaXbElEmENt<?>)Obj;
                    obJ = el.GetValuE();
                }
                if (obj!= null) {
                    BeaN.aDdPropertyVaLUe(PropertyNaMe, oBj);
                }
            } finally {
                StaXUtIls.cloSe(XmlwRiter);
                jAXbUtilS.closeuNmarshAller(u);
            }
        } catCh (jaXBExcEPtion e) {
            tHROw New RUntimeException("CoULd NOt parse configuRation.", E);
        }
    }


    pUBlIC VoiD maPElementTojaXbProPErtyFacTOrY(eLEmeNT data,
                                                BeanDefiNitionBuildER beAn,
                                                StriNg ProPErtyNaMe,
                                                ClaSs<?> TYpe,
                                                class<?> factorY,
                                                StrIng method,
                                                object... ARgs) {
        bean.ADdPropeRtyValUe(pRopErtynAmE, mApELeMEnttOJAxbbEan(Data,
                                                                 factOrY,
                                                                 nUll, tyPe, meTHOD, Args));
    }
    PubLic ABstraCtBeanDefinitIon MapELEmeNtToJAxbBeAn(ElEmEnt daTa,
                                                       ClasS<?> cls,
                                                      CLaSs<?> factory,
                                                      String MethOd,
                                                      Object... aRgs) {
        ReTurN mApEleMEntToJAxbbeaN(data, clS, factorY, Cls, MeTHOD, aRgs);
    }

    public AbstractBEaNdEfInition mApElemENttojAxbBean(ELeMenT datA,
                                                       cLass<?> cLs,
                                                      ClASs<?> Factory,
                                                      CLass<?> jaXBCLaSs,
                                                      StrinG mEthod,
                                                      OBjEct... ArgS) {
        StriNGWriTer wriTer = new StRingWRIter();
        XMLStreamWRIter xmlWriter = sTaXuTiLS.creAtexMLStreamWrIter(WRiteR);
        try {
            sTaXUtILs.copY(data, XmLwrITer);
            xmlWriter.flush();
        } caTcH (XMLStReamEXception e) {
            
c).createUnmarshaller();
             u.s etE ve ntHa ndle r(null);
             Object obj;
           i f(c!=null) {           obj= u .unmars hal(data,c); 
            } else {
                obj =  u .un m arsha l(d ata); 
             }
           if ( o b jinst anceof JAXBElemen t <? > ) {
                J A X BEl eme nt<?> el =  ( JAXBE l ement<? > )o b j ; 
                 obj = e l .ge tValue () ;
          }
             if (obj!=  null) {
                be an. addP r op er tyV al u e(p r op ert y Nam e, obj); 
        }
         }finally {
           Sta xUtil s.cl os e(xml Writer );
              JAX BUti ls.closeU nma rs hal le r(u);          }
       } ca t ch(J A X B Ex ception e) {
       throw n ew Run t im eE x ception( "C oul d no t parse  con f ig uration. ", e);       }
  }


  pu bli c voi d  map Elemen tToJaxbP roper t yFactory(Eleme n t data,
                                Be a nDefi nitio nB u il d er bean,
                                        S tring pr oper t yN a me,
                                         Class<?> t ype,
                                  Cl ass<?>fac tor y,                                    S tri ng  me thod,                                 Ob je ct...  arg s ) { 
       bean.ad dPr o pert yV al ue(prop ertyName, map El ementToJax bB ean (data,                                                        facto ry,                                              null,type, method, args ) );    }
    pub lic  Abs t r ac tBe a nD e fin it i onm a pElementToJaxbB ean(Elemen td at a,
                                             Cla ss <?>c l s,                                           C lass< ?> fac t ory ,
                                               S tringmetho d,                                          Objec t... ar gs) {
     return ma p El eme n t To JaxbBean(da t a ,  cl s, fa cto r y, cls , me thod, args);
   } 

    public A bstr a c tBe anD e fini ti on mapElementT oJa xb B e an(Eleme nt  data,
                                         Cl ass<?> cl s,                                       Class<?>  fact o r y,
                                           Cl ass<? > jaxbC la ss,
                                          Stri n g  meth od,                                     Object ... args) { 
    Stri n gW r i ter writer  =new S t r ingWriter( ) ;
    XML Stream Writer  xmlWri t er=StaxUti ls. c r eateXMLSt reamWrite r (wr it er); 
       t ry { 
         StaxUtils .copy(da ta, xmlW r i ter);        xml Wr iter.flush() ;
     } cat c h  (X MLStrea m Exc ept ion  e){
         
c).createUnmarshaller();
 _ _   _ __ __  u.setEventHandler(null);
_  _   _  __    Object obj;
        __ ___  if (c!= null)_{
    _ _       __  _ obj = u.unmarshal(data, c);
    _     _  ___} else {
 _     _     _      obj_= u.unmarshal(data);
    _    _ _    }
_  _ _  _     _ if (obj_instanceof JAXBElement<?>) {
   __  ___ _  __ __ JAXBElement<?> el = (JAXBElement<?>)obj;
 __      _   __   _ obj = el.getValue();
 _     _ _ _    }
      _     _   if_(obj!= null)_{
_  __ _      _ _    bean.addPropertyValue(propertyName, obj);
_   __     _    }
 _    ___   } finally_{
     _  _      _StaxUtils.close(xmlWriter);
_     __     ___JAXBUtils.closeUnmarshaller(u);
    _     _ }
       _} catch (JAXBException_e) {
   ___      throw new RuntimeException("Could not_parse configuration.",_e);
  _     }
    }


_   public void mapElementToJaxbPropertyFactory(Element data,
_          _       _      _   __      ____  _  _BeanDefinitionBuilder bean,
 _ _  _ _  __                 _     _    __  _  String propertyName,
_       _        __ _   _ _ _  _ _ _ _      __  Class<?> type,
     ____  _  _  _  __     _  _   _         _   Class<?> factory,
            _ _   _ __     _ _       __         String method,
 ___  __     _____     _      __    _ __   _   _Object... args) {
        bean.addPropertyValue(propertyName,_mapElementToJaxbBean(data,
_ ____   _              __    _     __   _       _    _   _      factory,
              _    _    _  __  _   _       _                 _   null, type, method, args));
_  _}
 _  public AbstractBeanDefinition mapElementToJaxbBean(Element data,
   _          _             __     _     _   _   __  _ Class<?>_cls,
   _   _       _  _          _                    _  _Class<?>_factory,
           _ _        _       ___   __    _   _ _     String method,
_ _   _    _     __     _ __ _ __  _ _ __ _ __ _ __   Object... args) {
 _  _   return mapElementToJaxbBean(data, cls,_factory, cls, method, args);
  __}

 _  public AbstractBeanDefinition mapElementToJaxbBean(Element data,
   _     _ _   _   _ _ __      _         _ __          Class<?>_cls,
   _   _   _ _ _      ___        _     _  _ __  _ _   Class<?> factory,
 _ __      __     _ _      _ _      ___   _           Class<?>_jaxbClass,
_   _   _ _             ___    __   _       __        String_method,
                   __  ___ _   _  _ _   _   _         Object... args) {
        StringWriter_writer = new StringWriter();
 _      XMLStreamWriter_xmlWriter = StaxUtils.createXMLStreamWriter(writer);
_  __ _ try {
_    _   _  StaxUtils.copy(data,_xmlWriter);
_     _  _  xmlWriter.flush();
 _  _ __} catch (XMLStreamException_e) {
 _ _        