/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.resources.ResourceEntry
 *  com.l7tech.gateway.common.resources.ResourceEntryHeader
 *  com.l7tech.gateway.common.resources.ResourceType
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.gateway.common.service.PublishedService
 *  com.l7tech.gateway.common.service.ServiceDocument
 *  com.l7tech.gateway.common.service.ServiceHeader
 *  com.l7tech.gateway.common.transport.InterfaceTag
 *  com.l7tech.gateway.common.transport.SsgActiveConnector
 *  com.l7tech.gateway.common.transport.SsgActiveConnectorHeader
 *  com.l7tech.gateway.common.transport.jms.JmsEndpoint
 *  com.l7tech.identity.AnonymousGroupReference
 *  com.l7tech.identity.AnonymousUserReference
 *  com.l7tech.identity.Group
 *  com.l7tech.identity.IdentityProviderConfig
 *  com.l7tech.identity.IdentityProviderConfigManager
 *  com.l7tech.identity.PersistentGroup
 *  com.l7tech.identity.PersistentUser
 *  com.l7tech.identity.User
 *  com.l7tech.identity.fed.FederatedUser
 *  com.l7tech.objectmodel.Alias
 *  com.l7tech.objectmodel.AliasHeader
 *  com.l7tech.objectmodel.AnonymousEntityReference
 *  com.l7tech.objectmodel.Entity
 *  com.l7tech.objectmodel.EntityHeader
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.EntityTypeRegistry
 *  com.l7tech.objectmodel.ExternalEntityHeader
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.objectmodel.GuidEntityHeader
 *  com.l7tech.objectmodel.IdentityHeader
 *  com.l7tech.objectmodel.JmsEndpointHeader
 *  com.l7tech.objectmodel.NamedEntity
 *  com.l7tech.objectmodel.OrganizationHeader
 *  com.l7tech.objectmodel.PersistentEntity
 *  com.l7tech.objectmodel.SsgKeyHeader
 *  com.l7tech.objectmodel.ValueReferenceEntityHeader
 *  com.l7tech.objectmodel.ZoneableEntity
 *  com.l7tech.objectmodel.ZoneableEntityHeader
 *  com.l7tech.objectmodel.ZoneableGuidEntityHeader
 *  com.l7tech.objectmodel.encass.EncapsulatedAssertionConfig
 *  com.l7tech.objectmodel.folder.Folder
 *  com.l7tech.objectmodel.folder.FolderHeader
 *  com.l7tech.policy.GenericEntity
 *  com.l7tech.policy.GenericEntityHeader
 *  com.l7tech.policy.Policy
 *  com.l7tech.policy.PolicyHeader
 *  com.l7tech.util.GoidUpgradeMapper
 *  com.l7tech.util.ValidationUtils
 *  org.jetbrains.annotations.NotNull
 */
package com.l7tech.server;

import com.l7tech.gateway.common.resources.ResourceEntry;
import com.l7tech.gateway.common.resources.ResourceEntryHeader;
import com.l7tech.gateway.common.resources.ResourceType;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.gateway.common.service.ServiceDocument;
import com.l7tech.gateway.common.service.ServiceHeader;
import com.l7tech.gateway.common.transport.InterfaceTag;
import com.l7tech.gateway.common.transport.SsgActiveConnector;
import com.l7tech.gateway.common.transport.SsgActiveConnectorHeader;
import com.l7tech.gateway.common.transport.jms.JmsEndpoint;
import com.l7tech.identity.AnonymousGroupReference;
import com.l7tech.identity.AnonymousUserReference;
import com.l7tech.identity.Group;
import com.l7tech.identity.IdentityProviderConfig;
import com.l7tech.identity.IdentityProviderConfigManager;
import com.l7tech.identity.PersistentGroup;
import com.l7tech.identity.PersistentUser;
import com.l7tech.identity.User;
import com.l7tech.identity.fed.FederatedUser;
import com.l7tech.objectmodel.Alias;
import com.l7tech.objectmodel.AliasHeader;
import com.l7tech.objectmodel.AnonymousEntityReference;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.EntityTypeRegistry;
import com.l7tech.objectmodel.ExternalEntityHeader;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.GuidEntityHeader;
import com.l7tech.objectmodel.IdentityHeader;
import com.l7tech.objectmodel.JmsEndpointHeader;
import com.l7tech.objectmodel.NamedEntity;
import com.l7tech.objectmodel.OrganizationHeader;
import com.l7tech.objectmodel.PersistentEntity;
import com.l7tech.objectmodel.SsgKeyHeader;
import com.l7tech.objectmodel.ValueReferenceEntityHeader;
import com.l7tech.objectmodel.ZoneableEntity;
import com.l7tech.objectmodel.ZoneableEntityHeader;
import com.l7tech.objectmodel.ZoneableGuidEntityHeader;
import com.l7tech.objectmodel.encass.EncapsulatedAssertionConfig;
import com.l7tech.objectmodel.folder.Folder;
import com.l7tech.objectmodel.folder.FolderHeader;
import com.l7tech.policy.GenericEntity;
import com.l7tech.policy.GenericEntityHeader;
import com.l7tech.policy.Policy;
import com.l7tech.policy.PolicyHeader;
import com.l7tech.server.r;
import com.l7tech.util.GoidUpgradeMapper;
import com.l7tech.util.ValidationUtils;
import java.util.Collection;
import java.util.HashSet;
import org.jetbrains.annotations.NotNull;

