Example usage for org.apache.commons.collections CollectionUtils find

List of usage examples for org.apache.commons.collections CollectionUtils find

Introduction

In this page you can find the example usage for org.apache.commons.collections CollectionUtils find.

Prototype

public static Object find(Collection collection, Predicate predicate) 

Source Link

Document

Finds the first element in the given collection which matches the given predicate.

Usage

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");

}