public BusinessServiceEntity addIpServiceEdge(OnmsMonitoredService ipService, AbstractMapFunctionEntity mapFunction, int weight, String friendlyName) { IPServiceEdgeEntity edge = new IPServiceEdgeEntity(); edge.setBusinessService(this); edge.setIpService(Objects.requireNonNull(ipService)); edge.setWeight(weight); edge.setMapFunction(Objects.requireNonNull(mapFunction)); edge.setFriendlyName(friendlyName); addEdge(edge); return this; }
@Override public String getFriendlyName() { return getEntity().getFriendlyName(); }
@Override public Set<String> getReductionKeys() { return getEntity().getReductionKeys(); }
public static IpServiceEdgeResponseDTO toResponseDTO(IPServiceEdgeEntity input) { IpServiceResponseDTO ipService = new IpServiceResponseDTO(); ipService.setNodeLabel("dummy"); // do not know that here ipService.setServiceName(input.getIpService().getServiceName()); ipService.setId(input.getIpService().getId()); ipService.setIpAddress(InetAddressUtils.toIpAddrString(input.getIpService().getIpAddress())); IpServiceEdgeResponseDTO edge = new IpServiceEdgeResponseDTO(); edge.setLocation(ResourceLocationFactory.createBusinessServiceEdgeLocation(input.getBusinessService().getId(), input.getId())); edge.setReductionKeys(ReductionKeyHelper.getReductionKeys(input.getIpService())); edge.setIpService(ipService); edge.setMapFunction(transform(input.getMapFunction())); edge.setId(input.getId()); edge.setWeight(input.getWeight()); edge.setFriendlyName(input.getFriendlyName()); edge.setOperationalStatus(Status.INDETERMINATE); // we assume INDETERMINATE return edge; }
@Override public void setFriendlyName(String friendlyName) { getEntity().setFriendlyName(friendlyName); }
@Override public void setIpService(IpService ipService) { getEntity().setIpService(((IpServiceImpl)ipService).getEntity()); }
@Override public IpService getIpService() { return new IpServiceImpl(getManager(), getEntity().getIpService()); }
@SuppressWarnings("unchecked") private <T extends Edge> T createEdge(Class<T> type, BusinessService source, MapFunction mapFunction, int weight) { T edge = null; if (type == IpServiceEdge.class) { edge = (T) new IpServiceEdgeImpl(this, new IPServiceEdgeEntity()); } if (type == ChildEdge.class) { edge = (T) new ChildEdgeImpl(this, new BusinessServiceChildEdgeEntity()); } if (type == ReductionKeyEdge.class) { edge = (T) new ReductionKeyEdgeImpl(this, new SingleReductionKeyEdgeEntity()); } if (type == ApplicationEdge.class) { edge = (T) new ApplicationEdgeImpl(this, new ApplicationEdgeEntity()); } if (edge != null) { edge.setSource(source); edge.setMapFunction(mapFunction); edge.setWeight(weight); return edge; } throw new IllegalArgumentException("Could not create edge for type " + type); }
@Override public boolean addIpServiceEdge(BusinessService businessService, IpService ipService, MapFunction mapFunction, int weight, String friendlyName) { final BusinessServiceEntity parentEntity = getBusinessServiceEntity(businessService); // Create the edge final IpServiceEdge edge = createEdge(IpServiceEdge.class, businessService, mapFunction, weight); edge.setIpService(ipService); edge.setFriendlyName(friendlyName); // if already exists, no update final IPServiceEdgeEntity edgeEntity = getBusinessServiceEdgeEntity(edge); long count = parentEntity.getIpServiceEdges().stream().filter(e -> e.equalsDefinition(edgeEntity)).count(); if (count > 0) { return false; } parentEntity.addEdge(((IpServiceEdgeImpl)edge).getEntity()); return true; }