// Path: src/main/java/minhhai2209/jirapluginconverter/connect/descriptor/webitem/WebItemTarget.java
// @JsonIgnoreProperties(ignoreUnknown=true)
// public class WebItemTarget {
// 
//   public static enum Type {
//     PAGE, DIALOG, INLINEDIALOG, page, dialog, inlinedialog;
//   }
// 
//   private Type type;
// 
//   private Map<String, Object> options;
// 
//   public Type getType() {
//     return type;
//   }
// 
//   public void setType(Type type) {
//     this.type = type;
//   }
// 
//   public Map<String, Object> getOptions() {
//     return options;
//   }
// 
//   public void setOptions(Map<String, Object> options) {
//     this.options = options;
//   }
// 
// }
// 
// Path: src/main/java/minhhai2209/jirapluginconverter/connect/descriptor/webitem/WebItemTarget.java
// public static enum Type {
//   PAGE, DIALOG, INLINEDIALOG, page, dialog, inlinedialog;
// }
// 
// Path: src/main/java/minhhai2209/jirapluginconverter/plugin/utils/EnumUtils.java
// public class EnumUtils {
// 
//   public static boolean equals(Enum<?> left, Enum<?> right) {
//     return left.name().equalsIgnoreCase(right.name());
//   }
// }


import java.util.HashMap;
import java.util.List;
import java.util.Map;
import minhhai2209.jirapluginconverter.connect.descriptor.Context;
import minhhai2209.jirapluginconverter.connect.descriptor.Modules;
import minhhai2209.jirapluginconverter.connect.descriptor.webitem.WebItem;
import minhhai2209.jirapluginconverter.connect.descriptor.webitem.WebItemTarget;
import minhhai2209.jirapluginconverter.connect.descriptor.webitem.WebItemTarget.Type;
import minhhai2209.jirapluginconverter.plugin.utils.EnumUtils;
    List<WebItem> webItems = modules.getWebItems();
    webItemLookup = new HashMap<String, WebItem>();
    if (webItems != null) {
      for (WebItem webItem : webItems) {
        String key = webItem.getKey();
        webItemLookup.put(key, webItem);
      }
    }
  }

  public static String getFullUrl(WebItem webItem) {
    String webItemUrl = webItem.getUrl();
    if (webItemUrl.startsWith("http://") || webItemUrl.startsWith("https://")) {
      return webItemUrl;
    }
    Context context = webItem.getContext();
    if (context == null) {
      context = Context.addon;
    }
    WebItemTarget target = webItem.getTarget();
    Type type;
    if (target == null) {
      type = Type.page;
    } else {
      type = target.getType();
    }
    if (type == null) {
      type = Type.page;
    }
    String baseUrl;
// Path: src/main/java/minhhai2209/jirapluginconverter/connect/descriptor/webitem/WebItemTarget.java
// @JsonIgnoreProperties(ignoreUnknown=true)
// public class WebItemTarget {
// 
//   public static enum Type {
//     PAGE, DIALOG, INLINEDIALOG, page, dialog, inlinedialog;
//   }
// 
//   private Type type;
// 
//   private Map<String, Object> options;
// 
//   public Type getType() {
//     return type;
//   }
// 
//   public void setType(Type type) {
//     this.type = type;
//   }
// 
//   public Map<String, Object> getOptions() {
//     return options;
//   }
// 
//   public void setOptions(Map<String, Object> options) {
//     this.options = options;
//   }
// 
// }
// 
// Path: src/main/java/minhhai2209/jirapluginconverter/connect/descriptor/webitem/WebItemTarget.java
// public static enum Type {
//   PAGE, DIALOG, INLINEDIALOG, page, dialog, inlinedialog;
// }
// 
// Path: src/main/java/minhhai2209/jirapluginconverter/plugin/utils/EnumUtils.java
// public class EnumUtils {
// 
//   public static boolean equals(Enum<?> left, Enum<?> right) {
//     return left.name().equalsIgnoreCase(right.name());
//   }
// }


// Path: src/main/java/minhhai2209/jirapluginconverter/plugin/setting/WebItemUtils.java
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import minhhai2209.jirapluginconverter.connect.descriptor.Context;
import minhhai2209.jirapluginconverter.connect.descriptor.Modules;
import minhhai2209.jirapluginconverter.connect.descriptor.webitem.WebItem;
import minhhai2209.jirapluginconverter.connect.descriptor.webitem.WebItemTarget;
import minhhai2209.jirapluginconverter.connect.descriptor.webitem.WebItemTarget.Type;
import minhhai2209.jirapluginconverter.plugin.utils.EnumUtils;

    List<WebItem> webItems = modules.getWebItems();
    webItemLookup = new HashMap<String, WebItem>();
    if (webItems != null) {
      for (WebItem webItem : webItems) {
        String key = webItem.getKey();
        webItemLookup.put(key, webItem);
      }
    }
  }

  public static String getFullUrl(WebItem webItem) {
    String webItemUrl = webItem.getUrl();
    if (webItemUrl.startsWith("http://") || webItemUrl.startsWith("https://")) {
      return webItemUrl;
    }
    Context context = webItem.getContext();
    if (context == null) {
      context = Context.addon;
    }
    WebItemTarget target = webItem.getTarget();
    Type type;
    if (target == null) {
      type = Type.page;
    } else {
      type = target.getType();
    }
    if (type == null) {
      type = Type.page;
    }
    String baseUrl;
    if (EnumUtils.equals(type, Type.page)) {