1擎鸠、? [endif]業(yè)務(wù)適配(business.yang)
[if !supportLists]l?[endif]定義業(yè)務(wù)適配模型腹暖,普通java
bean劣领,該bean的結(jié)構(gòu)作為配置框架輸入的結(jié)構(gòu)婿奔,配置框架會(huì)將輸入的json字符串反序列化為bean的實(shí)例。
[if !supportLists]l?[endif]添加業(yè)務(wù)適配yang模型器净,該yang模型作為配置框架存儲(chǔ)數(shù)據(jù)的基本結(jié)構(gòu)型雳,下圖展示幾種模型的關(guān)系。
[if !supportLists]l?[endif]添加業(yè)務(wù)適配處理類,繼承自AbstractHandler四啰,按照業(yè)務(wù)需要覆蓋必要方法宁玫,核心就是上圖中紅色的方法。
[if !supportLists]l?[endif]添加設(shè)備初始能力記錄
t_campus_cfgframe_capability
2柑晒、? [endif]網(wǎng)元適配(adapter.yang)
[if !supportLists]l?[endif]定義設(shè)備適配yang模型欧瘪,該模型作為設(shè)備適配的底層模型,需要和設(shè)備的yang模型結(jié)構(gòu)保持一致匙赞,方便生成報(bào)文佛掖,該模型中所有節(jié)點(diǎn)的名稱都不能重復(fù),否則生成報(bào)文時(shí)取值會(huì)出現(xiàn)異常涌庭。
[if !supportLists]l?[endif]添加設(shè)備適配處理類芥被,該類繼承自AbstracterInterpreter,并且必須以ConfigInterpreter結(jié)尾坐榆,該類的主要方法是將業(yè)務(wù)適配yang模型數(shù)據(jù)轉(zhuǎn)換為設(shè)備適配yang模型數(shù)據(jù)拴魄,接口申明如下
??? DataObject convertToAdapterConfig(DataObjectissuedConfig) throws BaseException;
[if !supportLists]l?[endif]定義設(shè)備適配映射文件,該文件已-adapter.xml結(jié)尾席镀。
3匹中、? [endif]報(bào)文映射
報(bào)文映射的主要原理是根據(jù)DataObject生成json數(shù)據(jù),然后把json生成xml文件豪诲,最后根據(jù)目標(biāo)yang文件的模型名稱和字段映射關(guān)系將xml文件填入netconf報(bào)文中顶捷。