Search in sources :

Example 21 with BsonDocument

use of com.eightkdata.mongowp.bson.BsonDocument in project torodb by torodb.

the class ReplicaSetConfig method toBson.

public BsonDocument toBson() {
    BsonDocumentBuilder result = new BsonDocumentBuilder();
    result.append(ID_FIELD, setName);
    result.append(VERSION_FIELD, version);
    BsonArrayBuilder membersList = new BsonArrayBuilder();
    for (MemberConfig member : members) {
        membersList.add(member.toBson());
    }
    result.append(MEMBERS_FIELD, membersList.build());
    BsonDocumentBuilder settingsBuilder = new BsonDocumentBuilder();
    settingsBuilder.append(CHAINING_ALLOWED_FIELD, chainingAllowed);
    settingsBuilder.append(HEARTHBEAT_TIMEOUT_FIELD, heartbeatTimeoutPeriod);
    BsonDocumentBuilder customWrites = new BsonDocumentBuilder();
    for (Map.Entry<String, ReplicaSetTagPattern> entry : customWriteConcern.entrySet()) {
        String customWriteName = entry.getKey();
        if (customWriteName.startsWith("$")) {
            //MongoDB uses $ as an internal mode
            continue;
        }
        BsonDocument tagMap = entry.getValue().toBson();
        customWrites.appendUnsafe(customWriteName, tagMap);
    }
    settingsBuilder.append(GET_LAST_ERROR_MODES_FIELD, customWrites);
    settingsBuilder.append(GET_LAST_ERROR_DEFAULTS_FIELD, defaultWriteConcern.toDocument());
    settingsBuilder.append(PROTOCOL_VERSION_FIELD, protocolVersion);
    result.append(SETTINGS_FIELD, settingsBuilder);
    return result.build();
}
Also used : BsonArrayBuilder(com.eightkdata.mongowp.utils.BsonArrayBuilder) BsonDocument(com.eightkdata.mongowp.bson.BsonDocument) HashMap(java.util.HashMap) Map(java.util.Map) BsonDocumentBuilder(com.eightkdata.mongowp.utils.BsonDocumentBuilder)

Example 22 with BsonDocument

use of com.eightkdata.mongowp.bson.BsonDocument in project torodb by torodb.

the class CollectionOptions method marshall.

public void marshall(BsonDocumentBuilder builder) {
    if (isCapped()) {
        builder.append(CAPPED_FIELD, true);
        long cappedSize = getCappedSize();
        if (cappedSize != 0) {
            builder.append(CAPPED_SIZE_FIELD, cappedSize);
        }
        long cappedMaxDocs = getCappedMaxDocs();
        if (cappedMaxDocs != 0) {
            builder.append(CAPPED_MAX_DOCS_FIELD, cappedMaxDocs);
        }
    }
    Long initialNumExtents = getInitialNumExtents();
    if (initialNumExtents != null && initialNumExtents != 0) {
        builder.append(INITIAL_NUM_EXTENDS_FIELD, initialNumExtents);
    }
    List<Long> initialExtentSizes = getInitialExtentSizes();
    if (initialExtentSizes != null && !initialExtentSizes.isEmpty()) {
        BsonArrayBuilder arrBuilder = new BsonArrayBuilder(initialExtentSizes.size());
        for (Long initialExtentSize : initialExtentSizes) {
            arrBuilder.add(initialExtentSize);
        }
        builder.append(INITIAL_EXTENT_SIZES_FIELD, arrBuilder.build());
    }
    AutoIndexMode autoIndexMode = getAutoIndexMode();
    if (!autoIndexMode.equals(AutoIndexMode.DEFAULT)) {
        boolean value = autoIndexMode.equals(AutoIndexMode.YES);
        builder.append(AUTO_INDEX_MODE_FIELD, value);
    }
    Set<Flag> flags = getFlags();
    if (!flags.isEmpty()) {
        int value = 0;
        for (Flag flag : flags) {
            value |= flag.getBit();
        }
        builder.append(FLAGS_FIELD, value);
    }
    BsonDocument storageEngine = getStorageEngine();
    if (storageEngine != null && storageEngine.isEmpty()) {
        builder.append(STORAGE_ENGINE_FIELD, storageEngine);
    }
    boolean temp = isTemp();
    if (temp) {
        builder.append(TEMP_FIELD, temp);
    }
}
Also used : BsonArrayBuilder(com.eightkdata.mongowp.utils.BsonArrayBuilder) BsonDocument(com.eightkdata.mongowp.bson.BsonDocument)

Aggregations

BsonDocument (com.eightkdata.mongowp.bson.BsonDocument)22 NoSuchKeyException (com.eightkdata.mongowp.exceptions.NoSuchKeyException)6 TypesMismatchException (com.eightkdata.mongowp.exceptions.TypesMismatchException)6 BsonDocumentBuilder (com.eightkdata.mongowp.utils.BsonDocumentBuilder)6 BadValueException (com.eightkdata.mongowp.exceptions.BadValueException)5 BsonValue (com.eightkdata.mongowp.bson.BsonValue)4 Request (com.eightkdata.mongowp.server.api.Request)4 Status (com.eightkdata.mongowp.Status)3 CommandFailed (com.eightkdata.mongowp.exceptions.CommandFailed)3 MongoException (com.eightkdata.mongowp.exceptions.MongoException)3 QueryOption (com.eightkdata.mongowp.messages.request.QueryMessage.QueryOption)3 QueryOptions (com.eightkdata.mongowp.messages.request.QueryMessage.QueryOptions)3 Command (com.eightkdata.mongowp.server.api.Command)3 KvDocument (com.torodb.kvdocument.values.KvDocument)3 KvValue (com.torodb.kvdocument.values.KvValue)3 ErrorCode (com.eightkdata.mongowp.ErrorCode)2 OpTime (com.eightkdata.mongowp.OpTime)2 BsonArray (com.eightkdata.mongowp.bson.BsonArray)2 DefaultBsonValues (com.eightkdata.mongowp.bson.utils.DefaultBsonValues)2 MongoConnection (com.eightkdata.mongowp.client.core.MongoConnection)2