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

org.jdbi.v3.vavr.VavrPlugin Maven / Gradle / Ivy

Go to download

Vavr is a functional programming library for the JVM. It is greatly inspired by scala and brings persistent, immutable datastructures to the Java World

There is a newer version: 3.47.0
Show newest version
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jdbi.v3.vavr;

import org.jdbi.v3.core.Jdbi;
import org.jdbi.v3.core.spi.JdbiPlugin;

/**
 * JDBI-Plugin for vavr.io library
 * 
    *
  • supports single-value arguments ({@link io.vavr.control.Option}, ...)
  • *
  • supports vavr collections via {@link org.jdbi.v3.core.result.ResultBearing#collectInto(java.lang.reflect.Type)} call
  • *
  • supports key-value mappings of a tuple result (implicitly used by map collectors)
  • *
  • supports tuple projection
  • *
  • supports column mapping for {@link io.vavr.control.Option}
  • *
*/ public class VavrPlugin extends JdbiPlugin.Singleton { @Override public void customizeJdbi(Jdbi jdbi) { jdbi.registerCollector(new VavrCollectorFactory()); jdbi.registerRowMapper(new VavrTupleRowMapperFactory()); jdbi.registerArgument(new VavrValueArgumentFactory()); jdbi.registerColumnMapper(VavrOptionMapper.factory()); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy