综合二区_欧美成人综合_欧美成人二区_a黄视频_亚洲视频在线播放_一区二区三区视频免费看

µ±Ç°Î»ÖãºÊ×Ò³ > ÍøÕ¾¾ÉÀ¸Ä¿ > ѧϰ԰µØ > Éè¼ÆÈí¼þ½Ì³Ì > EMF¿ª·¢Ö¸ÄÏÖ®¿Í»§¶Ë±à³Ì

EMF¿ª·¢Ö¸ÄÏÖ®¿Í»§¶Ë±à³Ì
2010-01-14 22:44:56  ×÷Õß:  À´Ô´:
¡ïemf ÔËÐÐʱ±à³Ì
¡ïͨ¹ýpackageºÍfactoryÎÒÃÇ¿ÉÒԷdz£·½±ãµÄÈ¡µÃclassµÄmetamodelÐÅÏ¢£¬²¢ÇÒ´´½¨class instance¡£
¡ïEClass£¬EPackage£¬EFactoryÌṩÁËһЩͨÓõķ½·¨£¬ÓÉ´ËÅÉÉú¶øÀ´µÄclass£¬package£¬factoryÔòÌṩÁ˸ü¶à±ãÀûµÄ·½·¨ÒÔ¹©ÎÒÃÇʹÓá£
¡ï·ÃÎÊÖ¸¶¨µÄclass³ýÁËͨ¹ýpackageµÄgetXxxx()·½·¨Ö®Í⣬»¹¿ÉÒÔÈ¡µÃÄÇЩûÓÐgeneratedµÄclass£¬ÆäÓ÷¨ÊÇXxxxPackage.getEClassifier("Yyyyy")¡£
¡ïͨ¹ýpackage£¬ÎÒÃÇ¿ÉÒÔ±éÀú·ÃÎÊËùÓеÄclass£¨ÒÔ¼°attribute£¬reference£¬operation£©£¬datatype£¬enumeration
¡ï·ÃÎÊpackageÖÐËùÓеÄÀàʹÓÃEPackage.getEClassifiers()·½·¨£¬±éÀúEClassËùÓÐÊôÐÔÓÃEClass.getEAttributes()·½·¨£¬±éÀúreferenceÓÃEClass.getEReferences()·½·¨
¡ïͨ¹ýpackage´´½¨Öƶ¨ÀàʵÀýµÄ¼¸ÖÖ×ö·¨£ºµÚÒ»ÖÖ¾ÍÊÇʹÓÃXxxxPackage.createYyyy()£»µÚ¶þÖÖÔòÊÇÏÈͨ¹ýXxxxPackage.eINSTANCE.getYyyyy()ÕâÖÖ·½Ê½µÃµ½Ïà¹ØµÄʵÀýÀ࣬ÒÔ¼°XxxxFactory.eINSTANCEµÃµ½factoryʵÀý£¬×îºóʹÓÃxxxxFactory.create(yyyyClass)´´½¨ÊµÀý¡£
¡ïͨ¹ýÒ»¸ö¸ø¶¨µÄclass nameºÍÏà¹ØµÄpackage uri´´½¨ÀàʵÀý£¬Ò»°ãΪÁ˵õ½ÀàʵÀý£¬ÎÒÃÇÐèÒªµÃµ½classÒÔ¼°factory£¬¶øÕâЩ¶¼¿ÉÒÔͨ¹ýpackageÈ¡µÃ£¨Í¨¹ýgetEClassifier()ºÍgetEFactoryInstance()·½·¨£©
¡ïEPackageÊǶÔecore xmlÎļþµÄÒ»¸öÐòÁл¯¶ÔÏó£¬Òò´Ë¿ÉÒÔÖ±½ÓʹÓÃresouce£¬´ÓÒ»¸öecoreÎļþµÃµ½package¶ÔÏó£¬Êµ¼ÊÉÏÕâÊÇÒ»ÖֱȽϵײãµÄ×ö·¨£¬Í¨³£ÎÒÃDz»ÕâÑù×ö£¬¶øÊÇͨ¹ýʹÓÃPackageµÄRegistryÀ´Ó³Éäµ½¸ø¶¨uriµÄpackage¶ÔÏó£¬Registry´Ójava.util.Map¼Ì³Ð¶øÀ´£¬Í¨¹ýuri¸úÒ»¸öPackage»òÕßPackage.Discriptor¹ØÁª£¬ÕâÀïµÄDiscriptorÖ÷ÒªÔÚpluginģʽÏÂʹÓ㬳ý·ÇÕæµÄÐèÒªPackage£¬·ñÔòÔÚ³õʼ»¯µÄʱºò½«Discriptor×¢²áµ½RegistryÖС£ÔÚÐèҪʹÓÃPackageµÄʱºò£¬Ôòͨ¹ýDiscriptorÀ´È¡µÃ£¨Í¨¹ýµ÷ÓÃÆägetEPackage()·½·¨£©£¬Í¨¹ýEPackage ePackage = EPackage.Registry.INSTANCE.getEPackage(packageNsURI)·½·¨£¬Îҵõ½ÁËpackage£¬½Ó×ŵõ½class nameºÍfactoryÒÔ¼°×îÖÕËùÐèÒªµÄclass instance¾ÍÒ×Èç·´ÕÆÁË¡£
¡ïemf presistence framework
¡ïemfµÄ³Ö¾Ã»¯»úÖÆÖ÷ÒªÎ§ÈÆ4¸ö½Ó¿Ú£ºResource£¬ResourceSet£¬Resource.Factory£¬ URIConvertor¡£Í¨¹ýÕâ4¸ö½Ó¿Ú±ã¿ÉÒÔʵÏÖemf modelµÄ¼ÓÔØºÍ±£´æ
¡ïURI ͳһ×ÊÔ´±êʶÊÇÒ»¸ö±êʶºÍ¶¨Òå¸÷ÖÖÀàÐÍ£¨Îļþ¡¢ÍøÂç¡¢Êý¾Ý¿â¡¢Îļþ¶ÔÏóÒÔ¼°Êý¾ÝÁ÷£©×ÊÔ´¿ª·Å±ê×¼¡£Ò»¸öURIÓÉÈý²¿·Ö×é³É£ºscheme£¬scheme-specificÒÔ¼°fragment£¨¿ÉÑ¡£©¡£org.eclipse.emf.common.util.URIÊǶÔURIµÄÒ»ÖÖ·â×°£¬scheme±êʶ·ÃÎÊresourceЭÒ飬ÎļþΪfile£¬jarΪjar£¬eclipseΪplatform
¡ïfile:/c:/dir1/dir2/myfile.xmlºÍfile:///c:/dir1/dir2/myfile.xml±íʾµÄ×ÊÔ´ÊÇͬһ¸ö£¬µ«ÊÇÈ´ÊDz»Í¬µÄURI¶ÔÏó
¡ïscheme-specificÓÉauthority£¬deviceÒÔ¼°ÆäËûµÄsegment×é³É£¬authorityÓÉ//´òÍ·£¬deviceºÍsegment¶¼ÊÇÒÔ/´òÍ·£¬uriÖдÓ#¿ªÊ¼Íùºó¶¼ÊÇfragment
¡ïemfʹÓôøÓÐfragmentµÄURI¾Í¿ÉÒÔÒýÓõ½Ö¸¶¨µÄEObject
¡ïURIConvertor ÓÃÀ´½«Ò»¸öuri¸úÒ»¸öʵ¼ÊµÄuri½¨Á¢Ó³Éä¹ØÏµ£¬±ÈÈ罫һ¸önamespace uri£¨http:///com/example/epo2.ecore£©Ó³ÉäΪһ¸öÎïÀíuri£¨platform:/resource/project/somemodel.ecore£©£¬Ëü»¹ÓÐÒ»¸ö¹¦ÄܾÍÊÇnormalize£¬Ò²¾ÍÊÇconvertµÄÒâ˼£¬Ã»Ã÷°×Õâ¸ö»úÖÆ
¡ïURIConvertorÌṩcreateInputStream() and createOutputStream()Á½¸ö·½·¨£¬ÓÃÀ´ÔÚÖÆ¶¨µÄuriÉÏ´ò¿ªÁ½¸öinputºÍoutput stream¡£
¡ïResouce±íʾһ¸öEObject¼¯ºÏµÄ³Ö¾ÃÈÝÆ÷£¬¿ÉÒÔͨ¹ýURIÀ´½øÐж¨Î»£¬Resource.getContents()µÄadd·½·¨ÏòÒ»¸öResourceÌí¼ÓÒ»¸öEObject£¬Ò²¿ÉÒÔͨ¹ý¸øÈÝÆ÷ÀàÐ͵ĹØÁªÌí¼ÓÒ»¸öÒýÓÃÀ´¸øResourceÌí¼ÓÒ»¸öEObject£¬Resource±È½ÏÖØÒªµÄÊÇsave()ºÍload()·½·¨£¬ÕâÁ½¸ö·½·¨¶¨ÒåÁ˳־û¯µÄ¸ñʽ£¬»¹ÓÐgetEObject()ºÍgetURIFragment()·½·¨ÔòÓÃÀ´Ê¹ÓÃURI²éÕÒ¶ÔÏó
¡ïsaveºÍload·½·¨µÄʵÏÖ»úÖÆ£ºÊ×ÏÈʹÓÃURIConvertor½«Ö¸¶¨µÄuri½øÐÐת»»£¬È»ºó´ò¿ªÏàÓ¦µÄstream£¬½Ó×ŵ÷ÓÃdoSaveºÍdoLoad·½·¨£¬ÕâЩ·½·¨½»¸ø×ÓÀàȥʵÏÖ£¬ÔÚsaveºÍloadÁ½¸ö·½·¨µ÷ÓÃÖлᴫһ¸ömap²ÎÊý£¬Õâ¸ö²ÎÊýÓÃÀ´¿ØÖÆsaveºÍloadµÄÐÐΪ
¡ïResource.Factory ÓÃÀ´´´½¨resoruce¶ÔÏóµÄ£¬ËùÓеÄfactory¶¼Ê¹ÓÃÒ»¸ömapµÄregistryÀ´¼ÓÒÔ¹ÜÀí£¬¸úpackageµÄregistryÒ»ÑùµÄ×ö·¨£¬²»Í¬Ö®´¦ËüÊǸù¾Ýuri schemeÒÔ¼°extensionÀ´½øÐзÖÀà×¢²áµÄ¡£ÔÚpluginÖÐĬÈÏÇé¿öÏÂËùÓеÄemf model¶¼Ê¹ÓÃXMIResourceFactoryImpl£¬Èç¹ûÒª×Ô¶¨Òåfactory£¬¿ÉÒÔͨ¹ýÌí¼ÓÀ©Õ¹µãorg.eclipse.emf.ecore.extension_parser£¬²¢Ö¸¶¨×Ô¼ºµÄfactoryʵÏÖ£¬Ò»°ãÇé¿öÏÂresource factoryÖ»ÊÇÓÃÀ´¸øresourcesetÀ´Ê¹ÓÃ
¡ïResourceSet ÓÃÀ´¹ÜÀíÒѾ­loadºÍcreateµÄresource¼¯ºÏ£¬Ö÷ҪʹÓÃcreateResource()£¬getResource()£¬getEObject()Õ⼸¸ö·½·¨¡£createResource()ÓÃÓÚÔÚsetÖд´½¨Ò»¸ö¿ÕµÄresource¶ÔÏó£¬getResource()Ò²»áÏÈ´´½¨Ò»¸öResource£¬È»ºóÓÃÖ¸¶¨µÄresource URIÈ¥¼ÓÔØÖ¸¶¨µÄresource£¬getEObject()ÔòÔÚÒÑÓеÄresource£¨»òÕ߸ù¾Ýuriµ÷ÓÃgetResource()·½·¨ÏȼÓÔØresource£©Öиù¾ÝÐèÒª¼ÓÔØEObject£¬
¡ï³ýÁË¿ÉÒÔÖ±½Óͨ¹ýnewÒÔ¼°resource.factoryµÄcreateResource()·½·¨À´´´½¨resource¶ÔÏóÖ®Í⣬Ҳ¿ÉÒÔͨ¹ýµ÷ÓÃResourceSetµÄgetResource() and createResource()·½·¨À´´´½¨£¨ÆäÄÚ²¿»áµ÷ÓÃresource.factoryµÄÏàÓ¦·½·¨£©£¬ÕâÑù×öµÄÒ»¸öÖØÒªÔ­ÒòÊÇËüÄܹ»¸ú×Ùij¸öuriÊÇ·ñÒѾ­±»´ò¿ª£¬ÕâÑù¿ÉÒÔ±ÜÃâÄÚ´æÀïÃæ³öÏÖÁ½·ÝÒ»ÑùµÄresource£¬resource set»¹¿ÉÒÔ°´Ðè¼ÓÔØµ±Ç°resource¶ÔÁíÍâÒ»¸öresourceµÄÒýÓÃ
¡ïʹÓÃResourceSetµÄʱºòÐèÒªresourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(Resource.Factory.Registry.DEFAULT_EXTENSION,new  XMIResourceFactoryImpl());ÕâÑùÉèÖÃÒ»°Ñ£¬·ñÔò»áÒòΪÕÒ²»µ½rsourceFactory¶øÎÞ·¨Ê¹ÓÃresource
¡ï
¡ïemf resource implementation
¡ïÔÚÉú³ÉÒ»¶ÔÒ»µÄÊôÐÔµÄʱºò£¬»áÔÚµ±Ç°½ÚµãÉÏÒÔattributeµÄÐÎʽÌí¼Ó
¡ïÔÚÉú³ÉÒ»¶Ô¶àµÄÊôÐÔµÄʱºò£¬»áÔÚµ±Ç°½ÚµãÖÐÒÔ×Ó½ÚµãµÄ·½Ê½Ìí¼ÓÊôÐÔ
¡ïÔÚÉú³É°üº¬¹ØÏµµÄÒýÓõÄʱºò£¬»áÔÚµ±Ç°½ÚµãÖÐÒÔ×Ó½ÚµãµÄ·½Ê½Ìí¼ÓÒýÓýڵã
¡ïÔÚÉú³É·Ç°üº¬¹ØÏµµÄÒýÓõÄʱºò£¬»áÔÚµ±Ç°½ÚµãÖÐÒÔattributeµÄÐÎʽÒýÓÃ×Ó½ÚµãµÄfragment£¬µ«ÊÇÈç¹ûÉèÖÃÔÚ±»°üº¬ÒýÓõÄiDÊôÐԵϰ£¬Ôò²ÉÓÃidµÄ·½Ê½¼ÓÒÔÒýÓá£
¡ïÔÚ´´½¨½»²æÒýÓõÄʱºòÐèÒª°ÑresourceµÄsave·ÅÔÚËùÓÐresourceÉú³ÉÖ®ºó¡£½»²æÒýÓÿÉÒÔʹÓÃÏà¶Ô·¾¶Ò²¿ÉÒÔʹÓþø¶Ô·¾¶£¬µ«ÊÇÏà¶Ô·¾¶¸üºÃһЩ£¬ÒòΪ¿ÉÒÆÖ²ÐÔ¸üºÃ£¬Òª×öµ½Ê¹ÓÃÏà¶Ô·¾¶ÒýÓã¬ÔòÐèÒªÔÚ´´½¨resourceµÄʱºòʹÓþø¶Ôuri·¾¶
¡ïÈç¹ûÒýÓôæÔڼ̳йØÏµ£¬ÄÇô¶ÔÓÚÒýÓõľßÌå×ÓÀ࣬»áÔÚÉú³ÉµÄxmlÖÐÌí¼Óxmi:typeÊôÐÔÀ´±íÃ÷¾ßÌåÒýÓõÄÊÇÄĸö×ÓÀà
¡ï
¡ïxmlÊä³öµÄ¶¨ÖÆ
¡ïOPTION_DECLARE_XMLΪfalse±êʶûÓÐxmlÍ·ÉùÃ÷
¡ïOPTION_LINE_WIDTHºÃÏñûÓÐЧ¹û
¡ïOPTION_USE_ENCODED_ATTRIBUTE_STYLE ΪtrueÔò×ÜÊÇʹÓÃuri·½Ê½À´½øÐÐÒýÓÃ
¡ïOPTION_SKIP_ESCAPEΪtrue£¨Ä¬ÈÏΪtrue£©±íʾÕë¶ÔתÒå×Ö·û£¨<£¬>£¬&£©½øÐÐת»»
¡ïOPTION_XML_MAP ÓÃÀ´½«Öƶ¨µÄ½ÚµãÄÚÈݽøÐÐת»»
¡ïOPTION_ENCODINGΪxmlÉèÖÃ×Ö·û¼¯
¡ïxmlÊäÈë¶¨ÖÆ
¡ïOPTION_DISABLE_NOTIFY ΪtrueÈ¡Ïû´¥·¢Í¨Öª
¡ïOPTION_XML_MAP ÔÚsaveµÄʱºòʹÓÃÁËOPTION_XML_MAP£¬ÄÇôÔÚloadµÄʱºòҲҪʹÓÃ
¡ï
¡ïadapter±à³Ì
¡ï¸øÒ»¸ömodel objectÌí¼ÓÒ»¸öadapterÓÐÈýÖÖ·½Ê½£ºµÚÒ»ÖÖͨ¹ýmodel objectµÄeAdaptersÊôÐÔ½«Ò»¸öadapter¸úmodel¹ØÁªÆðÀ´£»µÚ¶þÖÖͨ¹ýadapter factoryµÄadapt·½·¨½«Ò»¸öadapterÓëÒ»¸ömodel object¹ØÁªÆðÀ´£»µÚÈýÖÖͨ¹ýÀ©Õ¹ÒÑÓеÄadapter factory´´½¨Öƶ¨ÀàÐ͵ÄadapterÀ´Óëmodel object¹ØÁª¡£
¡ïNotificationÓÃÀ´·âװ֪ͨÐÅÏ¢£¬ÕâÀï³ýÁËgetNotifier()·½·¨·µ»ØÍ¨ÖªµÄ·¢ËÍÕßÖ®Í⣬»¹°üÀ¨Í¨ÖªµÄÀàÐÍ£¬·¢Éú¸Ä±äµÄfeature£¨¼´ feature id£©£¬¸Ä¶¯Ç°ºóµÄÖµ£¬Èç¹ûÐèÒªÆÁ±Îµô·Ç״̬¸Ä±äµÄ֪ͨ£¬Ôò¿ÉÒÔʹÓÃisTouch()·½·¨À´ÊµÏÖ¡£
¡ïͨ¹ýadapter³ýÁË¿ÉÒÔ¸øÒ»¸ömodel objectÌí¼ÓÒ»¸ö¼àÌýÆ÷Ö®Í⣬»¹¿ÉÒÔÓÃÀ´¸ømodel objectÔö¼ÓһЩ¹¦ÄÜ¡£Æä×ö·¨ÊÇÏȶ¨ÒåÒ»¸öÐèҪʵÏÖ¹¦ÄܵĽӿÚ£¬È»ºóʵÏָýӿڲ¢À©Õ¹AdapterImplʵÏÖÒ»¸öAdapter£¬²¢´´½¨Ò»¸öadapter factoryÀ´¸ºÔð´´½¨¸Ãadapter£¬×îºóͨ¹ýadapter factoryµÄadapt()·½·¨½«model objectÓëÇ°Ãæ¶¨ÒåµÄ½Ó¿Ú¹ØÁªÆðÀ´£¬ÕâÑùmodel object¾Í±»À©Õ¹³É¾ßÓиýӿڵÄһЩ¹¦ÄÜÁË¡£

°²»ÕлªµçÄÔѧУרҵְҵ¹æ»®Ê¦ÎªÄãÌṩ¸ü¶à°ïÖú¡¾ÔÚÏß×Éѯ¡¿
Ö÷Õ¾Ö©Öë³ØÄ£°å£º 国产欧美综合视频 | 9191成人精品久久 | 免费人成网 | 亚洲中国字幕 | 99国产精品久久久久久久床豆 | 久久av片免费一区二区三区 | 91高清在线观看 | 免费亚洲精品 | 啊啊啊,好多水 | 久久久久久国产精品久久 | 国产麻豆精品在线观看 | 91在线www | 午夜免费福利视频 | 国产福利小视频在线 | 国产福利视频在线 | 99久久久久久国产精品 | 天天操夜夜撸 | 久优草 | 国产综合不卡 | 二区三区在线 | 亚洲免费视频一区二区三区 | 在线电影91| 免费观看麻豆视频 | 91亚洲综合| 亚洲中国字幕 | 99产精品成人啪免费网站 | 夜草影院 | 91观看在线视频 | 91成人影院在线观看 | 亚洲最大福利视频 | 国产一区二区三区免费观看在线 | 亚洲久艹 | 国产深夜 | 大伊人狠狠躁夜夜躁av一区 | 九色视频精品 | 国产成人精品一区二 | 午夜成人免费视频 | 偷拍福利视频一区二区三区 | 一区二区三区免费视频网站 | 中文精品一区 | 国产区在线看 |