package org.infosec.ismp.applet.manager.utilities; import org.infosec.ismp.applet.manager.model.DomainModel; import org.infosec.ismp.applet.manager.model.LinkModel; import org.infosec.ismp.applet.manager.model.NodeModel; import org.infosec.ismp.manager.rmi.tm.manager.model.DeviceEntity; import org.infosec.ismp.manager.rmi.tm.manager.model.DomainEntity; import org.infosec.ismp.manager.rmi.tm.manager.model.LinkEntity; import org.infosec.ismp.manager.rmi.tm.manager.model.NodeEntity; import twaver.Node; /** * 前后台模型转换 * @author 肖高峰 * * 所有方法第一个参数为目标对象,第二个参数为源对象 */ public class ChangeModelUtil { public static void changeModel(NodeModel model,NodeEntity node) { if(node == null || model == null) return; model.setNodeId(node.getNodeId()); model.setName(node.getName()); model.setPointX(node.getPointX()); model.setPointY(node.getPointY()); model.setWidth(node.getWidth()); model.setHeight(node.getHeight()); model.setMac(node.getNetCardCode()); model.setStatus(node.getStatus()); if(node.getParentDomain() != null) { String guid = TopoConst.getTopoID(TopoConst.DOMAIN_ID+node.getParentDomain().getId().toString()); model.setParentDomain((DomainModel)TopoConst.BOX.getElementByID(guid)); } model.setBrand(node.getBrand()); model.setModel(node.getModel()); model.setNodeStyle(node.getNodeStyle()); model.setType(node.getType()); model.setIsVisible(node.getIsVisible()); model.setManagerStyle(node.getManagerStyle()); model.setIpAddress(node.getIpAddress()); model.setRemark(node.getRemark()); model.setSystem(node.getSystem()); } public static NodeModel changeModel(DeviceEntity device) { if(device == null || device.getNode() == null) return null; NodeModel model = new NodeModel(); changeModel(model,device.getNode()); model.setSensor(device.getSensor()); model.setDatabase(device.getDatabase()); model.setSnmp(device.getSnmp()); return model; } public static NodeModel changeModel(NodeModel model ,DeviceEntity device) { if(device == null || device.getNode() == null || model == null) return null; changeModel(model,device.getNode()); model.setSensor(device.getSensor()); model.setDatabase(device.getDatabase()); model.setSnmp(device.getSnmp()); return model; } public static void changeModel(NodeEntity model,NodeModel node) { if(node == null || model == null) return; model.setNodeId(node.getNodeId()); model.setName(node.getName()); model.setPointX(node.getPointX()); model.setPointY(node.getPointY()); model.setWidth(node.getWidth()); model.setHeight(node.getHeight()); model.setNetCardCode(node.getMac()); model.setStatus(node.getStatus()); if(node.getParentDomain() != null) { DomainEntity domain = new DomainEntity(); changeDomainModel(domain,node.getParentDomain()); model.setParentDomain(domain); } model.setBrand(node.getBrand()); model.setModel(node.getModel()); model.setNodeStyle(node.getNodeStyle()); model.setType(node.getType()); model.setIsVisible(node.getIsVisible()); model.setManagerStyle(node.getManagerStyle()); model.setIpAddress(node.getIpAddress()); model.setRemark(node.getRemark()); model.setSystem(node.getSystem()); node.setPointX((int)node.getX()); node.setPointY((int)node.getY()); } public static DeviceEntity changeToDeviceModel(NodeModel node) { if(node == null) return null; DeviceEntity device = new DeviceEntity(); NodeEntity nodeEntity = new NodeEntity(); changeModel(nodeEntity,node); device.setNode(nodeEntity); device.setSensor(node.getSensor()); device.setDatabase(node.getDatabase()); device.setSnmp(node.getSnmp()); return device; } public static void changeDomainModel(DomainEntity domain,DomainModel model) { if(model == null || domain == null) return; domain.setId(model.getId()); domain.setDomainName(model.getDomainName()); domain.setDescription(model.getDescription()); DomainModel parentModel = model.getParentDomain(); if(parentModel == null)return; DomainEntity parentEntity = new DomainEntity(); changeParentDomainModel(parentEntity,parentModel); domain.setParentDomain(parentEntity); } public static void changeDomainModel(DomainModel domain,DomainEntity model) { if(model == null || domain == null) return; domain.setId(model.getId()); domain.setDomainName(model.getDomainName()); domain.setDescription(model.getDescription()); domain.setParentDomain(changeParentDomainModel(model)); } private static void changeParentDomainModel(DomainEntity domain,DomainModel model) { if(model == null || domain == null) return; domain.setId(model.getId()); domain.setDomainName(model.getDomainName()); domain.setDescription(model.getDescription()); } private static DomainModel changeParentDomainModel(DomainEntity domain) { if(domain == null) return null; String guid = TopoConst.getTopoID(TopoConst.DOMAIN_ID+domain.getId()); Object o = TopoConst.BOX.getElementByID(guid); if(o != null) { return (DomainModel)o; } return null; } public static void changeLinkModel(LinkModel model,LinkEntity link) { model.setLinkId(link.getLinkId()); String fromGUID = TopoConst.getTopoID(link.getFromDeviceId().getNodeId()); model.setFrom((Node)TopoConst.BOX.getElementByID(fromGUID)); String toGUID = TopoConst.getTopoID(link.getToDeviceId().getNodeId()); model.setTo((Node)TopoConst.BOX.getElementByID(toGUID)); model.setFromDevicePort(link.getFromDevicePort()); model.setToDevicePort(link.getToDevicePort()); model.setLinkState(link.getLinkState()); } public static void changeLinkModel(LinkEntity link,LinkModel model) { link.setLinkId(model.getLinkId()); Node fromNode = model.getFrom(); if(fromNode != null) { if(fromNode instanceof NodeModel) { NodeEntity node = new NodeEntity(); changeModel(node, (NodeModel)fromNode); link.setFromDeviceId(node); } else if(fromNode instanceof DomainModel) { link.setFromDeviceId(((DomainModel)fromNode).getDatabaseNode()); } } Node toNode = model.getTo(); if(toNode != null) { if(toNode instanceof NodeModel) { NodeEntity node = new NodeEntity(); changeModel(node, (NodeModel)toNode); link.setToDeviceId(node); } else if(toNode instanceof DomainModel) { link.setToDeviceId(((DomainModel)toNode).getDatabaseNode()); } } link.setFromDevicePort(model.getFromDevicePort()); link.setToDevicePort(model.getToDevicePort()); link.setLinkState(model.getLinkState()); } //把数据节点转换为云图 public static DomainModel changeDomainModel(DomainModel model,NodeEntity node) { model.setDatabaseNode(node); if(node.getDomain() != null) { model.setId(node.getDomain().getId()); model.setName(node.getDomain().getDomainName()); model.setDescription(node.getDomain().getDescription()); } if(node.getParentDomain() != null) { DomainModel parentDomain = changeParentDomainModel(node.getParentDomain()); model.setParentDomain(parentDomain); } model.setLocation(node.getPointX(), node.getPointY()); return model; } //把云图转换数据节点 public static NodeEntity changeDomainModel(NodeEntity node,DomainModel model) { DomainEntity domain = null; DomainModel parentModel = model.getParentDomain(); if(model.getDatabaseNode() == null || model.getDatabaseNode().getNodeId() == null) { //数据还没保存 node = new NodeEntity(); domain = new DomainEntity(); } else { //数据库已有记录 node = model.getDatabaseNode(); domain = model.getDatabaseNode().getDomain(); } if(parentModel != null) { //有父节点 node.setParentDomain(parentModel.getDatabaseNode().getDomain()); domain.setParentDomain(node.getParentDomain()); } domain.setDomainName(model.getName()); domain.setDescription(model.getDescription()); node.setPointX((int)model.getX()); node.setPointY((int)model.getY()); node.setDomain(domain); return node; } public static DeviceEntity changeDeviceEntity(NodeModel node) { NodeEntity nodeEntity = new NodeEntity(); ChangeModelUtil.changeModel(nodeEntity, node); DeviceEntity device = new DeviceEntity(); device.setNode(nodeEntity); device.setDatabase(node.getDatabase()); device.setSensor(node.getSensor()); device.setSnmp(node.getSnmp()); return device; } }