package com.l7tech.external.assertions.gatewaymanagement.server;

import com.l7tech.gateway.api.JMSConnection;
import com.l7tech.gateway.api.JMSDestinationDetail;
import com.l7tech.gateway.api.JMSDestinationMO;
import com.l7tech.gateway.api.ManagedObjectFactory;
import com.l7tech.gateway.api.JMSConnection.JMSProviderType;
import com.l7tech.gateway.common.security.rbac.OperationType;
import com.l7tech.gateway.common.transport.jms.JmsConnection;
import com.l7tech.gateway.common.transport.jms.JmsEndpoint;
import com.l7tech.gateway.common.transport.jms.JmsProviderType;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.JmsEndpointHeader;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.objectmodel.PersistentEntity;
import com.l7tech.server.policy.variable.ServerVariables;
import com.l7tech.server.security.rbac.RbacServices;
import com.l7tech.server.security.rbac.SecurityFilter;
import com.l7tech.server.security.rbac.SecurityZoneManager;
import com.l7tech.server.transport.jms.JmsConnectionManager;
import com.l7tech.server.transport.jms.JmsEndpointManager;
import com.l7tech.util.GoidUpgradeMapper;
import com.l7tech.util.Option;
import com.l7tech.util.TextUtils;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Matcher;
import org.springframework.transaction.PlatformTransactionManager;

@ResourceFactory.ResourceType(type = JMSDestinationMO.class)
public class JMSDestinationResourceFactory extends SecurityZoneableEntityManagerResourceFactory<JMSDestinationMO, JmsEndpoint, JmsEndpointHeader> {
   private final JmsConnectionManager o;
   private static final String[] p;

   public JMSDestinationResourceFactory(
      RbacServices var1, SecurityFilter var2, PlatformTransactionManager var3, JmsEndpointManager var4, JmsConnectionManager var5, SecurityZoneManager var6
   ) {
      super(false, false, var1, var2, var3, var4, var6);
      this.o = var5;
   }

   protected EntityManagerResourceFactory.EntityBag<JmsEndpoint> loadEntityBag(JmsEndpoint var1) throws ObjectModelException {
      JmsConnection var2 = (JmsConnection)this.o.findByPrimaryKey(var1.getConnectionGoid());

      try {
         if (var2 == null) {
            throw new ResourceFactory.ResourceAccessException(p[9] + var1.getConnectionGoid());
         }
      } catch (ObjectModelException var3) {
         throw a(var3);
      }

      this.checkPermitted(OperationType.READ, null, var2);
      return new JMSDestinationResourceFactory.JmsEntityBag(var1, var2);
   }

   public JMSDestinationMO asResource(JmsEndpoint var1) {
      try {
         return this.asResource(this.loadEntityBag(var1));
      } catch (ObjectModelException var3) {
         return null;
      }
   }

