Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parSerge Fevre Modifié depuis plus de 10 années
1
NC1 (ref c2) gère des PNames { id(NCB4NC), id (Serialized) } NC1 n’interprète pas l’id Serialized NCB4NC gère des PNames { id(NCB23), id (array of Bytes) } l’array de Bytes étant incompréhensible par NCB4NC NCB23 gère des PNames { id String } (encodeBytes) Cette String est la concaténation de « B2 », « C2 », et 123 et est interprétée par NCB23 NC2 (=PClassMapping de C2 dans B2) gère des PNames { id int } ; pour O2 = 123 encodeString(id) -> «123 » o1 de c1 { a c2 } o2 de c2 { id = 123 } B2B3 B4 B1 export/resolve
2
NC1 (ref c2) PNames de type PNameNC1 {NCinfo, att1, att2} (PNGC1(NCinfo, att1, att2)) export(pNameB4NC) { myPNGC1 = new PNGC1() ; pNameB4NC.getNamingContext().encodeAbstract(myPNGC1, pNameB4NC); return new PNameNC1(this, myPNGC1(NCinfo, att1, att2)) ; } resolve(pNameNC1) { NCB4NC = mapper.getNC(« C2 », pNameNC1); // le NC de C2 dans ce mapper, // NCC2, utilise la partie NCinfo de pNameNC1 pour retrouver l ’instance réelle de NC ici NCB4NC return NCB4NC.decodeAbstract(new PNGC1(pNameNC1) ) ; } encodeAbstract(PNGC1, PNameNC1 ; decodeAbstract(PNGC1) ; encodeAbstract(PNGC2B1, PNameNC1) ; decodeAbstract(PNGC2B1) ; NCB4NC PNames de type PNameB4NC : { NCinfo, att1, att2 } (PNGB4NC(NCinfo, att1, att2)) export(pNameB2) { pNameB2.getNamingContext().encodeAbstract(myPNGB4NC, pNameB2); return new PNameB4NC (this, myPNGB4NC) ; } resolve(pNameB4NC) { NC2 = mapper.getNC(« C2 », pNameB4NC); // mapper + NCinfo return NC2.decodeAbstract(new PNGB4NC(pNameB4NC)) ; } encodeAbstract(PNGC1, PNameB4NC); decodeAbstract(PNGC1); encodeAbstract(PNGB4NC, PNameB4NC); decodeAbstract(PNGB4NC); NC2 (=PClassMapping de C2 dans B2) PNames de type PNameB2{att1, att2} encodeAbstract(PNGB4NC, PNameB2) ; decodeAbstract(PNGB4NC) ; encodeAbstract(PNGB2, PNameB2); decodeAbstract(PNGB2); export/resolve PNG : PNameGetter o1 de c1 {a c2 } B1 PNGC1(total) B4 NC4 NCC2 NCB5 B2 o2 de c2 {att1 ; att2} PNGB2 o de c2 {int} B5 o de c2 {att1, att2} PNGB5 getNC(NCInfo)
3
NC1 (ref c2) PNames de type PNameNC1 {NCinfo, att1, att2} (PNGC1) export(pNameB2) { myPNGC1 = new PNGC1() ; pNameB2.getNamingContext().encodeAbstract(myPNGC1, pNameB2); return new PNameNC1(this, myPNGC1) ; } resolve(pNameNC1 (sans NCInfo)) { NC2 = mapper.getNC(« C2 », myPNGC1(sansNCInfo)); //le NC de C2 dans ce mapper ne peut gerer qu’un seul NC (pas de NCInfo)) return NC2.decodeAbstract(new PNGC1(pNameC1)) ; } encodeAbstract(PNGC1, PNameNC1) ; decode Abstract(PNGC1) NC2 (=PClassMapping de C2 dans B2) PNames de type PNameB2{ att1, att2 } (PNGB2) encodeAbstract(PNGC1, PNameB2) ; decode Abstract(PNGC1) encodeAbstract(PNGB2, PNameB2) ; decode Abstract(PNGB2) o1 de c1 {a c2 } B1 export/resolve PNG : PNameGetter PNGC1 sans NCinfo NCC2 == NC2 B2 o2 de c2 {att1 ; att2} PNGB2
4
NC2 (=PClassMapping de C2 dans B2) PNames de type PNameB2{ att1, att2 } (PNGB2) encodeAbstract(PNGC1, PNameB2) {return PBinder.encodeAbstract(PNGC1, PNameB2) }; decode Abstract(PNGC1) {return PBinder.decodeAbstract(PNGC1, this) }; encodeAbstract(PNGB2, PNameB2) ; decode Abstract(PNGB2) PNG : PNameGetter PBinder Par Délégation PNames de type PNameB2 {att1, att2 } (PNGB2) export(PBinding) { return new PNameNC1(PBinding.getPClassMapping(), PBindingValues) ; } resolve(pNameNC1) { NC2 = mapper.getNC(« C2 », myPNGC1(sansNCInfo)); //le NC de C2 dans ce mapper ne peut gerer qu’un seul NC (pas de NCInfo)) return NC2.decodeAbstract(new PNGC1(pNameC1)) ; } encodeAbstract(PNGC1, PNameB2) {PNGC1.setAtt1(PNameB2.getAtt1) ;.....} decode Abstract(PNGC1, PClassMapping) { } encodeAbstract(PNGB2, PNameB2) ; decode Abstract(PNGB2, PClassMapping) o1 de c1 {a c2 } B1 export/resolve PNGC1 sans NCinfo
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.