package org.openiot.lsm.functionalont.ops; import org.openiot.commons.osdspec.model.OAMO; import org.openiot.commons.osdspec.model.OSDSpec; import org.openiot.commons.osdspec.model.OSMO; import org.openiot.commons.osdspec.model.PresentationAttr; import org.openiot.commons.osdspec.model.Widget; import org.openiot.commons.sparql.protocoltypes.model.QueryRequest; import org.openiot.lsm.schema.LSMSchema; import org.openiot.lsm.sdum.model.beans.OAMOBean; import org.openiot.lsm.sdum.model.beans.OSDSpecBean; import org.openiot.lsm.sdum.model.beans.OSMOBean; import org.openiot.lsm.sdum.model.beans.PresentationAttrBean; import org.openiot.lsm.sdum.model.beans.QueryControlsBean; import org.openiot.lsm.sdum.model.beans.QueryRequestBean; import org.openiot.lsm.sdum.model.beans.ReqPresentationBean; import org.openiot.lsm.sdum.model.beans.UserBean; import org.openiot.lsm.sdum.model.beans.WidgetBean; import org.openiot.lsm.sdum.model.entities.OAMOEnt; import org.openiot.lsm.sdum.model.entities.OSDSpecEnt; import org.openiot.lsm.sdum.model.entities.OSMOEnt; import org.openiot.lsm.sdum.model.entities.PresentationAttrEnt; import org.openiot.lsm.sdum.model.entities.QueryControlsEnt; import org.openiot.lsm.sdum.model.entities.QueryRequestEnt; import org.openiot.lsm.sdum.model.entities.ReqPresentationEnt; import org.openiot.lsm.sdum.model.entities.UserEnt; import org.openiot.lsm.sdum.model.entities.WidgetEnt; public class SchedulerOps { public static String registerService(OSDSpec osdSpec) { UserBean userBean = new UserBean(); userBean.setId(osdSpec.getUserID()); OSDSpecBean osdspecBean = new OSDSpecBean(); osdspecBean.setId(null); // original spec doesn't have an id osdspecBean.setUserBean(userBean); for(OAMO oamoFrmOSDSPEC : osdSpec.getOAMO()) { OAMOBean oamoBean = new OAMOBean(); oamoBean.setId(oamoFrmOSDSPEC.getId()); oamoBean.setDescription(oamoFrmOSDSPEC.getDescription()); oamoBean.setGraphMeta(oamoFrmOSDSPEC.getGraphMeta()); oamoBean.setName(oamoFrmOSDSPEC.getName()); for(OSMO osmo : oamoFrmOSDSPEC.getOSMO()) { OSMOBean osmoBean = new OSMOBean(); osmoBean.setId(osmo.getId()); osmoBean.setDescription(osmo.getDescription()); osmoBean.setName(osmo.getName()); osmoBean.setOamoBean(oamoBean); QueryControlsBean qControls = new QueryControlsBean(); qControls.setReportIfEmpty(osmo.getQueryControls().isReportIfEmpty()); osmoBean.setQueryControlsBean(qControls); for(QueryRequest qReq : osmo.getQueryRequest()) { QueryRequestBean qReqBean = new QueryRequestBean(); qReqBean.setId(null); //original spec doesn't have an id qReqBean.setQuery(qReq.getQuery()); qReqBean.setOsmoBean(osmoBean); osmoBean.getQueryRequestBean().add(qReqBean); } ReqPresentationBean reqPreBean = new ReqPresentationBean(); reqPreBean.setId(null); // original spec doesn't have an id reqPreBean.setOsmoBean(osmoBean); for(Widget widget : osmo.getRequestPresentation().getWidget()) { WidgetBean wBean = new WidgetBean(); wBean.setId(widget.getWidgetID()); wBean.setReqPresentationBean(reqPreBean); for(PresentationAttr preAttr : widget.getPresentationAttr()) { PresentationAttrBean preAttrBean = new PresentationAttrBean(); preAttrBean.setId(null);// original spec doesn't have an id preAttrBean.setName(preAttr.getName()); preAttrBean.setValue(preAttr.getValue()); wBean.getPresentationAttrBeanList().add(preAttrBean); } reqPreBean.getWidgetBeanLsit().add(wBean); } osmoBean.setReqPresentationBean(reqPreBean); oamoBean.getOsmoBeanList().add(osmoBean); } osdspecBean.getOamoBeanList().add(oamoBean); } ////////////////////////////////////////////////////////////// UserEnt usrEnt = new UserEnt(); usrEnt.setUserBean(userBean); // usrEnt.createClassIdv(); OSDSpecEnt specEnt1 = new OSDSpecEnt(osdspecBean,usrEnt); // specEnt1.createClassIdv(); specEnt1.createPosdpsecOfUser(); //linking osdspec with user for(OAMOBean oamoBean : osdspecBean.getOamoBeanList()) { OAMOEnt oamoE = new OAMOEnt(oamoBean,specEnt1); // oamoE.createClassIdv(); oamoE.createPoamoDescription(); oamoE.createPoamoGraphMeta(); oamoE.createPoamoName(); oamoE.createPoamoOfOSDSpec(); for(OSMOBean osmoBean : oamoBean.getOsmoBeanList()) { OSMOEnt osmoE = new OSMOEnt(osmoBean,oamoE); // osmoE.createClassIdv(); osmoE.createPosmoDescription(); osmoE.createPosmoName(); osmoE.createPosmoOfOAMO(); QueryControlsEnt qcEnt = new QueryControlsEnt(osmoBean.getQueryControlsBean(),osmoE); // qcEnt.createClassIdv(); qcEnt.createPquerycontrolsReportIfEmpty(); osmoE.setQueryControlsEnt(qcEnt); osmoE.createPosmoHasQueryControlsAsString(); for(QueryRequestBean qreqBean : osmoBean.getQueryRequestBean()) { QueryRequestEnt qReqE = new QueryRequestEnt(qreqBean,osmoE); // qReqE.createAll(); osmoE.getQueryRequestEntList().add(qReqE); } osmoE.createPosmoHasQueryRequestAsString(); ReqPresentationEnt reqPreE = new ReqPresentationEnt(osmoBean.getReqPresentationBean(),osmoE); // reqPreE.createClassIdv(); reqPreE.createPreqPresentationOfOSMO(); for(WidgetBean wBean : osmoBean.getReqPresentationBean().getWidgetBeanLsit()) { WidgetEnt wEnt = new WidgetEnt(wBean,reqPreE); // wEnt.createClassIdv(); wEnt.createPpresentationAttrName(); for(PresentationAttrBean preAttrBean : wBean.getPresentationAttrBeanList()) { PresentationAttrEnt preAttrEnt = new PresentationAttrEnt(preAttrBean,wEnt); // preAttrEnt.createAll(); wEnt.getPresentationAttrEntList().add(preAttrEnt); } wEnt.createPwidgetHasPresAttrAsString(); reqPreE.getWidgetEntList().add(wEnt); } reqPreE.createPreqPresentationHasWidgetAsString(); osmoE.setReqPresentationEnt(reqPreE); osmoE.createPosmoHasRequestpresentationAsString(); oamoE.getOsmoList().add(osmoE); } oamoE.createPoamoHasOSMO(); specEnt1.getOamoEntList().add(oamoE); } specEnt1.createPosdpsecHasOamo(); usrEnt.getSpecEnt().add(specEnt1); usrEnt.createPuserHasSpec(); //linking user with osdspec LSMSchema rootModel = new LSMSchema(); rootModel.getBase().add(usrEnt.getClassIndividual().getOntModel().getBaseModel()); for(OSDSpecEnt specEnt : usrEnt.getSpecEnt()) { rootModel.getBase().add(specEnt.getClassIndividual().getOntModel().getBaseModel()); for(OAMOEnt oamoEnt : specEnt.getOamoEntList()) { rootModel.getBase().add(oamoEnt.getClassIndividual().getOntModel().getBaseModel()); for(OSMOEnt osmoEnt : oamoEnt.getOsmoList()) { rootModel.getBase().add(osmoEnt.getClassIndividual().getOntModel().getBaseModel()); } } } //export String triples = rootModel.exportToTriples("N-TRIPLE"); System.out.println(triples); return triples; } public static String OSDSpecBeanToTriples(OSDSpecBean osdspecBean) { ////////////////////////////////////////////////////////////// UserEnt usrEnt = new UserEnt(); usrEnt.setUserBean(osdspecBean.getUserBean()); // usrEnt.createClassIdv(); OSDSpecEnt specEnt1 = new OSDSpecEnt(osdspecBean,usrEnt); // specEnt1.createClassIdv(); specEnt1.createPosdpsecOfUser(); //linking osdspec with user for(OAMOBean oamoBean : osdspecBean.getOamoBeanList()) { OAMOEnt oamoE = new OAMOEnt(oamoBean,specEnt1); // oamoE.createClassIdv(); oamoE.createPoamoDescription(); oamoE.createPoamoGraphMeta(); oamoE.createPoamoName(); oamoE.createPoamoOfOSDSpec(); for(OSMOBean osmoBean : oamoBean.getOsmoBeanList()) { OSMOEnt osmoE = new OSMOEnt(osmoBean,oamoE); // osmoE.createClassIdv(); osmoE.createPosmoDescription(); osmoE.createPosmoName(); osmoE.createPosmoOfOAMO(); QueryControlsEnt qcEnt = new QueryControlsEnt(osmoBean.getQueryControlsBean(),osmoE); // qcEnt.createClassIdv(); qcEnt.createPquerycontrolsReportIfEmpty(); osmoE.setQueryControlsEnt(qcEnt); osmoE.createPosmoHasQueryControlsAsString(); for(QueryRequestBean qreqBean : osmoBean.getQueryRequestBean()) { QueryRequestEnt qReqE = new QueryRequestEnt(qreqBean,osmoE); // qReqE.createAll(); osmoE.getQueryRequestEntList().add(qReqE); } osmoE.createPosmoHasQueryRequestAsString(); ReqPresentationEnt reqPreE = new ReqPresentationEnt(osmoBean.getReqPresentationBean(),osmoE); // reqPreE.createClassIdv(); reqPreE.createPreqPresentationOfOSMO(); for(WidgetBean wBean : osmoBean.getReqPresentationBean().getWidgetBeanLsit()) { WidgetEnt wEnt = new WidgetEnt(wBean,reqPreE); // wEnt.createClassIdv(); wEnt.createPpresentationAttrName(); for(PresentationAttrBean preAttrBean : wBean.getPresentationAttrBeanList()) { PresentationAttrEnt preAttrEnt = new PresentationAttrEnt(preAttrBean,wEnt); // preAttrEnt.createAll(); wEnt.getPresentationAttrEntList().add(preAttrEnt); } wEnt.createPwidgetHasPresAttrAsString(); reqPreE.getWidgetEntList().add(wEnt); } reqPreE.createPreqPresentationHasWidgetAsString(); osmoE.setReqPresentationEnt(reqPreE); osmoE.createPosmoHasRequestpresentationAsString(); oamoE.getOsmoList().add(osmoE); } oamoE.createPoamoHasOSMO(); specEnt1.getOamoEntList().add(oamoE); } specEnt1.createPosdpsecHasOamo(); usrEnt.getSpecEnt().add(specEnt1); usrEnt.createPuserHasSpec(); //linking user with osdspec LSMSchema rootModel = new LSMSchema(); rootModel.getBase().add(usrEnt.getClassIndividual().getOntModel().getBaseModel()); for(OSDSpecEnt specEnt : usrEnt.getSpecEnt()) { rootModel.getBase().add(specEnt.getClassIndividual().getOntModel().getBaseModel()); for(OAMOEnt oamoEnt : specEnt.getOamoEntList()) { rootModel.getBase().add(oamoEnt.getClassIndividual().getOntModel().getBaseModel()); for(OSMOEnt osmoEnt : oamoEnt.getOsmoList()) { rootModel.getBase().add(osmoEnt.getClassIndividual().getOntModel().getBaseModel()); } } } //export String triples = rootModel.exportToTriples("TURTLE"); System.out.println(triples); return triples; } }