package com.l7tech.server.uddi;

import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.objectmodel.Goid;

public abstract class UDDITaskFactory {
   public abstract UDDITaskFactory.UDDITask buildUDDITask(o var1);

   public abstract static class UDDIHandledTaskException extends UDDITaskFactory.UDDITaskException {
      static final long serialVersionUID = -2195696692866828529L;

      protected UDDIHandledTaskException() {
      }

      public UDDIHandledTaskException(String var1) {
         super(var1);
      }

      public UDDIHandledTaskException(String var1, Throwable var2) {
         super(var1, var2);
      }

      public abstract void handleTaskError();
   }

   public abstract static class UDDITask {
      public abstract void apply(UDDITaskFactory.UDDITaskContext var1) throws UDDITaskFactory.UDDITaskException;
   }

   public interface UDDITaskContext {
      String getSubscriptionNotificationURL(Goid var1);

      String getSubscriptionBindingKey(Goid var1);

      void notifyEvent(o var1);

      void logAndAudit(AuditDetailMessage var1, Throwable var2, String... var3);

      void logAndAudit(AuditDetailMessage var1, String... var2);

      void logAndAudit(AuditDetailMessage var1);

      int getMaxRetryAttempts();

      void flushSession();
   }

   public static class UDDITaskException extends Exception {
      static final long serialVersionUID = -8991794480863106949L;

      public UDDITaskException() {
      }

      public UDDITaskException(String var1) {
         super(var1);
      }

      public UDDITaskException(String var1, Throwable var2) {
         super(var1, var2);
      }
   }
}
