public FactType build() { return new FactType(id, namespace, name, validator, validatorParameter, relevantObjectBindings, relevantFactBindings); }
private Function<UUID, FactType> createFactTypeByIdConverter() { return id -> ObjectUtils.ifNotNull(factManager.getFactType(id), factTypeConverter, FactType.builder().setId(id).setName("N/A").build()); }
private List<ObjectFactsStatistic> resolveStatistics(ObjectEntity entity) { Collection<ObjectStatisticsResult.FactStatistic> statistics = factStatisticsResolver.apply(entity.getId()); if (CollectionUtils.isEmpty(statistics)) { return null; } return statistics.stream() .map(stat -> ObjectFactsStatistic.builder() .setType(factTypeConverter.apply(stat.getFactTypeID()).toInfo()) .setCount(stat.getFactCount()) .setLastAddedTimestamp(stat.getLastAddedTimestamp()) .setLastSeenTimestamp(stat.getLastSeenTimestamp()) .build()) .collect(Collectors.toList()); }
private FactType convertFactType(FactTypeEntity entity, boolean skipBindings) { if (entity == null) return null; return FactType.builder() .setId(entity.getId()) .setNamespace(namespaceConverter.apply(entity.getNamespaceID())) .setName(entity.getName()) .setValidator(entity.getValidator()) .setValidatorParameter(entity.getValidatorParameter()) .setRelevantObjectBindings(!skipBindings ? convertObjectBindings(entity.getRelevantObjectBindings()) : null) .setRelevantFactBindings(!skipBindings ? convertFactBindings(entity.getRelevantFactBindings()) : null) .build(); }
@Override public Fact apply(FactEntity entity) { if (entity == null) return null; ConvertedObjects objects = convertObjects(entity); return Fact.builder() .setId(entity.getId()) .setType(factTypeConverter.apply(entity.getTypeID()).toInfo()) .setValue(entity.getValue()) .setInReferenceTo(ObjectUtils.ifNotNull(convertInReferenceTo(entity.getInReferenceToID()), Fact::toInfo)) .setOrganization(ObjectUtils.ifNotNull(organizationConverter.apply(entity.getOrganizationID()), Organization::toInfo)) .setSource(ObjectUtils.ifNotNull(sourceConverter.apply(entity.getSourceID()), Source::toInfo)) .setAccessMode(AccessMode.valueOf(entity.getAccessMode().name())) .setTimestamp(entity.getTimestamp()) .setLastSeenTimestamp(entity.getLastSeenTimestamp()) .setSourceObject(ObjectUtils.ifNotNull(objects, ConvertedObjects::getSourceObject)) .setDestinationObject(ObjectUtils.ifNotNull(objects, ConvertedObjects::getDestinationObject)) .setBidirectionalBinding(ObjectUtils.ifNotNull(objects, ConvertedObjects::isBidirectionalBinding, false)) .build(); }