/** * Gets a set containing all flows in this summary object regardless of the * method they are in * * @return A flat set of all flows contained in this summary object */ public Set<MethodFlow> getAllFlows() { return this.flows == null ? null : this.flows.values(); }
/** * Gets a set containing all clears (kill taints) in this summary object * regardless of the method they are in * * @return A flat set of all clears (kill taints) contained in this summary * object */ public Set<MethodClear> getAllClears() { return this.clears == null ? null : this.clears.values(); }
/** * Gets the total number of flows in this summary object * * @return The total number of flows in this summary object */ public int getFlowCount() { return this.flows == null || this.flows.isEmpty() ? 0 : this.flows.values().size(); }
/** * Gets the user controls found in the layout XML file. The result is a mapping * from the id to the respective layout control. * * @return The layout controls found in the XML file. */ public Map<Integer, AndroidLayoutControl> getUserControlsByID() { Map<Integer, AndroidLayoutControl> res = new HashMap<>(); for (AndroidLayoutControl lc : this.userControls.values()) { if (lc.getID() != -1) res.put(lc.getID(), lc); } return res; }
callbacks = this.callbackMethods.values(); else callbacks = this.callbackMethods.get(entryPoint);
@Test(timeout = 300000) public void pathSkipTest() { IInfoflow infoflow = initInfoflow(); List<String> epoints = new ArrayList<String>(); epoints.add("<soot.jimple.infoflow.test.OtherTestCode: void pathSkipTest()>"); infoflow.computeInfoflow(appPath, libPath, epoints, sources, sinks); checkInfoflow(infoflow, 1); Assert.assertEquals(1, infoflow.getResults().size()); Assert.assertEquals(1, infoflow.getResults().getResults().values().size()); }