List of usage examples for org.apache.commons.collections CollectionUtils find
public static Object find(Collection collection, Predicate predicate)
From source file:tds.student.sql.repository.ResponseRepository.java
public OpportunityItems insertItems(OpportunityInstance oppInstance, AdaptiveGroup adaptiveGroup, boolean isMsb) throws ReturnStatusException { // create item keys delimited string OpportunityItems opportunityItems = new OpportunityItem().new OpportunityItems(); String itemKeys = getItemKeys(adaptiveGroup.getItems()); // String itemKeys = null; try (SQLConnection connection = getSQLConnection()) { // Original call to insert items. // MultiDataResultSet resultSets = _studentDll.T_InsertItems_SP (connection, oppInstance.getKey (), oppInstance.getSessionKey (), oppInstance.getBrowserKey (), adaptiveGroup.getSegmentPosition (), // adaptiveGroup.getSegmentID (), adaptiveGroup.getPage (), adaptiveGroup.getGroupID (), itemKeys, '|', new Integer (adaptiveGroup.getNumItemsRequired ()), new Float (0), new Integer (0), // false); // New insert items method to improve performance. See comments in module for further details. MultiDataResultSet resultSets = studentInsertItemsService.insertItems(connection, oppInstance.getKey(), oppInstance.getSessionKey(), oppInstance.getBrowserKey(), adaptiveGroup.getSegmentPosition(), adaptiveGroup.getSegmentID(), adaptiveGroup.getPage(), adaptiveGroup.getGroupID(), itemKeys, '|', adaptiveGroup.getNumItemsRequired(), 0f, isMsb); Iterator<SingleDataResultSet> results = resultSets.getResultSets(); // first expected result set SingleDataResultSet firstResultSet = results.next(); ReturnStatusException.getInstanceIfAvailable(firstResultSet); ReturnStatus status = ReturnStatus.parse(firstResultSet); opportunityItems.setReturnStatus(status); DbResultRecord record = firstResultSet.getRecords().next(); if (!record.hasColumn("dateCreated")) return opportunityItems; String dateCreated = record.<String>get("dateCreated"); if (!results.hasNext()) { _tdsLogger.sqlWarn("Item positions were not returned.", "insertItems"); return opportunityItems; } else {//from www .j a va 2 s. c om SingleDataResultSet res = results.next(); Iterator<DbResultRecord> records = res.getRecords(); while (records.hasNext()) { record = records.next(); OpportunityItem oppItem = new OpportunityItem(); String itemID = record.<String>get("bankitemkey"); // get data from SP oppItem.setBankKey(record.<Long>get("bankkey")); oppItem.setItemKey(record.<Long>get("itemkey")); oppItem.setPage(record.<Integer>get("page")); oppItem.setPosition(record.<Integer>get("position")); oppItem.setFormat(record.<String>get("format")); oppItem.setDateCreated(dateCreated); AdaptiveItem adaptiveItem = (AdaptiveItem) CollectionUtils.find(adaptiveGroup.getItems(), new MyPredicate(itemID)); // { // @Override // public boolean evaluate (Object object) { // if (((AdaptiveItem) object).getItemID ().equals (itemID)) // return true; // return false; // } // }); // find matching adaptive item // AdaptiveItem adaptiveItem = adaptiveGroup.getItems ().Find(ai => // ai.ItemID == itemID); // check if item was found if (adaptiveItem == null) { _logger.error("itemID:: " + itemID); _logger.error("adaptiveGroup.getItems ():: " + adaptiveGroup.getItems()); String error = "T_InsertItems: The item key %1$s was returned but was not found in [%2$s]."; throw new ReturnStatusException(String.format(error, itemID, adaptiveGroup.getItems())); } // get data from adaptive algorithm oppItem.setGroupID(adaptiveGroup.getGroupID()); oppItem.setSegment(adaptiveGroup.getSegmentPosition()); oppItem.setSegmentID(adaptiveGroup.getSegmentID()); oppItem.setIsRequired(adaptiveItem.isRequired()); //oppItem.setIsFieldTest (adaptiveItem.isFieldTest ()); oppItem.setGroupItemsRequired(adaptiveGroup.getNumItemsRequired()); // manually set data oppItem.setIsVisible(true); oppItem.setIsSelected(false); oppItem.setIsValid(false); oppItem.setMarkForReview(false); oppItem.setSequence(0); oppItem.setStimulusFile(null); oppItem.setItemFile(null); // DEBUG: Check if items should all be marked as not required if (_logger.isDebugEnabled()) { boolean itemsNeverRequired = AppSettings.getBoolean("debug.itemsNeverRequired").getValue(); if (itemsNeverRequired) { oppItem.setIsRequired(false); oppItem.setGroupItemsRequired(0); } } opportunityItems.add(oppItem); } } } catch (SQLException e) { _logger.error(e.getMessage()); throw new ReturnStatusException(e); } return opportunityItems; }
From source file:tds.student.sql.repositorysp.ResponseRepository.java
public OpportunityItems insertItems(OpportunityInstance oppInstance, AdaptiveGroup adaptiveGroup, boolean isMsb) throws ReturnStatusException { // create item keys delimited string OpportunityItems opportunityItems = new OpportunityItem().new OpportunityItems(); // String itemKeys = getItemKeys (adaptiveGroup.getItems ()); String itemKeys = null;//from w w w . j a v a 2 s . c o m final String CMD_GET_INSERT_ITEMS = "BEGIN; SET NOCOUNT ON; exec T_InsertItems ${oppkey}, ${session}, ${browserID}, ${segment}, ${segmentID}, ${page}, ${groupID}, ${itemkeys}, ${delimiter}, ${groupItemsRequired}; end;"; try (SQLConnection connection = getSQLConnection()) { SqlParametersMaps parametersQuery = new SqlParametersMaps(); parametersQuery.put("oppkey", oppInstance.getKey()); parametersQuery.put("session", oppInstance.getSessionKey()); parametersQuery.put("browserID", oppInstance.getBrowserKey()); parametersQuery.put("segment", adaptiveGroup.getSegmentPosition()); parametersQuery.put("segmentID", adaptiveGroup.getSegmentID()); parametersQuery.put("page", adaptiveGroup.getPage()); parametersQuery.put("groupID", adaptiveGroup.getGroupID()); parametersQuery.put("itemkeys", itemKeys); parametersQuery.put("delimiter", "|"); parametersQuery.put("groupItemsRequired", adaptiveGroup.getNumItemsRequired()); Iterator<SingleDataResultSet> results = executeStatement(connection, CMD_GET_INSERT_ITEMS, parametersQuery, false).getResultSets(); SingleDataResultSet firstResultSet = results.next(); ReturnStatusException.getInstanceIfAvailable(firstResultSet); Iterator<DbResultRecord> records = firstResultSet.getRecords(); if (records.hasNext()) { DbResultRecord record = records.next(); if (!record.hasColumn("dateCreated")) return opportunityItems; // set datecreated for each item String dateCreated = record.<String>get("dateCreated"); while (records.hasNext()) { OpportunityItem oppItem = new OpportunityItem(); // String itemID = record.<String> get ("bankitemkey"); // get data from SP oppItem.setBankKey(record.<Integer>get("bankkey")); oppItem.setItemKey(record.<Integer>get("itemkey")); oppItem.setPage(record.<Integer>get("page")); oppItem.setPosition(record.<Integer>get("position")); oppItem.setFormat(record.<String>get("format")); oppItem.setDateCreated(dateCreated); AdaptiveItem adaptiveItem = (AdaptiveItem) CollectionUtils.find(adaptiveGroup.getItems(), new Predicate() { @Override public boolean evaluate(Object object) { if (((AdaptiveItem) object).getItemID() != null) return true; return false; } }); // find matching adaptive item // AdaptiveItem adaptiveItem = adaptiveGroup.getItems ().Find(ai => // ai.ItemID == itemID); // check if item was found if (adaptiveItem == null) { String error = "T_InsertItems: The item key %1$d was returned but was not found in [%2$s]."; throw new ReturnStatusException(String.format(error, oppItem.getItemKey(), itemKeys)); } // get data from adaptive algorithm oppItem.setGroupID(adaptiveGroup.getGroupID()); oppItem.setSegment(adaptiveGroup.getSegmentPosition()); oppItem.setSegmentID(adaptiveGroup.getSegmentID()); oppItem.setIsRequired(adaptiveItem.isRequired()); //oppItem.setIsFieldTest (adaptiveItem.isFieldTest ()); oppItem.setGroupItemsRequired(adaptiveGroup.getNumItemsRequired()); // manually set data oppItem.setIsVisible(true); oppItem.setIsSelected(false); oppItem.setIsValid(false); oppItem.setMarkForReview(false); oppItem.setSequence(0); oppItem.setStimulusFile(null); oppItem.setItemFile(null); // DEBUG: Check if items should all be marked as not required if (_logger.isDebugEnabled()) { boolean itemsNeverRequired = AppSettings.getBoolean("debug.itemsNeverRequired").getValue(); if (itemsNeverRequired) { oppItem.setIsRequired(false); oppItem.setGroupItemsRequired(0); } } opportunityItems.add(oppItem); } } if (results.hasNext()) { SingleDataResultSet secondResultSet = results.next(); records = secondResultSet.getRecords(); while (records.hasNext()) { DbResultRecord record = records.next(); } } } catch (SQLException e) { _logger.error(e.getMessage()); throw new ReturnStatusException(e); } return opportunityItems; }
From source file:tds.student.web.backing.TestShellScriptsBacking.java
private void addTestSegments() throws IOException, ReturnStatusException { TestSession testSession = StudentContext.getSession(); // _studentSettings = FacesContextHelper.getBean ("studentSettings", // StudentSettings.class); OpportunitySegments oppSegments = null; // load opp segments only if there are any test segments if (_testProps.getSegments().size() > 0) { oppSegments = this._iOpportunityService.getSegments(this._testOpportunity.getOppInstance(), !this._studentSettings.isReadOnly()); }/* w ww .j a va 2s. c o m*/ StringWriter sw = new StringWriter(); JsonFactory jsonFactory = new JsonFactory(); JsonGenerator writer = jsonFactory.createGenerator(sw); writer.writeStartArray(); // [ for (final TestSegment testSegment : _testProps.getSegments()) { OpportunitySegment oppSegment = null; // find opportunity segment if (oppSegments != null) { oppSegment = (OpportunitySegment) CollectionUtils.find(oppSegments, new Predicate() { @Override public boolean evaluate(Object arg0) { if (StringUtils.equals(((OpportunitySegment) arg0).getId(), testSegment.getId())) return true; return false; } }); } // figure out segment permeability int isPermeable = testSegment.getIsPermeable(); int updatePermeable = isPermeable; // these are local override rules (reviewed with Larry) if (oppSegment != null) { /* * if -1, use the defined value for the segment as returned by * IB_GetSegments if not -1, then the local value defines the temporary * segment permeability */ if (oppSegment.getIsPermeable() != -1) { isPermeable = oppSegment.getIsPermeable(); /* * The default permeability is restored when the student leaves the * segment while testing. Assuming the segment is impermeable, this * allows the student one entry into the segment during the sitting. * When the student leaves the segment, is membrane is enforced by the * student app. The database will restore the default value of the * segment membrane when the test is paused. */ if (oppSegment.getRestorePermOn() != "segment") { updatePermeable = oppSegment.getIsPermeable(); } } // NOTE: When student enters segment, set isPermeable = updatePermeable } // if read only mode is enabled then we should let user have access if (_studentSettings.isReadOnly()) { isPermeable = 1; updatePermeable = 1; } // figure out segment approval int entryApproval = testSegment.getEntryApproval(); int exitApproval = testSegment.getExitApproval(); // NOTE: If proctorless test then don't require entry/exit approval // (nobody to approve it) if (testSession.isProctorless() || _studentSettings.isReadOnly()) { entryApproval = 0; exitApproval = 0; } // BUG #22642: Entry and Exit approvals are not needed from Test level // review screen when approval = 2 else if (getViewPageNumber() > 0) { if (testSegment.getEntryApproval() == 2) entryApproval = 0; if (testSegment.getExitApproval() == 2) exitApproval = 0; } // write segment json writer.writeStartObject(); writer.writeStringField("type", "object"); // { writer.writeStringField("id", testSegment.getId()); writer.writeNumberField("position", testSegment.getPosition()); writer.writeStringField("label", testSegment.getLabel()); writer.writeBooleanField("itemReview", testSegment.isItemReview()); writer.writeNumberField("isPermeable", isPermeable); writer.writeNumberField("updatePermeable", updatePermeable); writer.writeNumberField("entryApproval", entryApproval); writer.writeNumberField("exitApproval", exitApproval); // Looks like we don't use this variable in javascript (removed for 2012) // Test adaptiveSegment = // TestOpportunity.AdaptiveTest.GetSegmentTest(testSegment.ID); // writer.WriteObject("length", (adaptiveSegment != null) ? // adaptiveSegment.TotalMinLength : 0); writer.writeEndObject(); // } } writer.writeEndArray(); // ] writer.close(); // write out javascript StringBuilder javascript = new StringBuilder(); javascript.append("var tdsSegments = "); javascript.append(sw.toString()); javascript.append("; "); this.getClientScript().addToJsCode(javascript.toString()); }
From source file:tds.student.web.handlers.MasterShellHandler.java
List<Segment> loadTestSegments(OpportunityInstance oppInstance, TestProperties testProps) throws ReturnStatusException { List<Segment> testSegments = new ArrayList<Segment>(); OpportunitySegments oppSegments = null; // load opp segments only if there are any test segments if (testProps.getSegments().size() > 0) { // IOpportunityService oppService = // ServiceLocator.Resolve<IOpportunityService>(); oppSegments = _oppService.getSegments(oppInstance, !this._studentSettings.isReadOnly()); }/* w ww . j a v a 2s . c om*/ for (final TestSegment testSegment : testProps.getSegments()) { OpportunitySegment oppSegment = null; // find opportunity segment if (oppSegments != null) { oppSegment = (OpportunitySegment) CollectionUtils.find(oppSegments, new Predicate() { @Override public boolean evaluate(Object arg0) { if (StringUtils.equals(((OpportunitySegment) arg0).getId(), testSegment.getId())) return true; return false; } }); } // figure out segment permeability int isPermeable = testSegment.getIsPermeable(); int updatePermeable = isPermeable; // these are local override rules (reviewed with Larry) if (oppSegment != null) { /* * if -1, use the defined value for the segment as returned by * IB_GetSegments if not -1, then the local value defines the temporary * segment permeability */ if (oppSegment.getIsPermeable() != -1) { isPermeable = oppSegment.getIsPermeable(); /* * The default permeability is restored when the student leaves the * segment while testing. Assuming the segment is impermeable, this * allows the student one entry into the segment during the sitting. * When the student leaves the segment, is membrane is enforced by the * student app. The database will restore the default value of the * segment membrane when the test is paused. */ if (!"segment".equals(oppSegment.getRestorePermOn())) { updatePermeable = oppSegment.getIsPermeable(); } } // NOTE: When student enters segment, set isPermeable = updatePermeable } Segment tSegment = new Segment(); tSegment.setId(testSegment.getId()); tSegment.setPosition(testSegment.getPosition()); tSegment.setLabel(testSegment.getLabel()); tSegment.setItemReview(testSegment.isItemReview()); tSegment.setIsPermable(isPermeable); tSegment.setUpdatePermable(updatePermeable); tSegment.setEntryApproval(testSegment.getEntryApproval()); tSegment.setExitApproval(testSegment.getExitApproval()); testSegments.add(tSegment); } return testSegments; }
From source file:tds.student.web.handlers.TestShellHandler.java
@RequestMapping(value = "TestShell.axd/print") @ResponseBody/*from w ww. ja v a2s . c o m*/ public void Print(@RequestParam(value = "type", required = false) String type, @RequestParam(value = "page", required = false) int page, @RequestParam(value = "pageKey", required = false) UUID pageKey, @RequestParam(value = "params", required = false) String requestParams, @RequestParam(value = "position", required = false) final Integer position) throws TDSSecurityException, ReturnStatusException { checkAuthenticated(); // get opportunity TestOpportunity testOpp = StudentContext.getTestOpportunity(); AccLookup accLookup = StudentContext.getAccLookup(); AccProperties accProps = new AccProperties(accLookup); // get item group for this page PageGroup pageToPrint = _responseService.getItemGroup(testOpp.getOppInstance(), page, null, null, true); if (type.equals("passage")) { if (accProps.isBrailleEnabled()) { _printService.printPassageBraille(testOpp, pageToPrint, accLookup); } else { _printService.printPassage(testOpp.getOppInstance(), pageToPrint, requestParams); } } else if (type.equals("page")) { if (accProps.isBrailleEnabled()) { _printService.printPageBraille(testOpp, pageToPrint, accLookup); } else { _printService.printPage(testOpp.getOppInstance(), pageToPrint, requestParams); } } else if (type.equals("item")) { // find the item ItemResponse itemToPrint = (ItemResponse) CollectionUtils.find(pageToPrint, new Predicate() { @Override public boolean evaluate(Object object) { ItemResponse response = (ItemResponse) object; return position == response.getPosition(); } }); if (accProps.isBrailleEnabled()) { _printService.printItemBraille(testOpp, itemToPrint, accLookup); } else { _printService.printItem(testOpp.getOppInstance(), itemToPrint, requestParams); } } }
From source file:uk.ac.diamond.scisoft.analysis.rcp.inspector.AxisSelection.java
/** * Add axis choice with given name and order and sets choice to first * @param name// w w w. j a v a 2s . co m * @param axis * @param order (can be zero to denote last) */ public void addChoice(String name, AxisChoice axis, int order) { AxisSelData a; int i = names.indexOf(name); if (i >= 0) { // existing axis so replace a = asData.get(i); if (axis != a.getData()) a.setData(axis); int o = a.getOrder(); if (o == order) return; names.remove(i); asData.remove(i); } else { a = new AxisSelData(axis, false); } a.setOrder(order); if (order == 0) { names.add(name); asData.add(a); } else { orderPredicate.setOrder(order); // find first >= order Object first = CollectionUtils.find(asData, orderPredicate); if (first == null) { names.add(name); asData.add(a); } else { int j = asData.indexOf(first); names.add(j, name); asData.add(j, a); } } selectAxis(0); }
From source file:uk.ac.diamond.scisoft.analysis.rcp.inspector.AxisSelection.java
/** * Select an axis with given index/*from w w w . ja va 2s . co m*/ * @param index * @param fire */ public void selectAxis(int index, boolean fire) { AxisSelData a = (AxisSelData) CollectionUtils.find(asData, axisSelectionPredicate); if (a != null) a.setSelected(false); asData.get(index).setSelected(true); if (!fire) { return; } String oldName = a == null ? null : names.get(asData.indexOf(a)); fire(new PropertyChangeEvent(this, propName, oldName, names.get(index))); }
From source file:uk.ac.diamond.scisoft.analysis.rcp.inspector.AxisSelection.java
/** * Get index of selected axis/*from ww w . j a v a 2 s .co m*/ * @return index or -1 if nothing selected */ public int getSelectedIndex() { AxisSelData a = (AxisSelData) CollectionUtils.find(asData, axisSelectionPredicate); return asData.indexOf(a); }
From source file:uk.ac.diamond.scisoft.analysis.rcp.inspector.AxisSelection.java
/** * @return selected choice//from ww w. ja va 2s.c o m */ public AxisChoice getSelectedAxis() { AxisSelData a = (AxisSelData) CollectionUtils.find(asData, axisSelectionPredicate); return (a == null) ? null : a.getData(); }
From source file:uk.ac.ebi.bioinvindex.persistence.FreeTextTermPersistenceTest.java
@Test public void testPersistFreeTerm() throws Exception { out.println(//from w ww . j a v a 2 s. com "\n\n\n _______________ FreeTextTermPersistanceTest, Basic Test ____________________________\n"); Design term = new Design("test reference"); // Let's attach some OEs // new OE ReferenceSource source = new ReferenceSource("My fancy test ontology 2"); source.setAcc("bii:tests:MY-SRC-2"); OntologyTerm oe1 = new OntologyTerm("biionto:101", "test OE", source); term.addOntologyTerm(oe1); // Existing OE source = new ReferenceSource("TEST ONTOLOGY"); source.setAcc("BII-1"); OntologyTerm oe2 = new OntologyTerm("OBI-EO1", "organism", source); term.addOntologyTerm(oe2); Design termNew = persister.persist(term); transaction.commit(); session.flush(); assertNotNull("Uh! Oh! Persister returns null!", termNew); assertTrue("Ouch! Cannot find the persisted term in the DB!", entityManager.contains(termNew)); assertTrue("Argh! The persisted term and the original one should be the same!", term == termNew); assertNotNull("Burp! The persisted term should have an ID!", termNew.getId()); Collection<OntologyTerm> oes = termNew.getOntologyTerms(); assertNotNull("Oh no! The persisted FreeTextTerm does not return OEs!", oes); assertEquals("Oh no! The persisted FreeTextTerm does not return correct no. of OEs !", 2, oes.size()); OntologyTerm oeDB1 = (OntologyTerm) CollectionUtils.find(oes, new OESelector(oe1)); assertNotNull("Urp! The term " + oe1 + "was not persisted with the FreeText!", oeDB1); assertNotNull("The term: " + oeDB1 + "should have an ID!", oeDB1); OntologyTerm oeDB2 = (OntologyTerm) CollectionUtils.find(oes, new OESelector(oe2)); assertNotNull("Urp! The term " + oe2 + "was not persisted with the FreeText!", oeDB2); assertEquals("Wrong retrieved ID for the term : " + oeDB2 + "!", new Long(501), oeDB2.getId()); out.println( "\n _______________ /end: FreeTextTermPersistanceTest, Basic Test ____________________________\n\n"); }