Example usage for com.mongodb BasicDBList BasicDBList

List of usage examples for com.mongodb BasicDBList BasicDBList

Introduction

In this page you can find the example usage for com.mongodb BasicDBList BasicDBList.

Prototype

BasicDBList

Source Link

Usage

From source file:com.jagornet.dhcp.db.MongoLeaseManager.java

License:Open Source License

@Override
public List<IaPrefix> findUnusedIaPrefixes(final InetAddress startAddr, final InetAddress endAddr) {
    long offerExpireMillis = DhcpServerPolicies.globalPolicyAsLong(Property.BINDING_MANAGER_OFFER_EXPIRATION);
    final Date offerExpiration = new Date(new Date().getTime() - offerExpireMillis);

    BasicDBList ipAdvBetw = new BasicDBList();
    ipAdvBetw.add(new BasicDBObject("state", IaPrefix.ADVERTISED));
    ipAdvBetw.add(new BasicDBObject("startTime", new BasicDBObject("$lte", offerExpiration)));
    ipAdvBetw.add(new BasicDBObject("ipAddress", new BasicDBObject("$gte", startAddr.getAddress())));
    ipAdvBetw.add(new BasicDBObject("ipAddress", new BasicDBObject("$lte", endAddr.getAddress())));

    BasicDBList ipExpRel = new BasicDBList();
    ipExpRel.add(IaPrefix.EXPIRED);/* w  w  w.  j ava2s  .  com*/
    ipExpRel.add(IaPrefix.RELEASED);

    BasicDBList ipExpRelBetw = new BasicDBList();
    ipExpRelBetw.add(new BasicDBObject("state", new BasicDBObject("$in", ipExpRel)));
    ipExpRelBetw.add(new BasicDBObject("ipAddress", new BasicDBObject("$gte", startAddr.getAddress())));
    ipExpRelBetw.add(new BasicDBObject("ipAddress", new BasicDBObject("$lte", endAddr.getAddress())));

    BasicDBList ipBetw = new BasicDBList();
    ipBetw.add(new BasicDBObject("$and", ipAdvBetw));
    ipBetw.add(new BasicDBObject("$and", ipExpRelBetw));

    DBObject query = new BasicDBObject("$or", ipBetw);
    DBCursor cursor = dhcpLeases.find(query).sort(new BasicDBObject("state", 1))
            .sort(new BasicDBObject("validEndTime", 1)).sort(new BasicDBObject("ipAddress", 1));
    try {
        if (cursor.count() > 0) {
            List<DhcpLease> leases = new ArrayList<DhcpLease>();
            while (cursor.hasNext()) {
                leases.add(convertDBObject(cursor.next()));
            }
            return toIaPrefixes(leases);
        }
    } finally {
        cursor.close();
    }

    return null;
}

From source file:com.jagornet.dhcp.db.MongoLeaseManager.java

License:Open Source License

@Override
public void reconcileIaAddresses(List<Range> ranges) {

    BasicDBList ipBetwList = new BasicDBList();
    for (Range range : ranges) {
        BasicDBList ipBetw = new BasicDBList();
        ipBetw.add(/*from  www  . j  a v a  2 s  . c  om*/
                new BasicDBObject("ipAddress", new BasicDBObject("$lt", range.getStartAddress().getAddress())));
        ipBetw.add(
                new BasicDBObject("ipAddress", new BasicDBObject("$gt", range.getEndAddress().getAddress())));
        ipBetwList.add(new BasicDBObject("$or", ipBetw));
    }

    dhcpLeases.remove(new BasicDBObject("$and", ipBetwList));
}

From source file:com.jhkt.playgroundArena.db.nosql.mongodb.beans.AbstractDocument.java

License:Apache License

