
net.projectmonkey.object.mapper.construction.converter.Converter Maven / Gradle / Ivy
package net.projectmonkey.object.mapper.construction.converter;
import net.projectmonkey.object.mapper.construction.PopulationContext;
/*
*
* * Copyright 2012 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.
*
*/
/**
* Converters define how to convert from a source object to the
* destination type.
* It is expected that objects returned from a converter
* are fully constructed so no further mapping is performed.
* @author Andy Moody
*/
public interface Converter
{
/**
* Create (if not already existing or if the existing object is immutable)
* and populate the destination object from the provided context
* @param context
* @return the fully populated destination.
*/
DestinationType convert(PopulationContext context);
/**
* Method used to validate whether a Converter is applicable for the context.
* Note that if this evaluates to false when the converter has been specifically
* targeted to the property using {@link net.projectmonkey.object.mapper.annotations.group.Group }
* or {@link net.projectmonkey.object.mapper.annotations.group.Groups } an error is triggered.
*
* @param context
* @return true if the converter can convert the source to the destination type given the current context,
* false otherwise.
**/
boolean canConvert(PopulationContext, ?> context);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy