@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)); } } } }