   protected JMSDestinationMO asResource(EntityManagerResourceFactory.EntityBag<JmsEndpoint> var1) {
      JMSDestinationResourceFactory.JmsEntityBag var2 = this.cast(var1, JMSDestinationResourceFactory.JmsEntityBag.class);
      JmsEndpoint var3 = var2.getJmsEndpoint();
      JmsConnection var4 = var2.getJmsConnection();
      JMSDestinationDetail var5 = ManagedObjectFactory.createJMSDestinationDetails();

      JMSDestinationDetail var10000;
      boolean var10001;
      label31: {
         try {
            var5.setId(var3.getId());
            var5.setVersion(var3.getVersion());
            var5.setName(var3.getName());
            var5.setDestinationName(var3.getDestinationName());
            var10000 = var5;
            if (!var3.isDisabled()) {
               var10001 = true;
               break label31;
            }
         } catch (ResourceFactory.ResourceAccessException var10) {
            throw a(var10);
         }

         var10001 = false;
      }

      var10000.setEnabled(var10001);
      var5.setTemplate(var3.isTemplate());
      var5.setInbound(var3.isMessageSource());
      Map var6 = this.getProperties(var3, JmsEndpoint.class);

      String var10002;
      label23: {
         try {
            var11 = var6;
            var12 = p[1];
            if (var3.isQueue()) {
               var10002 = JMSDestinationDetail.TYPE_QUEUE;
               break label23;
            }
         } catch (ResourceFactory.ResourceAccessException var9) {
            throw a(var9);
         }

         var10002 = JMSDestinationDetail.TYPE_TOPIC;
      }

      var11.put(var12, var10002);
      var5.setProperties(var6);
      JMSConnection var7 = ManagedObjectFactory.createJMSConnection();
      var7.setId(var4.getId());
      var7.setVersion(var4.getVersion());
      var7.setProviderType(this.a(var4.getProviderType()));
      var7.setTemplate(var4.isTemplate());
      var7.setProperties(this.getProperties(var4, JmsConnection.class));
      var7.setContextPropertiesTemplate(this.a(var4.properties()));
      JMSDestinationMO var8 = ManagedObjectFactory.createJMSDestination();
      var8.setId(var3.getId());
      var8.setJmsDestinationDetail(var5);
      var8.setJmsConnection(var7);
      this.doSecurityZoneAsResource(var8, var3);
      return var8;
   }

   @Override
   public EntityManagerResourceFactory.EntityBag<JmsEndpoint> fromResourceAsBag(Object var1, boolean var2) throws ResourceFactory.InvalidResourceException {
      try {
         if (!(var1 instanceof JMSDestinationMO)) {
            throw new ResourceFactory.InvalidResourceException(ResourceFactory.InvalidResourceException.ExceptionType.UNEXPECTED_TYPE, p[8]);
         }
      } catch (ResourceFactory.InvalidResourceException var16) {
         throw a(var16);
      }

      JMSDestinationMO var3 = (JMSDestinationMO)var1;
      JMSDestinationDetail var4 = var3.getJmsDestinationDetail();
      JMSConnection var5 = var3.getJmsConnection();

      try {
         if (var4 == null) {
            throw new ResourceFactory.InvalidResourceException(ResourceFactory.InvalidResourceException.ExceptionType.MISSING_VALUES, p[3]);
         }
      } catch (ResourceFactory.InvalidResourceException var11) {
         throw a(var11);
      }

      try {
         if (var5 == null) {
            throw new ResourceFactory.InvalidResourceException(ResourceFactory.InvalidResourceException.ExceptionType.MISSING_VALUES, p[6]);
         }
      } catch (ResourceFactory.InvalidResourceException var15) {
         throw a(var15);
      }

      JmsEndpoint var6 = new JmsEndpoint();

      JmsEndpoint var10000;
      boolean var10001;
      label59: {
         try {
            var6.setName(var4.getName());
            var6.setDestinationName(var4.getDestinationName());
            var6.setQueue(this.a(var4.getProperties()));
            var10000 = var6;
            if (!var4.isEnabled()) {
               var10001 = true;
               break label59;
            }
         } catch (ResourceFactory.InvalidResourceException var14) {
            throw a(var14);
         }

         var10001 = false;
      }

      try {
         var10000.setDisabled(var10001);
         if (var4.isTemplate() != null) {
            var6.setTemplate(var4.isTemplate());
         }
      } catch (ResourceFactory.InvalidResourceException var13) {
         throw a(var13);
      }

      var6.setMessageSource(var4.isInbound());
      this.setProperties(var6, var4.getProperties(), JmsEndpoint.class);
      JmsConnection var7 = new JmsConnection();

      try {
         var7.setName(var4.getName());
         var7.setProviderType(this.a(var5.getProviderType()));
         if (var5.isTemplate() != null) {
            var7.setTemplate(var5.isTemplate());
         }
      } catch (ResourceFactory.InvalidResourceException var12) {
         throw a(var12);
      }

      var7.properties(this.b(var5.getContextPropertiesTemplate()));
      this.setProperties(var7, var5.getProperties(), JmsConnection.class);
      Properties var8 = var7.properties();
      String var9 = var8.getProperty(JmsConnection.PROP_HARDWIRED_SERVICE_ID);
      if (var9 != null) {
         Goid var10 = GoidUpgradeMapper.mapId(EntityType.SERVICE, var9);
         var8.setProperty(JmsConnection.PROP_HARDWIRED_SERVICE_ID, var10.toString());
         var7.properties(var8);
      }

      this.doSecurityZoneFromResource(var3, var6, var2);
      var7.setSecurityZone(var6.getSecurityZone());
      return new JMSDestinationResourceFactory.JmsEntityBag(var6, var7);
   }

