<?php

declare (strict_types=1);
namespace idoit\Module\JDisc\Graphql\Schema\UnionResolveType;

use GraphQL\Type\Definition\ResolveInfo;
use Axtiva\FlexibleGraphql\Resolver\UnionResolveTypeInterface;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusCloudTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusDevicesDetailsTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusDevicesTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusDirectoryTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusDiscoveryJobsTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusLdapSyncTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusMeasurementTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusNetworkNeighborhoodTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusOverallProcessSummaryTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusOverallProcessTopicUpdateType;
use idoit\Module\JDisc\Graphql\Schema\Model\DiscoveryStatusPingTopicUpdateType;

/**
 * This code is @generated by axtiva/flexible-graphql-php
 * and will be regenerated. Do not edit it manually
 */
final class TopicUpdateTypeResolver implements UnionResolveTypeInterface
{
    public function __invoke($model, $context, ResolveInfo $info)
    {
        if (isset($model)) {
            switch (get_class($model)) {
                case DiscoveryStatusCloudTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusCloudTopicUpdate');
                case DiscoveryStatusDevicesDetailsTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusDevicesDetailsTopicUpdate');
                case DiscoveryStatusDevicesTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusDevicesTopicUpdate');
                case DiscoveryStatusDirectoryTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusDirectoryTopicUpdate');
                case DiscoveryStatusDiscoveryJobsTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusDiscoveryJobsTopicUpdate');
                case DiscoveryStatusLdapSyncTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusLdapSyncTopicUpdate');
                case DiscoveryStatusMeasurementTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusMeasurementTopicUpdate');
                case DiscoveryStatusNetworkNeighborhoodTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusNetworkNeighborhoodTopicUpdate');
                case DiscoveryStatusOverallProcessSummaryTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusOverallProcessSummaryTopicUpdate');
                case DiscoveryStatusOverallProcessTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusOverallProcessTopicUpdate');
                case DiscoveryStatusPingTopicUpdateType::class:
                    return $info->schema->getType('DiscoveryStatusPingTopicUpdate');
            }
        }
        return null;
    }
}