
org.sfm.map.impl.MapperImpl Maven / Gradle / Ivy
package org.sfm.map.impl;
import org.sfm.map.FieldMapper;
import org.sfm.map.MappingContext;
import org.sfm.map.MappingContextFactory;
import org.sfm.reflect.Instantiator;
import java.util.Arrays;
public class MapperImpl extends AbstractMapper {
private final FieldMapper[] fieldMappers;
private final FieldMapper[] constructorMappers;
public MapperImpl(final FieldMapper[] fieldMappers,
final FieldMapper[] constructorMappers,
final Instantiator instantiator,
final MappingContextFactory mappingContextFactory) {
super(instantiator, mappingContextFactory);
this.fieldMappers = fieldMappers;
this.constructorMappers = constructorMappers;
}
protected final void mapFields(final S source, final T target, final MappingContext mappingContext) throws Exception {
for (FieldMapper fieldMapper : fieldMappers) {
fieldMapper.mapTo(source, target, mappingContext);
}
}
@Override
protected final void mapToFields(S source, T target, final MappingContext mappingContext) throws Exception {
for (FieldMapper constructorMapper : constructorMappers) {
constructorMapper.mapTo(source, target, mappingContext);
}
mapFields(source, target, mappingContext);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName())
.append("{");
super.appendToStringBuilder(sb);
sb.append(", fieldMappers=").append(Arrays.toString(fieldMappers));
sb.append("}");
return sb.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy