All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mongodb.morphia.query.Meta Maven / Gradle / Ivy

The newest version!
package org.mongodb.morphia.query;

import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;

/**
 * Defines $meta expression object
 * @mongodb.driver.manual reference/operator/aggregation/meta/ $meta
 */
public class Meta {

    private static final String META = "$meta";

    /**
     * Representing specified metadata keyword
     * @mongodb.driver.manual reference/operator/aggregation/meta/#exp._S_meta $meta
     */
    public enum MetaDataKeyword {
        textScore;

        /**
         * @return MetaDataKeyword name
         */
        public String getName() {
            return textScore.name();
        }
    }

    private MetaDataKeyword metaDataKeyword;
    private String field;

    /**
     * Specify the meta
     * @param metaDataKeyword - metadata keyword to create
     */
    public Meta(final MetaDataKeyword metaDataKeyword) {
        this.metaDataKeyword = metaDataKeyword;
        this.field = metaDataKeyword.getName();
    }

    /**
     * @param metaDataKeyword  - metadata keyword to create
     * @param field - metadata object field name
     */
    public Meta(final MetaDataKeyword metaDataKeyword, final String field) {
        this.metaDataKeyword = metaDataKeyword;
        this.field = field;
    }

    /**
     * @return metadata object field name
     */
    public String getField() {
        return field;
    }

    /**
     * factory method for textScore metaDataKeyword
     * @return instance of 'textScore' Meta
     */
    public static Meta textScore() {
        return new Meta(MetaDataKeyword.textScore);
    }

    /**
     *
     * @param field - the field to project meta data
     * @return  instance of 'textScore' Meta
     */
    public static Meta textScore(final String field) {
        return new Meta(MetaDataKeyword.textScore, field);
    }

    DBObject toDatabase() {
        BasicDBObject metaObject = new BasicDBObject(META, metaDataKeyword.getName());
        return new BasicDBObject(field, metaObject);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy