<?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\AccountType;
use idoit\Module\JDisc\Graphql\Schema\Model\GraphQLSshAccountType;
use idoit\Module\JDisc\Graphql\Schema\Model\SnmpCommunityType;
use idoit\Module\JDisc\Graphql\Schema\Model\SnmpV3AccountType;
use idoit\Module\JDisc\Graphql\Schema\Model\AceBITPasswordDepotSecretType;
use idoit\Module\JDisc\Graphql\Schema\Model\CyberarkAccountType;
use idoit\Module\JDisc\Graphql\Schema\Model\ManageEnginePMPAccountType;
use idoit\Module\JDisc\Graphql\Schema\Model\PasswordstateAccountType;
use idoit\Module\JDisc\Graphql\Schema\Model\ThycoticSecretServerAccountType;

/**
 * This code is @generated by axtiva/flexible-graphql-php
 * and will be regenerated. Do not edit it manually
 */
final class IAccountTypeResolver implements UnionResolveTypeInterface
{
    public function __invoke($model, $context, ResolveInfo $info)
    {
        if (isset($model)) {
            switch (get_class($model)) {
                case AccountType::class:
                    return $info->schema->getType('Account');
                case GraphQLSshAccountType::class:
                    return $info->schema->getType('GraphQLSshAccount');
                case SnmpCommunityType::class:
                    return $info->schema->getType('SnmpCommunity');
                case SnmpV3AccountType::class:
                    return $info->schema->getType('SnmpV3Account');
                case AceBITPasswordDepotSecretType::class:
                    return $info->schema->getType('AceBITPasswordDepotSecret');
                case CyberarkAccountType::class:
                    return $info->schema->getType('CyberarkAccount');
                case ManageEnginePMPAccountType::class:
                    return $info->schema->getType('ManageEnginePMPAccount');
                case PasswordstateAccountType::class:
                    return $info->schema->getType('PasswordstateAccount');
                case ThycoticSecretServerAccountType::class:
                    return $info->schema->getType('ThycoticSecretServerAccount');
            }
        }
        return null;
    }
}