/*
 * Exception performing whole class analysis ignored.
 */
public final class EntityHeaderUtils {
    private static final String[] a;

    public static AnonymousEntityReference fromHeader(EntityHeader entityHeader) {
        Class clazz;
        block14: {
            EntityType entityType;
            block13: {
                entityType = entityHeader.getType();
                try {
                    if (entityType == EntityType.ID_PROVIDER_CONFIG) {
                        return new AnonymousEntityReference(IdentityProviderConfig.class, entityHeader.getGoid(), entityHeader.getName());
                    }
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw EntityHeaderUtils.a(illegalArgumentException);
                }
                try {
                    if (entityType != EntityType.USER && entityType != EntityType.GROUP) break block13;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw EntityHeaderUtils.a(illegalArgumentException);
                }
                Goid goid = IdentityProviderConfig.DEFAULT_GOID;
                if (entityHeader instanceof IdentityHeader) {
                    IdentityHeader identityHeader = (IdentityHeader)entityHeader;
                    goid = identityHeader.getProviderGoid();
                }
                try {
                    if (entityType == EntityType.USER) {
                        return new AnonymousUserReference(entityHeader.getStrId(), goid, entityHeader.getName());
                    }
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw EntityHeaderUtils.a(illegalArgumentException);
                }
                return new AnonymousGroupReference(entityHeader.getStrId(), goid, entityHeader.getName());
            }
            clazz = EntityTypeRegistry.getEntityClass((EntityType)entityType);
            try {
                try {
                    if (EntityType.ANY != entityType && clazz != null) break block14;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw EntityHeaderUtils.a(illegalArgumentException);
                }
                throw new IllegalArgumentException(a[19] + entityHeader.toString());
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
        }
        return new AnonymousEntityReference(clazz, entityHeader.getGoid(), entityHeader.getName());
    }

    public static EntityHeader fromEntity(Entity entity) {
        String string;
        EntityType entityType;
        String string2;
        EntityHeader entityHeader;
        EntityHeader entityHeader2;
        try {
            if (entity instanceof Policy) {
                return new PolicyHeader((Policy)entity);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw EntityHeaderUtils.a(illegalArgumentException);
        }
        try {
            if (entity instanceof PublishedService) {
                return new ServiceHeader((PublishedService)entity);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw EntityHeaderUtils.a(illegalArgumentException);
        }
        if (entity instanceof ResourceEntry) {
            ResourceEntry resourceEntry = (ResourceEntry)entity;
            return new ResourceEntryHeader(resourceEntry);
        }
        try {
            if (entity instanceof ServiceDocument) {
                return new EntityHeader(entity.getId(), EntityType.SERVICE_DOCUMENT, ((ServiceDocument)entity).getUri(), null);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw EntityHeaderUtils.a(illegalArgumentException);
        }
        try {
            if (entity instanceof Folder) {
                return new FolderHeader((Folder)entity);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw EntityHeaderUtils.a(illegalArgumentException);
        }
        if (entity instanceof FederatedUser) {
            FederatedUser federatedUser = (FederatedUser)entity;
            return new IdentityHeader(federatedUser.getProviderId(), federatedUser.getGoid(), EntityType.USER, federatedUser.getLogin(), null, federatedUser.getName(), federatedUser.getVersion());
        }
        if (entity instanceof PersistentUser) {
            PersistentUser persistentUser = (PersistentUser)entity;
            return new IdentityHeader(persistentUser.getProviderId(), persistentUser.getGoid(), EntityType.USER, persistentUser.getLogin(), null, persistentUser.getName(), persistentUser.getVersion());
        }
        if (entity instanceof User) {
            User user = (User)entity;
            return new IdentityHeader(user.getProviderId(), user.getId(), EntityType.USER, user.getLogin(), null, user.getName(), null);
        }
        if (entity instanceof PersistentGroup) {
            PersistentGroup persistentGroup = (PersistentGroup)entity;
            return new IdentityHeader(persistentGroup.getProviderId(), persistentGroup.getGoid(), EntityType.GROUP, persistentGroup.getName(), null, persistentGroup.getName(), persistentGroup.getVersion());
        }
        if (entity instanceof Group) {
            Group group = (Group)entity;
            return new IdentityHeader(group.getProviderId(), group.getId(), EntityType.GROUP, group.getName(), null, group.getName(), null);
        }
        try {
            if (entity instanceof Alias) {
                return new AliasHeader((Alias)entity);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw EntityHeaderUtils.a(illegalArgumentException);
        }
        if (entity instanceof JmsEndpoint) {
            Goid goid;
            JmsEndpointHeader jmsEndpointHeader;
            JmsEndpoint jmsEndpoint = (JmsEndpoint)entity;
            JmsEndpointHeader jmsEndpointHeader2 = new JmsEndpointHeader(jmsEndpoint.getId(), jmsEndpoint.getName(), jmsEndpoint.getDestinationName(), jmsEndpoint.getVersion(), jmsEndpoint.isMessageSource());
            try {
                jmsEndpointHeader = jmsEndpointHeader2;
                goid = jmsEndpoint.getSecurityZone() == null ? null : jmsEndpoint.getSecurityZone().getGoid();
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            jmsEndpointHeader.setSecurityZoneId(goid);
            jmsEndpointHeader2.setConnectionGoid(jmsEndpoint.getConnectionGoid());
            return jmsEndpointHeader2;
        }
        try {
            if (entity instanceof SsgActiveConnector) {
                return new SsgActiveConnectorHeader((SsgActiveConnector)entity);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw EntityHeaderUtils.a(illegalArgumentException);
        }
        if (entity instanceof EncapsulatedAssertionConfig) {
            Goid goid;
            ZoneableGuidEntityHeader zoneableGuidEntityHeader;
            EncapsulatedAssertionConfig encapsulatedAssertionConfig = (EncapsulatedAssertionConfig)entity;
            ZoneableGuidEntityHeader zoneableGuidEntityHeader2 = new ZoneableGuidEntityHeader(encapsulatedAssertionConfig.getGoid().toString(), EntityType.ENCAPSULATED_ASSERTION, encapsulatedAssertionConfig.getName(), null, Integer.valueOf(encapsulatedAssertionConfig.getVersion()));
            try {
                zoneableGuidEntityHeader2.setGuid(encapsulatedAssertionConfig.getGuid());
                zoneableGuidEntityHeader = zoneableGuidEntityHeader2;
                goid = encapsulatedAssertionConfig.getSecurityZone() == null ? null : encapsulatedAssertionConfig.getSecurityZone().getGoid();
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            zoneableGuidEntityHeader.setSecurityZoneId(goid);
            return zoneableGuidEntityHeader2;
        }
        if (entity instanceof GenericEntity) {
            GenericEntity genericEntity = (GenericEntity)entity;
            return new GenericEntityHeader(genericEntity);
        }
        if (entity instanceof SsgKeyEntry) {
            Goid goid;
            SsgKeyHeader ssgKeyHeader;
            SsgKeyEntry ssgKeyEntry = (SsgKeyEntry)entity;
            SsgKeyHeader ssgKeyHeader2 = new SsgKeyHeader(ssgKeyEntry.getId(), ssgKeyEntry.getKeystoreId(), ssgKeyEntry.getAlias(), ssgKeyEntry.getName());
            try {
                ssgKeyHeader = ssgKeyHeader2;
                goid = ssgKeyEntry.getSecurityZone() == null ? null : ssgKeyEntry.getSecurityZone().getGoid();
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            ssgKeyHeader.setSecurityZoneId(goid);
            return ssgKeyHeader2;
        }
        if (entity instanceof InterfaceTag) {
            InterfaceTag interfaceTag = (InterfaceTag)entity;
            return new EntityHeader(InterfaceTag.getSyntheticId((InterfaceTag)((InterfaceTag)entity)), EntityTypeRegistry.getEntityType((Class)entity.getClass()), interfaceTag.getName(), null, null);
        }
        if (entity instanceof PersistentEntity) {
            String string3;
            EntityType entityType2;
            Goid goid;
            EntityHeader entityHeader3;
            EntityHeader entityHeader4;
            PersistentEntity persistentEntity = (PersistentEntity)entity;
            try {
                EntityHeader entityHeader5;
                entityHeader4 = entityHeader5;
                entityHeader3 = entityHeader5;
                goid = persistentEntity.getGoid();
                entityType2 = EntityTypeRegistry.getEntityType((Class)persistentEntity.getClass());
                string3 = persistentEntity instanceof NamedEntity ? ((NamedEntity)persistentEntity).getName() : null;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            entityHeader4(goid, entityType2, string3, null, Integer.valueOf(persistentEntity.getVersion()));
            EntityHeader entityHeader6 = entityHeader3;
            return EntityHeaderUtils.a(entity, entityHeader6);
        }
        try {
            EntityHeader entityHeader7;
            entityHeader2 = entityHeader7;
            entityHeader = entityHeader7;
            string2 = entity.getId();
            entityType = EntityTypeRegistry.getEntityType((Class)entity.getClass());
            string = entity instanceof NamedEntity ? ((NamedEntity)entity).getName() : null;
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw EntityHeaderUtils.a(illegalArgumentException);
        }
        entityHeader2(string2, entityType, string, null);
        EntityHeader entityHeader8 = entityHeader;
        return EntityHeaderUtils.a(entity, entityHeader8);
    }

    private static EntityHeader a(@NotNull Entity entity, @NotNull EntityHeader entityHeader) {
        try {
            if (entity == null) {
                EntityHeaderUtils.a(0);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw EntityHeaderUtils.a(illegalArgumentException);
        }
        try {
            if (entityHeader == null) {
                EntityHeaderUtils.a(1);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw EntityHeaderUtils.a(illegalArgumentException);
        }
        if (entity instanceof ZoneableEntity) {
            Goid goid;
            ZoneableEntityHeader zoneableEntityHeader;
            ZoneableEntity zoneableEntity = (ZoneableEntity)entity;
            ZoneableEntityHeader zoneableEntityHeader2 = new ZoneableEntityHeader(entityHeader);
            try {
                zoneableEntityHeader = zoneableEntityHeader2;
                goid = zoneableEntity.getSecurityZone() == null ? null : zoneableEntity.getSecurityZone().getGoid();
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            zoneableEntityHeader.setSecurityZoneId(goid);
            return zoneableEntityHeader2;
        }
        return entityHeader;
    }

    public static Collection<ExternalEntityHeader> toExternal(Collection<EntityHeader> collection) {
        HashSet<ExternalEntityHeader> hashSet = new HashSet<ExternalEntityHeader>();
        for (EntityHeader entityHeader : collection) {
            hashSet.add(EntityHeaderUtils.toExternal(entityHeader));
        }
        return hashSet;
    }

    /*
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    public static ExternalEntityHeader toExternal(EntityHeader entityHeader) {
        ExternalEntityHeader externalEntityHeader;
        block27: {
            if (entityHeader instanceof ExternalEntityHeader) {
                return (ExternalEntityHeader)entityHeader;
            }
            try {
                if (!(entityHeader instanceof OrganizationHeader) || !((OrganizationHeader)entityHeader).isAlias()) break block27;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            OrganizationHeader organizationHeader = (OrganizationHeader)entityHeader;
            String[] stringArray = a;
            return new ExternalEntityHeader(organizationHeader.getAliasGoid().toString(), EntityType.valueOf((String)(entityHeader.getType().name() + stringArray[32])), organizationHeader.getStrId(), organizationHeader.getName() + stringArray[28], organizationHeader.getDescription(), organizationHeader.getVersion());
        }
        if (entityHeader instanceof PolicyHeader) {
            PolicyHeader policyHeader = (PolicyHeader)entityHeader;
            externalEntityHeader = new ExternalEntityHeader(policyHeader.getGuid(), entityHeader);
            String[] stringArray = a;
            externalEntityHeader.setProperty(stringArray[29], Long.toString(policyHeader.getPolicyRevision()));
            externalEntityHeader.setProperty(stringArray[25], Boolean.toString(policyHeader.isSoap()));
            return externalEntityHeader;
        }
        if (entityHeader instanceof ServiceHeader) {
            boolean bl2;
            String string;
            ExternalEntityHeader externalEntityHeader2;
            ServiceHeader serviceHeader = (ServiceHeader)entityHeader;
            externalEntityHeader = new ExternalEntityHeader(serviceHeader.getStrId(), entityHeader);
            try {
                externalEntityHeader.setProperty(a[24], Long.toString(serviceHeader.getPolicyRevision()));
                externalEntityHeader.setProperty(a[8], serviceHeader.getDisplayName());
                externalEntityHeader.setProperty(a[15], Boolean.toString(serviceHeader.isSoap()));
                externalEntityHeader2 = externalEntityHeader;
                string = a[2];
                bl2 = !serviceHeader.isDisabled();
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            externalEntityHeader2.setProperty(string, Boolean.toString(bl2));
            return externalEntityHeader;
        }
        if (entityHeader instanceof IdentityHeader) {
            Object object;
            String string;
            String string2;
            ExternalEntityHeader externalEntityHeader3;
            IdentityHeader identityHeader = (IdentityHeader)entityHeader;
            externalEntityHeader = new ExternalEntityHeader(String.valueOf(identityHeader.getProviderGoid()) + ":" + entityHeader.getStrId(), entityHeader);
            try {
                externalEntityHeader3 = externalEntityHeader;
                string2 = a[0];
                string = identityHeader.getName() != null ? identityHeader.getName() : "";
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            try {
                object = identityHeader.getCommonName() != null ? a[27] + identityHeader.getCommonName() + ")" : "";
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            externalEntityHeader3.setProperty(string2, string + (String)object);
            String[] stringArray = a;
            externalEntityHeader.setProperty(stringArray[26], EntityType.ID_PROVIDER_CONFIG.toString());
            return externalEntityHeader;
        }
        if (entityHeader instanceof SsgKeyHeader) {
            return new ExternalEntityHeader(String.valueOf(((SsgKeyHeader)entityHeader).getKeystoreId()) + ":" + ((SsgKeyHeader)entityHeader).getAlias(), entityHeader);
        }
        if (entityHeader instanceof AliasHeader) {
            String[] stringArray;
            AliasHeader aliasHeader;
            block29: {
                block28: {
                    aliasHeader = (AliasHeader)entityHeader;
                    externalEntityHeader = new ExternalEntityHeader(aliasHeader.getStrId(), (EntityHeader)aliasHeader);
                    try {
                        if (aliasHeader.getAliasedEntityType() != EntityType.POLICY) break block28;
                        externalEntityHeader.setProperty(a[36], Goid.toString((Goid)aliasHeader.getAliasedEntityId()));
                        break block29;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw EntityHeaderUtils.a(illegalArgumentException);
                    }
                }
                stringArray = a;
                externalEntityHeader.setProperty(stringArray[40], Goid.toString((Goid)aliasHeader.getAliasedEntityId()));
            }
            stringArray = a;
            externalEntityHeader.setProperty(stringArray[38], aliasHeader.getAliasedEntityType().toString());
            return externalEntityHeader;
        }
        if (entityHeader instanceof JmsEndpointHeader) {
            externalEntityHeader = new ExternalEntityHeader(entityHeader.getStrId(), entityHeader);
            String[] stringArray = a;
            externalEntityHeader.setProperty(stringArray[30], Boolean.toString(((JmsEndpointHeader)entityHeader).isIncoming()));
            return externalEntityHeader;
        }
        if (entityHeader instanceof SsgActiveConnectorHeader) {
            SsgActiveConnectorHeader ssgActiveConnectorHeader = (SsgActiveConnectorHeader)entityHeader;
            externalEntityHeader = new ExternalEntityHeader(entityHeader.getStrId(), entityHeader);
            String[] stringArray = a;
            externalEntityHeader.setProperty(stringArray[12], Boolean.toString(ssgActiveConnectorHeader.isInbound()));
            externalEntityHeader.setProperty(stringArray[39], ssgActiveConnectorHeader.getConnectorType());
            return externalEntityHeader;
        }
        if (entityHeader instanceof ResourceEntryHeader) {
            ResourceEntryHeader resourceEntryHeader = (ResourceEntryHeader)entityHeader;
            externalEntityHeader = new ExternalEntityHeader(entityHeader.getStrId(), entityHeader.getType(), entityHeader.getStrId(), resourceEntryHeader.getUri(), entityHeader.getDescription(), entityHeader.getVersion());
            try {
                externalEntityHeader.setProperty(a[21], resourceEntryHeader.getResourceType().name());
                if (resourceEntryHeader.getResourceKey1() != null) {
                    externalEntityHeader.setProperty(a[31], resourceEntryHeader.getResourceKey1());
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            try {
                if (resourceEntryHeader.getResourceKey2() != null) {
                    externalEntityHeader.setProperty(a[33], resourceEntryHeader.getResourceKey2());
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
            try {
                if (resourceEntryHeader.getResourceKey3() == null) return externalEntityHeader;
                externalEntityHeader.setProperty(a[4], resourceEntryHeader.getResourceKey3());
                return externalEntityHeader;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw EntityHeaderUtils.a(illegalArgumentException);
            }
        }
        if (!(entityHeader instanceof GuidEntityHeader)) return new ExternalEntityHeader(entityHeader.getStrId(), entityHeader);
        GuidEntityHeader guidEntityHeader = (GuidEntityHeader)entityHeader;
        return new ExternalEntityHeader(guidEntityHeader.getGuid(), entityHeader.getType(), guidEntityHeader.getGuid(), entityHeader.getName(), entityHeader.getDescription(), entityHeader.getVersion());
    }

    public static EntityHeader fromExternal(ExternalEntityHeader externalEntityHeader) {
        return EntityHeaderUtils.fromExternal(externalEntityHeader, true);
    }

    /*
     * Unable to fully structure code
     */
    public static EntityHeader fromExternal(ExternalEntityHeader var0, boolean var1_1) {
        switch (r.a[var0.getType().ordinal()]) {
            case 1: {
                var2_2 = new GuidEntityHeader(var0.getStrId(), var0.getType(), var0.getName(), var0.getDescription(), var0.getVersion());
                ((GuidEntityHeader)var2_2).setGuid(var0.getExternalId());
                break;
            }
            case 2: 
            case 3: {
                try {
                    if (!var0.getExternalId().contains(":")) {
                        throw new IllegalArgumentException(EntityHeaderUtils.a[9] + String.valueOf(var0.getType()) + EntityHeaderUtils.a[3] + var0.getExternalId());
                    }
                }
                catch (IllegalArgumentException v0) {
                    throw EntityHeaderUtils.a(v0);
                }
                var3_3 = var0.getExternalId().indexOf(":");
                var4_5 = var0.getExternalId().substring(0, var3_3);
                var5_6 = GoidUpgradeMapper.mapId((EntityType)EntityType.ID_PROVIDER_CONFIG, (String)var4_5);
                var6_7 = var0.getExternalId().substring(var3_3 + 1);
                try {
                    if (ValidationUtils.isValidGoid((String)var4_5, (boolean)false)) ** GOTO lbl50
                    if (var4_5.equals(String.valueOf(-2L))) {
                    }
                    ** GOTO lbl35
                }
                catch (IllegalArgumentException v1) {
                    throw EntityHeaderUtils.a(v1);
                }
                var5_6 = IdentityProviderConfigManager.INTERNALPROVIDER_SPECIAL_GOID;
                try {
                    if (!var0.getType().equals((Object)EntityType.USER)) ** GOTO lbl32
                    v2 = EntityHeaderUtils.a[16];
                    ** GOTO lbl34
                }
                catch (IllegalArgumentException v3) {
                    throw EntityHeaderUtils.a(v3);
                }
lbl32:
                // 1 sources

                var9_8 = EntityHeaderUtils.a;
                v2 = var9_8[6];
lbl34:
                // 2 sources

                var6_7 = GoidUpgradeMapper.mapId((String)v2, (String)var6_7).toString();
lbl35:
                // 2 sources

                try {
                    try {
                        if (!ValidationUtils.isValidLong((String)var6_7, (boolean)false, (long)-9223372036854775808L, (long)0x7FFFFFFFFFFFFFFFL)) ** GOTO lbl50
                        if (var0.getType().equals((Object)EntityType.USER)) {
                        }
                        ** GOTO lbl47
                    }
                    catch (IllegalArgumentException v4) {
                        throw EntityHeaderUtils.a(v4);
                    }
                    v5 = EntityHeaderUtils.a[22];
                    ** GOTO lbl49
                }
                catch (IllegalArgumentException v6) {
                    throw EntityHeaderUtils.a(v6);
                }
lbl47:
                // 1 sources

                var9_8 = EntityHeaderUtils.a;
                v5 = var9_8[18];
lbl49:
                // 2 sources

                var6_7 = GoidUpgradeMapper.mapId((String)v5, (String)var6_7).toString();
lbl50:
                // 3 sources

                var2_2 = new IdentityHeader(var5_6, var6_7, var0.getType(), var0.getName(), var0.getDescription(), null, var0.getVersion());
                break;
            }
            case 4: {
                try {
                    if (!var0.getExternalId().contains(":")) {
                        throw new IllegalArgumentException(EntityHeaderUtils.a[37] + String.valueOf(var0.getType()) + EntityHeaderUtils.a[10] + var0.getExternalId());
                    }
                }
                catch (IllegalArgumentException v7) {
                    throw EntityHeaderUtils.a(v7);
                }
                var3_4 = var0.getExternalId().indexOf(":");
                var2_2 = new SsgKeyHeader(var0.getStrId(), GoidUpgradeMapper.mapId((EntityType)EntityType.SSG_KEYSTORE, (String)var0.getExternalId().substring(0, var3_4)), var0.getExternalId().substring(var3_4 + 1), var0.getName());
                break;
            }
            case 5: {
                var9_9 = EntityHeaderUtils.a;
                var2_2 = new JmsEndpointHeader(GoidUpgradeMapper.mapId((EntityType)EntityType.JMS_ENDPOINT, (String)var0.getStrId()).toString(), var0.getName(), var0.getDescription(), var0.getVersion().intValue(), Boolean.parseBoolean(var0.getProperty(var9_9[11])));
                break;
            }
            case 6: {
                var9_10 = EntityHeaderUtils.a;
                var8_11 = var0.getProperty(var9_10[34]);
                try {
                    try {
                        if (var8_11 != null) ** GOTO lbl83
                        if (var1_1) {
                        }
                        ** GOTO lbl81
                    }
                    catch (IllegalArgumentException v8) {
                        throw EntityHeaderUtils.a(v8);
                    }
                    throw new IllegalArgumentException(EntityHeaderUtils.a[1]);
                }
                catch (IllegalArgumentException v9) {
                    throw EntityHeaderUtils.a(v9);
                }
lbl81:
                // 1 sources

                var7_12 = null;
                ** GOTO lbl84
lbl83:
                // 1 sources

                var7_12 = ResourceType.valueOf((String)var8_11);
lbl84:
                // 2 sources

                var9_10 = EntityHeaderUtils.a;
                var2_2 = new ResourceEntryHeader(GoidUpgradeMapper.mapId((EntityType)EntityType.RESOURCE_ENTRY, (String)var0.getStrId()).toString(), var0.getName(), var0.getDescription(), var7_12, var0.getProperty(var9_10[23]), var0.getProperty(var9_10[7]), var0.getProperty(var9_10[13]), var0.getVersion(), null);
                break;
            }
            case 7: {
                var2_2 = new ValueReferenceEntityHeader(var0);
                break;
            }
            case 8: {
                var2_2 = new GuidEntityHeader(var0.getStrId(), var0.getType(), var0.getName(), var0.getDescription(), var0.getVersion());
                ((GuidEntityHeader)var2_2).setGuid(var0.getExternalId());
                break;
            }
            case 9: {
                var2_2 = new GuidEntityHeader(var0.getStrId(), var0.getType(), var0.getName(), var0.getDescription(), var0.getVersion());
                ((GuidEntityHeader)var2_2).setGuid(var0.getStrId());
                break;
            }
            default: {
                var2_2 = new EntityHeader(GoidUpgradeMapper.mapId((EntityType)var0.getType(), (String)var0.getExternalId()).toString(), var0.getType(), var0.getName(), var0.getDescription(), var0.getVersion());
            }
        }
        return var2_2;
    }

    public static Class<? extends Entity> getEntityClass(EntityHeader entityHeader) {
        return EntityTypeRegistry.getEntityClass((EntityType)entityHeader.getType());
    }

    private EntityHeaderUtils() {
    }

    /*
     * Exception decompiling
     */
    private static /* synthetic */ void a(int var0) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [0[TRYBLOCK]], but top level block is 1[SWITCH]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1050)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    private static IllegalArgumentException a(IllegalArgumentException illegalArgumentException) {
        return illegalArgumentException;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[41];
                var3_1 = 0;
                var2_2 = "\u000f\u0018^\u007fS,\u0016k?LbZ\u0015\u0006\u0018^|V#\bk\u0003H|P8\u001d(\u0014\r{F=\n\u0007\u000e\u001fLmS(\u000b\u0003kK\r\f9\u0014^`J?\f.:Hv\f#(\u001e@ Sz\u001b.\u0012E L(\u001d=\u0014_ z#\u001b\"\u0005TGZ,\u000b.\u0003x{V!\u001c\u000e\"\u001fYjM#\u000e'.J}P8\u001f\f9\u0014^`J?\f.:Hv\r\f\u000f\u0018^\u007fS,\u0016k?LbZ-\u0002\u001f[nS$\u000bk8i/Y\"\u001a%\u0015\riP?O.\tYjM#\u000e'QEj^)\n9QBi\u001f9\u0016;\u0014\r\u0003kK\r\r&\u0014^|^*\n\u0018\u001eX}\\(\u0007\"\u001fO`J#\u000b\f9\u0014^`J?\f.:Hv\f>\n\u0003JzR(\u0001?QK`Mm/\u0005\u001eYAJ!\u0003k\u0001L}^ \n?\u0014_/\u0018h\u001clQBi\u001fh\u001ceT^/R8\u001c?QC`Km\r.QCzS!\u0004\u0018>l_\r\"\u001fYjM#\u000e'.X|Z?\f.\u001fYfK4'.\u0010IjM\t-\u0014IPX?\u0000>\u0001\u0017\b\u0010C(Km\b.\u0005\r}Z+\n9\u0014ClZm\u001b$Q\u001e(\u0003HnK(5$\u001fHn]!\n\u0003\u0014LkZ?&-!B|L$\r'\u0014\f9\u0014^`J?\f.%T\u007fZ\b-\u0014IPJ>\n9\f9\u0014^`J?\f.:Hv\u000e\u000f\u001b\u001eAf\\4O\u0019\u0014[fL$\u0000%\u0004\u0018>l_\n\u0018\u0012B\u007fZm;2\u0001H\u0002kY\u0006k0Af^>\u000f\u001b\u001eAf\\4O\u0019\u0014[fL$\u0000%\r&\u0014^|^*\n\u0018\u001eX}\\(\f9\u0014^`J?\f.:Hv\u000e\u0006\u00140aF~\u001e\f9\u0014^`J?\f.:Hv\r\f9\u0014^`J?\f.%T\u007fZ\u0006.\u001fYfK4\u0011\n\u001dDnLm -QdaK(\u001d%\u0010A-\u0002\u001f[nS$\u000bk8i/Y\"\u001a%\u0015\riP?O.\tYjM#\u000e'QEj^)\n9QBi\u001f9\u0016;\u0014\r\n\n\u001dDnLm;2\u0001H";
                var4_3 = "\u000f\u0018^\u007fS,\u0016k?LbZ\u0015\u0006\u0018^|V#\bk\u0003H|P8\u001d(\u0014\r{F=\n\u0007\u000e\u001fLmS(\u000b\u0003kK\r\f9\u0014^`J?\f.:Hv\f#(\u001e@ Sz\u001b.\u0012E L(\u001d=\u0014_ z#\u001b\"\u0005TGZ,\u000b.\u0003x{V!\u001c\u000e\"\u001fYjM#\u000e'.J}P8\u001f\f9\u0014^`J?\f.:Hv\r\f\u000f\u0018^\u007fS,\u0016k?LbZ-\u0002\u001f[nS$\u000bk8i/Y\"\u001a%\u0015\riP?O.\tYjM#\u000e'QEj^)\n9QBi\u001f9\u0016;\u0014\r\u0003kK\r\r&\u0014^|^*\n\u0018\u001eX}\\(\u0007\"\u001fO`J#\u000b\f9\u0014^`J?\f.:Hv\f>\n\u0003JzR(\u0001?QK`Mm/\u0005\u001eYAJ!\u0003k\u0001L}^ \n?\u0014_/\u0018h\u001clQBi\u001fh\u001ceT^/R8\u001c?QC`Km\r.QCzS!\u0004\u0018>l_\r\"\u001fYjM#\u000e'.X|Z?\f.\u001fYfK4'.\u0010IjM\t-\u0014IPX?\u0000>\u0001\u0017\b\u0010C(Km\b.\u0005\r}Z+\n9\u0014ClZm\u001b$Q\u001e(\u0003HnK(5$\u001fHn]!\n\u0003\u0014LkZ?&-!B|L$\r'\u0014\f9\u0014^`J?\f.%T\u007fZ\b-\u0014IPJ>\n9\f9\u0014^`J?\f.:Hv\u000e\u000f\u001b\u001eAf\\4O\u0019\u0014[fL$\u0000%\u0004\u0018>l_\n\u0018\u0012B\u007fZm;2\u0001H\u0002kY\u0006k0Af^>\u000f\u001b\u001eAf\\4O\u0019\u0014[fL$\u0000%\r&\u0014^|^*\n\u0018\u001eX}\\(\f9\u0014^`J?\f.:Hv\u000e\u0006\u00140aF~\u001e\f9\u0014^`J?\f.:Hv\r\f9\u0014^`J?\f.%T\u007fZ\u0006.\u001fYfK4\u0011\n\u001dDnLm -QdaK(\u001d%\u0010A-\u0002\u001f[nS$\u000bk8i/Y\"\u001a%\u0015\riP?O.\tYjM#\u000e'QEj^)\n9QBi\u001f9\u0016;\u0014\r\n\n\u001dDnLm;2\u0001H".length();
                var1_4 = 12;
                var0_5 = -1;
lbl7:
                // 2 sources

                while (true) {
                    v0 = 25;
                    v1 = ++var0_5;
                    v2 = var2_2.substring(v1, v1 + var1_4);
                    v3 = -1;
                    break block9;
                    break;
                }
lbl13:
                // 1 sources

                while (true) {
                    var5[var3_1++] = EntityHeaderUtils.a(v0, EntityHeaderUtils.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "h^\u0003!\u001an[dC96\u000fh\bJ]\u0004.\f-`m";
                    var4_3 = "h^\u0003!\u001an[dC96\u000fh\bJ]\u0004.\f-`m".length();
                    var1_4 = 13;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 89;
                        v4 = ++var0_5;
                        v2 = var2_2.substring(v4, v4 + var1_4);
                        v3 = 0;
                        break block9;
                        break;
                    }
                    break;
                }
lbl28:
                // 1 sources

                while (true) {
                    var5[var3_1++] = EntityHeaderUtils.a(v0, EntityHeaderUtils.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    break block10;
                    break;
                }
            }
            switch (v3) {
                default: {
                    ** continue;
                }
                ** case 0:
lbl39:
                // 1 sources

                ** continue;
            }
        }
        EntityHeaderUtils.a = var5;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x76);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String a(int n2, char[] cArray) {
        char[] cArray2;
        block11: {
            int n3;
            int n4;
            int n5;
            block10: {
                n5 = n2;
                cArray2 = cArray;
                n4 = cArray.length;
                n3 = 0;
                if (!true) break block10;
                n4 = n4;
                if (n4 <= n3) break block11;
            }
            do {
                n5 = n5;
                cArray2 = cArray2;
                int n6 = n3;
                cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                    case 0 -> 82;
                    case 1 -> 104;
                    case 2 -> 52;
                    case 3 -> 22;
                    case 4 -> 38;
                    case 5 -> 84;
                    default -> 118;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