   @Override
   protected void updateEntityBag(EntityManagerResourceFactory.EntityBag<JmsEndpoint> param1, EntityManagerResourceFactory.EntityBag<JmsEndpoint> param2) throws ResourceFactory.InvalidResourceException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 0
      // 001: aload 1
      // 002: ldc com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory$JmsEntityBag
      // 004: invokevirtual com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.cast (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      // 007: checkcast com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory$JmsEntityBag
      // 00a: astore 3
      // 00b: aload 3
      // 00c: invokevirtual com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory$JmsEntityBag.getJmsEndpoint ()Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;
      // 00f: astore 4
      // 011: aload 3
      // 012: invokevirtual com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory$JmsEntityBag.getJmsConnection ()Lcom/l7tech/gateway/common/transport/jms/JmsConnection;
      // 015: astore 5
      // 017: aload 0
      // 018: aload 2
      // 019: ldc com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory$JmsEntityBag
      // 01b: invokevirtual com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.cast (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      // 01e: checkcast com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory$JmsEntityBag
      // 021: astore 6
      // 023: aload 6
      // 025: invokevirtual com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory$JmsEntityBag.getJmsEndpoint ()Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;
      // 028: astore 7
      // 02a: aload 6
      // 02c: invokevirtual com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory$JmsEntityBag.getJmsConnection ()Lcom/l7tech/gateway/common/transport/jms/JmsConnection;
      // 02f: astore 8
      // 031: aload 0
      // 032: aload 5
      // 034: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 037: aload 8
      // 039: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 03c: invokevirtual com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.verifyIdentifier (Lcom/l7tech/objectmodel/Goid;Lcom/l7tech/objectmodel/Goid;)V
      // 03f: aload 4
      // 041: aload 7
      // 043: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getName ()Ljava/lang/String;
      // 046: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setName (Ljava/lang/String;)V
      // 049: aload 4
      // 04b: aload 7
      // 04d: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getDestinationName ()Ljava/lang/String;
      // 050: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setDestinationName (Ljava/lang/String;)V
      // 053: aload 4
      // 055: aload 7
      // 057: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.isQueue ()Z
      // 05a: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setQueue (Z)V
      // 05d: aload 4
      // 05f: aload 7
      // 061: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.isDisabled ()Z
      // 064: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setDisabled (Z)V
      // 067: aload 4
      // 069: aload 7
      // 06b: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.isTemplate ()Z
      // 06e: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setTemplate (Z)V
      // 071: aload 4
      // 073: aload 7
      // 075: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.isMessageSource ()Z
      // 078: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setMessageSource (Z)V
      // 07b: aload 4
      // 07d: aload 7
      // 07f: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getAcknowledgementType ()Lcom/l7tech/gateway/common/transport/jms/JmsAcknowledgementType;
      // 082: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setAcknowledgementType (Lcom/l7tech/gateway/common/transport/jms/JmsAcknowledgementType;)V
      // 085: aload 4
      // 087: aload 7
      // 089: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getFailureDestinationName ()Ljava/lang/String;
      // 08c: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setFailureDestinationName (Ljava/lang/String;)V
      // 08f: aload 4
      // 091: aload 7
      // 093: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getOutboundMessageType ()Lcom/l7tech/gateway/common/transport/jms/JmsOutboundMessageType;
      // 096: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setOutboundMessageType (Lcom/l7tech/gateway/common/transport/jms/JmsOutboundMessageType;)V
      // 099: aload 4
      // 09b: aload 7
      // 09d: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getReplyToQueueName ()Ljava/lang/String;
      // 0a0: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setReplyToQueueName (Ljava/lang/String;)V
      // 0a3: aload 4
      // 0a5: aload 7
      // 0a7: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getReplyType ()Lcom/l7tech/gateway/common/transport/jms/JmsReplyType;
      // 0aa: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setReplyType (Lcom/l7tech/gateway/common/transport/jms/JmsReplyType;)V
      // 0ad: aload 4
      // 0af: aload 7
      // 0b1: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getUsername ()Ljava/lang/String;
      // 0b4: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setUsername (Ljava/lang/String;)V
      // 0b7: aload 7
      // 0b9: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getPassword ()Ljava/lang/String;
      // 0bc: ifnull 0d0
      // 0bf: aload 4
      // 0c1: aload 7
      // 0c3: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getPassword ()Ljava/lang/String;
      // 0c6: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setPassword (Ljava/lang/String;)V
      // 0c9: goto 0d0
      // 0cc: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0cf: athrow
      // 0d0: aload 4
      // 0d2: aload 7
      // 0d4: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.isUseMessageIdForCorrelation ()Z
      // 0d7: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setUseMessageIdForCorrelation (Z)V
      // 0da: aload 4
      // 0dc: aload 7
      // 0de: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getRequestMaxSize ()J
      // 0e1: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setRequestMaxSize (J)V
      // 0e4: aload 4
      // 0e6: aload 7
      // 0e8: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getSecurityZone ()Lcom/l7tech/objectmodel/SecurityZone;
      // 0eb: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.setSecurityZone (Lcom/l7tech/objectmodel/SecurityZone;)V
      // 0ee: aload 5
      // 0f0: aload 8
      // 0f2: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getProviderType ()Lcom/l7tech/gateway/common/transport/jms/JmsProviderType;
      // 0f5: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setProviderType (Lcom/l7tech/gateway/common/transport/jms/JmsProviderType;)V
      // 0f8: aload 5
      // 0fa: aload 8
      // 0fc: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.isTemplate ()Z
      // 0ff: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setTemplate (Z)V
      // 102: aload 5
      // 104: aload 8
      // 106: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getDestinationFactoryUrl ()Ljava/lang/String;
      // 109: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setDestinationFactoryUrl (Ljava/lang/String;)V
      // 10c: aload 5
      // 10e: aload 8
      // 110: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getInitialContextFactoryClassname ()Ljava/lang/String;
      // 113: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setInitialContextFactoryClassname (Ljava/lang/String;)V
      // 116: aload 5
      // 118: aload 8
      // 11a: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getJndiUrl ()Ljava/lang/String;
      // 11d: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setJndiUrl (Ljava/lang/String;)V
      // 120: aload 5
      // 122: aload 8
      // 124: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getQueueFactoryUrl ()Ljava/lang/String;
      // 127: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setQueueFactoryUrl (Ljava/lang/String;)V
      // 12a: aload 5
      // 12c: aload 8
      // 12e: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getTopicFactoryUrl ()Ljava/lang/String;
      // 131: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setTopicFactoryUrl (Ljava/lang/String;)V
      // 134: aload 5
      // 136: aload 8
      // 138: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getUsername ()Ljava/lang/String;
      // 13b: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setUsername (Ljava/lang/String;)V
      // 13e: aload 8
      // 140: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getPassword ()Ljava/lang/String;
      // 143: ifnull 157
      // 146: aload 5
      // 148: aload 8
      // 14a: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getPassword ()Ljava/lang/String;
      // 14d: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setPassword (Ljava/lang/String;)V
      // 150: goto 157
      // 153: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 156: athrow
      // 157: aload 8
      // 159: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.properties ()Ljava/util/Properties;
      // 15c: astore 9
      // 15e: aload 5
      // 160: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.properties ()Ljava/util/Properties;
      // 163: getstatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.p [Ljava/lang/String;
      // 166: bipush 10
      // 168: aaload
      // 169: invokevirtual java/util/Properties.containsKey (Ljava/lang/Object;)Z
      // 16c: ifeq 1a2
      // 16f: aload 9
      // 171: getstatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.p [Ljava/lang/String;
      // 174: bipush 2
      // 175: aaload
      // 176: invokevirtual java/util/Properties.containsKey (Ljava/lang/Object;)Z
      // 179: ifne 1a2
      // 17c: goto 183
      // 17f: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 182: athrow
      // 183: aload 9
      // 185: getstatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.p [Ljava/lang/String;
      // 188: bipush 2
      // 189: aaload
      // 18a: aload 5
      // 18c: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.properties ()Ljava/util/Properties;
      // 18f: getstatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.p [Ljava/lang/String;
      // 192: bipush 2
      // 193: aaload
      // 194: invokevirtual java/util/Properties.getProperty (Ljava/lang/String;)Ljava/lang/String;
      // 197: invokevirtual java/util/Properties.setProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
      // 19a: pop
      // 19b: goto 1a2
      // 19e: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a1: athrow
      // 1a2: aload 5
      // 1a4: aload 9
      // 1a6: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.properties (Ljava/util/Properties;)V
      // 1a9: aload 5
      // 1ab: aload 8
      // 1ad: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getSecurityZone ()Lcom/l7tech/objectmodel/SecurityZone;
      // 1b0: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.setSecurityZone (Lcom/l7tech/objectmodel/SecurityZone;)V
      // 1b3: return
      // try (24 -> 85): 86 com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException
      // try (88 -> 139): 140 com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException
      // try (145 -> 158): 159 com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException
      // try (152 -> 173): 174 com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException
   }

   @Override
   protected void afterDeleteEntity(EntityManagerResourceFactory.EntityBag<JmsEndpoint> var1) throws ObjectModelException {
      JMSDestinationResourceFactory.JmsEntityBag var2 = this.cast(var1, JMSDestinationResourceFactory.JmsEntityBag.class);
      JmsConnection var3 = var2.getJmsConnection();
      this.checkPermitted(OperationType.DELETE, null, var3);
      this.o.delete(var3);
   }

   @Override
   protected void afterUpdateEntity(EntityManagerResourceFactory.EntityBag<JmsEndpoint> var1) throws ObjectModelException {
      JMSDestinationResourceFactory.JmsEntityBag var2 = this.cast(var1, JMSDestinationResourceFactory.JmsEntityBag.class);
      JmsConnection var3 = var2.getJmsConnection();
      this.checkPermitted(OperationType.UPDATE, null, var3);
      this.o.update(var3);
   }

   @Override
   protected void beforeCreateEntity(EntityManagerResourceFactory.EntityBag<JmsEndpoint> var1) throws ObjectModelException {
      JMSDestinationResourceFactory.JmsEntityBag var2 = this.cast(var1, JMSDestinationResourceFactory.JmsEntityBag.class);
      JmsConnection var3 = var2.getJmsConnection();
      this.checkPermitted(OperationType.CREATE, null, var3);
      Goid var4 = this.o.save(var3);
      var2.getJmsEndpoint().setConnectionGoid(var4);
   }

   private boolean a(Map<String, Object> var1) throws ResourceFactory.InvalidResourceException {
      boolean var2 = true;
      String[] var4 = p;
      Option var3 = this.getProperty(var1, var4[7], Option.none(), String.class).map(TextUtils.trim());

      try {
         if (!var3.isSome()) {
            return var2;
         }

         if (JMSDestinationDetail.TYPE_QUEUE.equals(var3.some())) {
            return true;
         }
      } catch (ResourceFactory.InvalidResourceException var5) {
         throw a(var5);
      }

      if (!JMSDestinationDetail.TYPE_TOPIC.equals(var3.some())) {
         throw new ResourceFactory.InvalidResourceException(ResourceFactory.InvalidResourceException.ExceptionType.INVALID_VALUES, p[11] + var3 + "'");
      } else {
         return false;
      }
   }

   private JmsProviderType a(JMSProviderType var1) throws ResourceFactory.InvalidResourceException {
      Object var2 = null;

      try {
         if (var1 == null) {
            return (JmsProviderType)var2;
         }

         switch (a2.a[var1.ordinal()]) {
            case 1:
               return JmsProviderType.Tibco;
            case 2:
               return JmsProviderType.MQ;
            case 3:
               return JmsProviderType.Weblogic;
            default:
               throw new ResourceFactory.InvalidResourceException(ResourceFactory.InvalidResourceException.ExceptionType.INVALID_VALUES, p[5] + var1 + "'");
         }
      } catch (ResourceFactory.InvalidResourceException var3) {
         throw a(var3);
      }
   }

   private JMSProviderType a(JmsProviderType var1) throws ResourceFactory.ResourceAccessException {
      Object var2 = null;

      try {
         if (var1 == null) {
            return (JMSProviderType)var2;
         }

         switch (a2.b[var1.ordinal()]) {
            case 1:
               return JMSProviderType.TIBCO_EMS;
            case 2:
               return JMSProviderType.WebSphere_MQ;
            case 3:
               return JMSProviderType.Weblogic;
            default:
               throw new ResourceFactory.ResourceAccessException(p[4] + var1 + "'");
         }
      } catch (ResourceFactory.ResourceAccessException var3) {
         throw a(var3);
      }
   }

   private Map<String, Object> a(Properties var1) {
      HashMap var2 = new HashMap();

      for (String var4 : var1.stringPropertyNames()) {
         if (var4.equals(p[2])) {
            Matcher var5 = ServerVariables.SINGLE_SECPASS_PATTERN.matcher(var1.getProperty(var4));

            try {
               if (var5.matches()) {
                  var2.put(var4, var1.getProperty(var4));
               }
            } catch (ResourceFactory.ResourceAccessException var6) {
               throw a(var6);
            }
         } else {
            var2.put(var4, var1.getProperty(var4));
         }
      }

      return var2;
   }

   private Properties b(Map<String, Object> param1) throws ResourceFactory.InvalidResourceException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: new java/util/Properties
      // 03: dup
      // 04: invokespecial java/util/Properties.<init> ()V
      // 07: astore 2
      // 08: aload 1
      // 09: ifnull 7d
      // 0c: aload 1
      // 0d: invokeinterface java/util/Map.entrySet ()Ljava/util/Set; 1
      // 12: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 17: astore 3
      // 18: aload 3
      // 19: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 1e: ifeq 7d
      // 21: aload 3
      // 22: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 27: checkcast java/util/Map$Entry
      // 2a: astore 4
      // 2c: aload 4
      // 2e: invokeinterface java/util/Map$Entry.getValue ()Ljava/lang/Object; 1
      // 33: instanceof java/lang/String
      // 36: ifne 61
      // 39: aload 4
      // 3b: invokeinterface java/util/Map$Entry.getValue ()Ljava/lang/Object; 1
      // 40: ifnonnull 51
      // 43: goto 4a
      // 46: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 49: athrow
      // 4a: goto 18
      // 4d: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 50: athrow
      // 51: new com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException
      // 54: dup
      // 55: getstatic com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException$ExceptionType.UNEXPECTED_TYPE Lcom/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException$ExceptionType;
      // 58: getstatic com/l7tech/external/assertions/gatewaymanagement/server/JMSDestinationResourceFactory.p [Ljava/lang/String;
      // 5b: bipush 0
      // 5c: aaload
      // 5d: invokespecial com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException.<init> (Lcom/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException$ExceptionType;Ljava/lang/String;)V
      // 60: athrow
      // 61: aload 2
      // 62: aload 4
      // 64: invokeinterface java/util/Map$Entry.getKey ()Ljava/lang/Object; 1
      // 69: checkcast java/lang/String
      // 6c: aload 4
      // 6e: invokeinterface java/util/Map$Entry.getValue ()Ljava/lang/Object; 1
      // 73: checkcast java/lang/String
      // 76: invokevirtual java/util/Properties.setProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
      // 79: pop
      // 7a: goto 18
      // 7d: aload 2
      // 7e: areturn
      // try (17 -> 24): 25 com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException
      // try (21 -> 28): 28 com/l7tech/external/assertions/gatewaymanagement/server/ResourceFactory$InvalidResourceException
   }

   private static Exception a(Exception var0) {
      return var0;
   }

   static {
      String[] var5 = new String[12];
      int var3 = 0;
      String var2 = "Sc\b:NokPe\u0015#Ez?Y7\u001f+Pm(Tr\u001e\u0004Tn\n6 Jv\f2\u000ef*M~\u00144\u000e{.Cb\b:TqeCe\u001f7Ef?Iv\u0016 \u000fM~\t If,\u0000s\u001f'Aa'S\u0017iy\f2La/\u0000g\b<Va/EeZ'Yx.\u00000\u0017iy\f2La/\u0000g\b<Va/EeZ'Yx.\u00000\u0012M~\t If,\u0000t\u0015=Nm(T~\u0015=\u0004Tn\n6\u0018Eo\n6C|.D7\u0010>S(/Ed\u000e:Ni?Ix\u0014\u0018jz\t\u0010Of%Et\u000e:OfkNx\u000esFg>NsZ";
      int var4 = "Sc\b:NokPe\u0015#Ez?Y7\u001f+Pm(Tr\u001e\u0004Tn\n6 Jv\f2\u000ef*M~\u00144\u000e{.Cb\b:TqeCe\u001f7Ef?Iv\u0016 \u000fM~\t If,\u0000s\u001f'Aa'S\u0017iy\f2La/\u0000g\b<Va/EeZ'Yx.\u00000\u0017iy\f2La/\u0000g\b<Va/EeZ'Yx.\u00000\u0012M~\t If,\u0000t\u0015=Nm(T~\u0015=\u0004Tn\n6\u0018Eo\n6C|.D7\u0010>S(/Ed\u000e:Ni?Ix\u0014\u0018jz\t\u0010Of%Et\u000e:OfkNx\u000esFg>NsZ"
         .length();
      char var1 = 24;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 106;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = d(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     p = var5;
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "Ui\u0013-\u0011y5Ra\u000b+\u0011d1\\}\u0017%Knz\\z\u0000(Zy Vi\t?\u000evf\u0013-S~0\u001f|\u001c<Z7s";
                  var4 = "Ui\u0013-\u0011y5Ra\u000b+\u0011d1\\}\u0017%Knz\\z\u0000(Zy Vi\t?\u000evf\u0013-S~0\u001f|\u001c<Z7s".length();
                  var1 = ' ';
                  var7 = -1;
            }

            var10000 = 117;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 33);
      }

      return var10000;
   }

   private static String d(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 74;
            case 1 -> 125;
            case 2 -> 16;
            case 3 -> 57;
            case 4 -> 74;
            case 5 -> 98;
            default -> 33;
         });
      }

      return new String(var10001).intern();
   }

   protected static class JmsEntityBag extends EntityManagerResourceFactory.EntityBag<JmsEndpoint> {
      private final JmsConnection b;

      protected JmsEntityBag(JmsEndpoint var1, JmsConnection var2) {
         super(var1);
         this.b = var2;
      }

      protected JmsEndpoint getJmsEndpoint() {
         return this.getEntity();
      }

      protected JmsConnection getJmsConnection() {
         return this.b;
      }

      @Override
      public Iterator<PersistentEntity> iterator() {
         return Arrays.asList(this.getJmsEndpoint(), this.getJmsConnection()).iterator();
      }
   }
}
