@Override
 public boolean isCompileTime(Set<GraphTargetItem> dependencies) {
   if (dependencies.contains(value)) {
     return false;
   }
   dependencies.add(value);
   return value.isCompileTime(dependencies);
 }
  @Override
  public void translate(
      TranslateStack stack,
      List<GraphTargetItem> output,
      HashMap<Integer, String> regNames,
      HashMap<String, GraphTargetItem> variables,
      HashMap<String, GraphTargetItem> functions,
      int staticOperation,
      String path) {
    GraphTargetItem targetString = stack.pop();
    GraphTargetItem urlString = stack.pop();
    Integer num = null;
    if (targetString.isCompileTime()) {
      Object res = targetString.getResult();
      if (res instanceof String) {
        String tarStr = (String) res;
        String levelPrefix = "_level";
        if (tarStr.startsWith(levelPrefix)) {
          try {
            num = Integer.valueOf(tarStr.substring(levelPrefix.length()));
          } catch (NumberFormatException nfe) {
          }
        }
      }
    }
    if (loadVariablesFlag) {
      if (num != null) {
        output.add(
            new LoadVariablesNumActionItem(
                this,
                urlString,
                new DirectValueActionItem(null, 0, (Long) (long) (int) num, new ArrayList<>()),
                sendVarsMethod));
      } else {
        output.add(new LoadVariablesActionItem(this, urlString, targetString, sendVarsMethod));
      }
    } else if (loadTargetFlag) {
      if ((urlString instanceof DirectValueActionItem) && (urlString.getResult().equals(""))) {
        output.add(new UnLoadMovieActionItem(this, targetString));
      } else {
        output.add(new LoadMovieActionItem(this, urlString, targetString, sendVarsMethod));
      }
    } else {
      String printPrefix = "print:#";
      String printAsBitmapPrefix = "printasbitmap:#";
      String urlStr = null;
      if (urlString.isCompileTime() && (urlString.getResult() instanceof String)) {
        urlStr = (String) urlString.getResult();
      }

      if (num != null) {
        if ("".equals(urlStr)) {
          output.add(
              new UnLoadMovieNumActionItem(
                  this,
                  new DirectValueActionItem(null, 0, (Long) (long) (int) num, new ArrayList<>())));
        } else if (urlStr != null && urlStr.startsWith(printPrefix)) {
          output.add(
              new PrintNumActionItem(
                  this,
                  new DirectValueActionItem((Long) (long) (int) num),
                  new DirectValueActionItem(urlStr.substring(printPrefix.length()))));
        } else if (urlStr != null && urlStr.startsWith(printAsBitmapPrefix)) {
          output.add(
              new PrintAsBitmapNumActionItem(
                  this,
                  new DirectValueActionItem((Long) (long) (int) num),
                  new DirectValueActionItem(urlStr.substring(printAsBitmapPrefix.length()))));
        } else {
          output.add(
              new LoadMovieNumActionItem(
                  this,
                  urlString,
                  new DirectValueActionItem(null, 0, (Long) (long) (int) num, new ArrayList<>()),
                  sendVarsMethod));
        }
      } else {
        if (urlStr != null && urlStr.startsWith(printPrefix)) {
          output.add(
              new PrintActionItem(
                  this,
                  targetString,
                  new DirectValueActionItem(urlStr.substring(printPrefix.length()))));
        } else if (urlStr != null && urlStr.startsWith(printAsBitmapPrefix)) {
          output.add(
              new PrintAsBitmapActionItem(
                  this,
                  targetString,
                  new DirectValueActionItem(urlStr.substring(printAsBitmapPrefix.length()))));
        } else {
          output.add(new GetURL2ActionItem(this, urlString, targetString, sendVarsMethod));
        }
      }
    }
  }