
ru.sergkorot.dynamic.operation.SpecificationOperationProviderImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-boot-operation-starter Show documentation
Show all versions of spring-boot-operation-starter Show documentation
Library for dynamic searching into the databases
The newest version!
package ru.sergkorot.dynamic.operation;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;
import ru.sergkorot.dynamic.util.SpecificationUtils;
import java.util.Collections;
import static org.springframework.data.jpa.domain.Specification.where;
import static ru.sergkorot.dynamic.model.enums.ValueType.cast;
import static ru.sergkorot.dynamic.model.enums.ValueType.collectionCast;
/**
* @author Sergey Korotaev
* Service is realization Operation provider interface for building different specifications
* @param - the entity for which the request is being built
* @see OperationProvider
*/
@Component
public class SpecificationOperationProviderImpl implements OperationProvider> {
@Override
public Operation> like() {
return param -> where(SpecificationUtils.findByColumnsLike(param.getValue().toString(), Collections.singleton(param.getName())));
}
@Override
public Operation> eq() {
return param -> where(SpecificationUtils.findByColumnEquals(cast(param.getValue()), param.getName()));
}
@Override
public Operation> notEq() {
return param -> where(SpecificationUtils.findByColumnNotEquals(cast(param.getValue()), param.getName()));
}
@Override
public Operation> in() {
return param ->
where(SpecificationUtils.findByCollectionIn(collectionCast(param.getValue()), param.getName()));
}
@Override
public Operation> notIn() {
return param ->
where(SpecificationUtils.findByCollectionNotIn(collectionCast(param.getValue()), param.getName()));
}
@Override
public Operation> isNull() {
return param -> where(SpecificationUtils.findByColumnIsNull(param.getName()));
}
@Override
public Operation> lessThan() {
return param -> where(SpecificationUtils.lessThan(param.getValue().toString(), param.getName()));
}
@Override
public Operation> greaterThan() {
return param -> where(SpecificationUtils.greaterThan(param.getValue().toString(), param.getName()));
}
@Override
public Operation> greaterThanOrEquals() {
return param -> where(SpecificationUtils.greaterThanOrEqual(param.getValue().toString(), param.getName()));
}
@Override
public Operation> lessThanOrEquals() {
return param -> where(SpecificationUtils.lessThanOrEqual(param.getValue().toString(), param.getName()));
}
public Operation> contains() {
return param -> where(SpecificationUtils.contains(param.getValue(), param.getName()));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy