com.edgytech.umongo.CreateIndexDialog.java Source code

Java tutorial

Introduction

Here is the source code for com.edgytech.umongo.CreateIndexDialog.java

Source

/**
 * Copyright (C) 2010 EdgyTech LLC.
 *
 * 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.
 */
package com.edgytech.umongo;

import com.edgytech.swingfast.FormDialog;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;

/**
 *
 * @author antoine
 */
public class CreateIndexDialog extends FormDialog {

    enum Item {
        keys, unique, name, dropDuplicates, sparse, expireDocuments, expireAfterSeconds, background, weights, defaultLanguage, languageOverride, extra
    }

    public CreateIndexDialog() {
        setEnumBinding(Item.values(), null);
    }

    DBObject getKeys() {
        return ((DocBuilderField) getBoundUnit(Item.keys)).getDBObject();
    }

    DBObject getOptions() {
        final DBObject opts = new BasicDBObject();
        final String name = getStringFieldValue(Item.name);
        if (name != null && !name.trim().isEmpty()) {
            opts.put("name", name);
        }
        if (getBooleanFieldValue(Item.unique)) {
            opts.put("unique", true);
        }
        if (getBooleanFieldValue(Item.dropDuplicates)) {
            opts.put("dropDups", true);
        }
        if (getBooleanFieldValue(Item.sparse)) {
            opts.put("sparse", true);
        }
        if (getBooleanFieldValue(Item.expireDocuments)) {
            opts.put("expireAfterSeconds", getIntFieldValue(Item.expireAfterSeconds));
        }
        if (getBooleanFieldValue(Item.background)) {
            opts.put("background", true);
        }

        DBObject weights = ((DocBuilderField) getBoundUnit(Item.weights)).getDBObject();
        if (weights != null) {
            opts.put("weights", weights);
        }
        String defaultLanguage = getStringFieldValue(Item.defaultLanguage);
        if (!defaultLanguage.trim().isEmpty()) {
            opts.put("default_language", defaultLanguage);
        }
        String languageOverride = getStringFieldValue(Item.languageOverride);
        if (!languageOverride.trim().isEmpty()) {
            opts.put("language_override", languageOverride);
        }

        DBObject extra = ((DocBuilderField) getBoundUnit(Item.extra)).getDBObject();
        if (extra != null) {
            opts.putAll(extra);
        }
        return opts;
    }
}