org.modelmapper.builder.ReferenceMapExpression Maven / Gradle / Ivy
/*
* Copyright 2017 the original author or authors.
*
* 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.modelmapper.builder;
import org.modelmapper.spi.DestinationSetter;
import org.modelmapper.spi.SourceGetter;
/**
* Represents mapping actions, to set a destination property from a source property,
* or to skip a destination property.
*
* @param source type
* @param destination type
*
* @author Chun Han Hsiao
*/
public interface ReferenceMapExpression {
/**
* Map source getter value to destination setter
*
*
* {@code
* map(Src::getValue, Dest::setValue)
* map(src -> srg.getCustomer().getAddress(), dest -> dest.getCustomer().setAddress())
* }
*
*
* @param sourceGetter a method reference to source getter
* @param destinationSetter a method reference to destination setter
* @param the value type to set into destination
*/
void map(SourceGetter sourceGetter, DestinationSetter destinationSetter);
/**
* Skip destination property based on {@code destinationSetter}
*
*
* {@code
* skip(Dest::setValue)
* map(dest -> dest.getCustomer().setAddress())
* }
*
*
* @param destinationSetter a method reference to destination setter
* @param the value type of the setter
*/
void skip(DestinationSetter destinationSetter);
}