public final BasicDBObject resolveToBasicDBObject() {

    BasicDBObject bDBObject = new BasicDBObject();
    try {//from   ww  w .  ja  v a2 s  . c  om
        Class<? extends AbstractDocument> currClass = getClass();
        while (currClass != null) {

            for (Method method : currClass.getMethods()) {
                IDocumentKeyValue dkv = method.getAnnotation(IDocumentKeyValue.class);
                String mName = method.getName();
                if (dkv != null && mName.startsWith(JPAConstants.GETTER_PREFIX)) {

                    try {
                        Object returnValue = method.invoke(this, JPAConstants.EMPTY_OBJECT_ARGUMENT_LIST);
                        char[] propertyChars = mName.substring(3).toCharArray();
                        String property = String.valueOf(propertyChars[0]).toLowerCase()
                                + String.valueOf(propertyChars, 1, propertyChars.length - 1);

                        if (returnValue == null) {
                            continue;
                        }

                        if (returnValue instanceof AbstractDocument) {

                            Object subReturnValue = RESOLVE_TO_BASIC_DB_OBJECT_METHOD.invoke(returnValue,
                                    JPAConstants.EMPTY_OBJECT_ARGUMENT_LIST);
                            bDBObject.put(property, subReturnValue);

                        } else if (returnValue instanceof Enum) {

                            Enum<?> enumClass = Enum.class.cast(returnValue);
                            BasicDBObject enumObject = new BasicDBObject();

                            enumObject.put(JPAConstants.CONVERTER_CLASS.CLASS.name(),
                                    enumClass.getClass().getName());
                            enumObject.put(JPAConstants.CONVERTER_CLASS.CONTENT.name(), enumClass.name());

                            bDBObject.put(property, enumObject);

                        } else if (returnValue instanceof Collection) {

                            Collection<?> collectionContent = (Collection<?>) returnValue;
                            BasicDBObject collectionObject = new BasicDBObject();
                            collectionObject.put(JPAConstants.CONVERTER_CLASS.CLASS.name(),
                                    collectionContent.getClass().getName());

                            BasicDBList bDBList = new BasicDBList();
                            if (collectionContent.iterator().next() instanceof AbstractDocument) {
                                for (Object content : collectionContent) {
                                    if (content instanceof AbstractDocument) {
                                        Object subReturnValue = RESOLVE_TO_BASIC_DB_OBJECT_METHOD
                                                .invoke(returnValue, JPAConstants.EMPTY_OBJECT_ARGUMENT_LIST);
                                        bDBList.add(subReturnValue);
                                    }
                                }
                            } else {
                                bDBList.addAll(collectionContent);
                            }

                            collectionObject.put(JPAConstants.CONVERTER_CLASS.CONTENT.name(), bDBList);
                            bDBObject.put(property, collectionObject);

                        } else if (returnValue instanceof Map) {

                            Map<?, ?> mapContent = (Map<?, ?>) returnValue;
                            BasicDBObject mapObject = new BasicDBObject();
                            mapObject.put(JPAConstants.CONVERTER_CLASS.CLASS.name(),
                                    mapContent.getClass().getName());

                            Set<?> keys = mapContent.keySet();
                            if (keys.iterator().next() instanceof AbstractDocument) {

                                Map<Object, Object> convertedMap = new HashMap<Object, Object>();
                                for (Object key : keys) {
                                    Object value = mapContent.get(key);
                                    Object subReturnValue = RESOLVE_TO_BASIC_DB_OBJECT_METHOD.invoke(value,
                                            JPAConstants.EMPTY_OBJECT_ARGUMENT_LIST);

                                    convertedMap.put(key, subReturnValue);
                                }

                                mapContent = convertedMap;
                            }

                            mapObject.put(JPAConstants.CONVERTER_CLASS.CONTENT.name(), mapContent);
                            bDBObject.put(property, mapObject);

                        } else {
                            bDBObject.put(property, returnValue);
                        }

                    } catch (Exception e) {

                    }

                }
            }

            currClass = currClass.getSuperclass().asSubclass(AbstractDocument.class);
        }

    } catch (ClassCastException castException) {

    }

    bDBObject.put(JPAConstants.CONVERTER_CLASS.CLASS.name(), getClass().getName());
    _log.info("BdBObject " + bDBObject);
    return bDBObject;
}

From source file:com.jive.myco.seyren.mongo.MongoMapper.java

License:Apache License

private BasicDBList getBasicDBList(DBObject dbo, String key) {
    BasicDBList result = (BasicDBList) dbo.get(key);
    if (result == null) {
        result = new BasicDBList();
    }// w  ww. j  a v  a  2  s  .co m
    return result;
}

From source file:com.joyfulmongo.db.javadriver.JFDBUtil.java

License:Apache License

public static DBObject toDBObject(JSONArray a) {
    BasicDBList result = new BasicDBList();
    try {//  w ww.ja v a  2  s. c om
        for (int i = 0; i < a.length(); ++i) {
            Object o = a.get(i);
            if (o instanceof JSONObject) {
                result.add(toDBObject((JSONObject) o));
            } else if (o instanceof JSONArray) {
                result.add(toDBObject((JSONArray) o));
            } else {
                result.add(o);
            }
        }
        return result;
    } catch (JSONException je) {
        throw new IllegalArgumentException("Failed to pass the income JSONArray to DBObject" + a, je);
    }
}

From source file:com.linuxbox.enkive.message.search.mongodb.MongoMessageSearchService.java

License:Open Source License

protected DBObject buildQueryObject(Map<String, String> fields)
        throws MessageSearchException, EmptySearchResultsException {
    BasicDBList conjunctionList = new BasicDBList();

    for (MongoMessageQueryBuilder queryBuilder : queryBuilders) {
        DBObject query = queryBuilder.buildQueryPortion(fields);
        if (null != query) {
            conjunctionList.add(query);//  w ww.j av a2  s . com
        }
    }

    DBObject result;

    if (conjunctionList.isEmpty()) {
        throw new EmptySearchResultsException("No understandable search terms specified.");
    } else if (conjunctionList.size() == 1) {
        result = (DBObject) conjunctionList.get(0);
    } else {
        result = new BasicDBObject();
        result.put("$and", conjunctionList);
    }

    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("MongoDB message search query is: " + result);
    }

    return result;
}

From source file:com.linuxbox.enkive.permissions.message.MongoMessagePermissionsService.java

License:Open Source License

@Override
public boolean canReadAttachment(Collection<String> addresses, String attachmentId) {
    BasicDBObject query = new BasicDBObject();

    // Needs to match MAIL_FROM OR FROM
    BasicDBList addressQuery = new BasicDBList();
    for (String address : addresses) {
        addressQuery.add(new BasicDBObject(MAIL_FROM, address));
        addressQuery.add(new BasicDBObject(FROM, address));
        addressQuery.add(new BasicDBObject(RCPT_TO, address));
        addressQuery.add(new BasicDBObject(TO, address));
        addressQuery.add(new BasicDBObject(CC, address));
    }//from www.  j a va 2  s. c o  m
    query.put("$or", addressQuery);
    query.put(ATTACHMENT_ID_LIST, attachmentId);
    DBCursor results = messageCollection.find(query);
    if (results.size() > 0)
        return true;
    else
        return false;
}

From source file:com.linuxbox.enkive.workspace.mongo.MongoSearchResultBuilder.java

License:Open Source License

@Override
public Collection<SearchResult> getSearchResults(Collection<String> searchResultUUIDs) {

    Collection<SearchResult> results = new HashSet<SearchResult>();

    BasicDBObject query = new BasicDBObject();
    BasicDBList idList = new BasicDBList();
    for (String searchResultUUID : searchResultUUIDs)
        idList.add(ObjectId.massageToObjectId(searchResultUUID));
    query.put("$in", idList);
    DBCursor searchResult = searchResultsColl.find(new BasicDBObject(UUID, query));
    while (searchResult.hasNext()) {
        MongoSearchResult result = new MongoSearchResult(searchResultsColl, queryBuilder);
        DBObject searchResultObject = searchResult.next();
        result.setId(((ObjectId) searchResultObject.get(UUID)).toString());
        result.setTimestamp((Date) searchResultObject.get(EXECUTIONTIMESTAMP));
        result.setExecutedBy((String) searchResultObject.get(EXECUTEDBY));

        BasicDBList searchResults = (BasicDBList) searchResultObject.get(SEARCHRESULTS);

        Set<String> searchResultMessageUUIDs = new HashSet<String>();
        Iterator<Object> searchResultsIterator = searchResults.iterator();
        while (searchResultsIterator.hasNext())
            searchResultMessageUUIDs.add((String) searchResultsIterator.next());

        result.setMessageIds(searchResultMessageUUIDs);

        result.setStatus(SearchResult.Status.valueOf((String) searchResultObject.get(SEARCHSTATUS)));
        result.setSearchQueryId((String) searchResultObject.get(SEARCHQUERYID));
        if (searchResultObject.get(SEARCHISSAVED) != null)
            result.setSaved((Boolean) searchResultObject.get(SEARCHISSAVED));
        result.setSearchResultUtils(searchResultUtils);
        results.add(result);//  w  w w . java  2  s .  co m

    }
    return results;
}

From source file:com.linuxbox.enkive.workspace.mongo.MongoSearchResultUtils.java

License:Open Source License

protected LinkedHashSet<String> sortMessages(Set<String> messageIds, String sortField, int sortDirection) {
    LinkedHashSet<String> sortedIds = new LinkedHashSet<String>();
    // Only want to return the ids
    BasicDBObject keys = new BasicDBObject();
    keys.put("_id", 1);
    keys.put(sortField, 1);//from ww w  .j a  v  a 2  s  . co  m

    BasicDBObject query = new BasicDBObject();
    // Build object with IDs
    BasicDBList idList = new BasicDBList();
    idList.addAll(messageIds);
    BasicDBObject idQuery = new BasicDBObject();
    idQuery.put("$in", idList);
    query.put("_id", idQuery);
    // Add sort query

    DBCursor results = messageColl.find(query, keys);
    BasicDBObject orderBy = new BasicDBObject();
    orderBy.put(sortField, sortDirection);
    results = results.sort(orderBy);
    for (DBObject result : results.toArray())
        sortedIds.add((String) result.get("_id"));
    return sortedIds;
}

From source file:com.linuxbox.enkive.workspace.mongo.MongoSearchResultUtils.java

License:Open Source License

public List<String> sortSearchResults(Collection<String> searchResultIds, String sortField, int sortDirection) {
    ArrayList<String> sortedIds = new ArrayList<String>();
    // Only want to return the ids
    BasicDBObject keys = new BasicDBObject();
    keys.put("_id", 1);
    keys.put(sortField, 1);//from  ww  w. j a  v a  2  s .  co m

    BasicDBObject query = new BasicDBObject();
    // Build object with IDs
    BasicDBList idList = new BasicDBList();
    for (String Id : searchResultIds)
        idList.add(ObjectId.massageToObjectId(Id));

    BasicDBObject idQuery = new BasicDBObject();
    idQuery.put("$in", idList);
    query.put("_id", idQuery);
    // Add sort query

    DBCursor results = searchResultColl.find(query, keys);
    BasicDBObject orderBy = new BasicDBObject();
    orderBy.put(sortField, sortDirection);
    results = results.sort(orderBy);
    for (DBObject result : results.toArray())
        sortedIds.add(((ObjectId) result.get("_id")).toString());

    return sortedIds;
}