Search in sources :

Example 1 with KvNumeric

use of com.torodb.kvdocument.values.KvNumeric in project torodb by torodb.

the class UpdateActionTranslator method translateMultiply.

private static void translateMultiply(CompositeUpdateAction.Builder builder, BsonDocument argument) throws UpdateException {
    for (Entry<?> entry : argument) {
        Collection<AttributeReference> attRefs = parseAttributeReference(entry.getKey());
        KvValue<?> translatedValue = MongoWpConverter.translate(entry.getValue());
        if (!(translatedValue instanceof KvNumeric)) {
            throw new UpdateException("Cannot multiply with a " + "non-numeric argument");
        }
        builder.add(new MultiplyUpdateAction(attRefs, (KvNumeric<?>) translatedValue), false);
    }
}
Also used : KvNumeric(com.torodb.kvdocument.values.KvNumeric) AttributeReference(com.torodb.core.language.AttributeReference) UpdateException(com.torodb.core.exceptions.user.UpdateException) MultiplyUpdateAction(com.torodb.mongodb.language.update.MultiplyUpdateAction)

Example 2 with KvNumeric

use of com.torodb.kvdocument.values.KvNumeric in project torodb by torodb.

the class UpdateActionTranslator method translateIncrement.

private static void translateIncrement(CompositeUpdateAction.Builder builder, BsonDocument argument) throws UpdateException {
    for (Entry<?> entry : argument) {
        Collection<AttributeReference> attRefs = parseAttributeReference(entry.getKey());
        KvValue<?> translatedValue = MongoWpConverter.translate(entry.getValue());
        if (!(translatedValue instanceof KvNumeric)) {
            throw new UpdateException("Cannot increment with a " + "non-numeric argument");
        }
        builder.add(new IncrementUpdateAction(attRefs, (KvNumeric<?>) translatedValue), false);
    }
}
Also used : KvNumeric(com.torodb.kvdocument.values.KvNumeric) AttributeReference(com.torodb.core.language.AttributeReference) IncrementUpdateAction(com.torodb.mongodb.language.update.IncrementUpdateAction) UpdateException(com.torodb.core.exceptions.user.UpdateException)

Aggregations

UpdateException (com.torodb.core.exceptions.user.UpdateException)2 AttributeReference (com.torodb.core.language.AttributeReference)2 KvNumeric (com.torodb.kvdocument.values.KvNumeric)2 IncrementUpdateAction (com.torodb.mongodb.language.update.IncrementUpdateAction)1 MultiplyUpdateAction (com.torodb.mongodb.language.update.MultiplyUpdateAction)1