
de.taimos.dvalin.mongo.ChangelogUtil Maven / Gradle / Ivy
package de.taimos.dvalin.mongo;
/*
* #%L
* Spring DAO Mongo
* %%
* Copyright (C) 2013 - 2015 Taimos GmbH
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
/**
* Copyright 2015 Hoegernet
*
* Utils for changelog creation
*
* @author Thorsten Hoeger
*/
public final class ChangelogUtil {
private ChangelogUtil() {
// private utility class constructor
}
/**
* adds a TTL index to the given collection. The TTL must be a positive integer.
*
* @param collection the collection to use for the TTL index
* @param field the field to use for the TTL index
* @param ttl the TTL to set on the given field
* @throws IllegalArgumentException if the TTL is less or equal 0
*/
public static void addTTLIndex(DBCollection collection, String field, int ttl) {
if (ttl <= 0) {
throw new IllegalArgumentException("TTL must be positive");
}
collection.createIndex(new BasicDBObject(field, 1), new BasicDBObject("expireAfterSeconds", ttl));
}
/**
* Add an index on the given collection and field
*
* @param collection the collection to use for the index
* @param field the field to use for the index
* @param asc the sorting direction. true
to sort ascending; false
to sort descending
* @param background iff true
the index is created in the background
*/
public static void addIndex(DBCollection collection, String field, boolean asc, boolean background) {
int dir = (asc) ? 1 : -1;
collection.createIndex(new BasicDBObject(field, dir), new BasicDBObject("background", background));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy