io.tarantool.driver.api.conditions.NamedField Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cartridge-driver Show documentation
Show all versions of cartridge-driver Show documentation
Tarantool Cartridge driver for Tarantool versions 1.10+ based on Netty framework
package io.tarantool.driver.api.conditions;
import io.tarantool.driver.exceptions.TarantoolFieldNotFoundException;
import io.tarantool.driver.metadata.TarantoolFieldMetadata;
import io.tarantool.driver.metadata.TarantoolMetadataOperations;
import io.tarantool.driver.metadata.TarantoolSpaceMetadata;
import io.tarantool.driver.utils.Assert;
import java.util.Optional;
/**
* Represents a field defined by name
*
* @author Alexey Kuzin
*/
public class NamedField implements FieldIdentifier {
private String name;
/**
* Construct field using its name.
*
* @param name field name, should not be empty
*/
public NamedField(String name) {
Assert.hasText(name, "Field name should not be empty");
this.name = name;
}
@Override
public TarantoolFieldMetadata metadata(TarantoolMetadataOperations metadataOperations,
TarantoolSpaceMetadata spaceMetadata) {
Optional fieldMetadata = spaceMetadata.getFieldByName(name);
if (!fieldMetadata.isPresent()) {
throw new TarantoolFieldNotFoundException(name, spaceMetadata);
}
return fieldMetadata.get();
}
@Override
public String toIdentifier() {
return name;
}
}