/* * Copyright 2016 MongoDB, Inc. * * 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 org.mongodb.morphia; import org.mongodb.morphia.annotations.Collation; import org.mongodb.morphia.annotations.Index; import org.mongodb.morphia.annotations.IndexOptions; import org.mongodb.morphia.annotations.Indexed; @SuppressWarnings("deprecation") class IndexOptionsBuilder extends AnnotationBuilder<IndexOptions> implements IndexOptions { @Override public Class<IndexOptions> annotationType() { return IndexOptions.class; } @Override public boolean background() { return get("background"); } @Override public boolean disableValidation() { return get("disableValidation"); } @Override public boolean dropDups() { return get("dropDups"); } @Override public int expireAfterSeconds() { return get("expireAfterSeconds"); } @Override public String language() { return get("language"); } @Override public String languageOverride() { return get("languageOverride"); } @Override public String name() { return get("name"); } @Override public boolean sparse() { return get("sparse"); } @Override public boolean unique() { return get("unique"); } @Override public String partialFilter() { return get("partialFilter"); } @Override public Collation collation() { return get("collation"); } IndexOptionsBuilder background(final boolean background) { put("background", background); return this; } IndexOptionsBuilder disableValidation(final boolean disableValidation) { put("disableValidation", disableValidation); return this; } IndexOptionsBuilder dropDups(final boolean dropDups) { put("dropDups", dropDups); return this; } IndexOptionsBuilder expireAfterSeconds(final int expireAfterSeconds) { put("expireAfterSeconds", expireAfterSeconds); return this; } IndexOptionsBuilder language(final String language) { put("language", language); return this; } IndexOptionsBuilder languageOverride(final String languageOverride) { put("languageOverride", languageOverride); return this; } IndexOptionsBuilder name(final String name) { put("name", name); return this; } IndexOptionsBuilder sparse(final boolean sparse) { put("sparse", sparse); return this; } IndexOptionsBuilder unique(final boolean unique) { put("unique", unique); return this; } IndexOptionsBuilder partialFilter(final String partialFilter) { put("partialFilter", partialFilter); return this; } IndexOptionsBuilder collation(final Collation collation) { put("collation", collation); return this; } IndexOptionsBuilder migrate(final Index index) { putAll(toMap(index)); return this; } IndexOptionsBuilder migrate(final Indexed index) { putAll(toMap(index)); return this; } }