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

com.github.andyshao.util.SimpleFieldMapper Maven / Gradle / Ivy

The newest version!
package com.github.andyshao.util;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.function.BiPredicate;

import com.github.andyshao.reflect.FieldOperation;
import com.github.andyshao.util.EntityOperation.FieldMapper;
import com.github.andyshao.util.EntityOperation.FieldMatch;
import com.github.andyshao.util.annotation.IgnoreCopy;

import lombok.Setter;

/**
 * 
 * Title:
* Descript:
* Copyright: Copryright(c) Aug 21, 2018
* Encoding:UNIX UTF-8 * @author Andy.Shao * @deprecated useless class * * @param input type * @param output type */ @Deprecated public class SimpleFieldMapper implements FieldMapper { @Setter private BiPredicate customPredicate = (input, output) -> Objects.equals(input.getName() , output.getName()); @Override public List match(IN input , OUT output) { if(input == null || output == null) return Collections.emptyList(); if(input.getClass().isPrimitive() || output.getClass().isPrimitive()) return Collections.emptyList(); List result = new ArrayList<>(); Field[] inputFields = FieldOperation.superGetDeclaredFields(input.getClass()); Field[] outputFields = FieldOperation.superGetDeclaredFields(output.getClass()); for(Field inputField : inputFields){ for(Field outputField : outputFields){ if(customPredicate.test(inputField , outputField)){ IgnoreCopy ignoreCopy = inputField.getAnnotation(IgnoreCopy.class); if(EntityOperation.isMatch(inputField , outputField) && ignoreCopy == null) result.add(new FieldMatch(inputField, outputField)); } } } return result; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy