org.wildfly.clustering.marshalling.protostream.reflect.TernaryMemberMarshaller Maven / Gradle / Ivy
/*
* Copyright The WildFly Authors
* SPDX-License-Identifier: Apache-2.0
*/
package org.wildfly.clustering.marshalling.protostream.reflect;
import java.lang.reflect.Member;
import java.util.function.BiFunction;
/**
* Generic marshaller based on three non-public members.
* @param the target type of this marshaller
* @param the reflection member type
* @param the first component member type
* @param the second component member type
* @param the third component member type
* @author Paul Ferraro
*/
public class TernaryMemberMarshaller extends AbstractMemberMarshaller {
private final Class member1Type;
private final Class member2Type;
private final Class member3Type;
private final TriFunction factory;
public TernaryMemberMarshaller(Class extends T> type, BiFunction