private void processMethod(T origem, T destino, Method mGet) {
        if ("getClass".equals(mGet.getName())) {
            return;
        }

        if ("getId".equals(mGet.getName())) {
            return;
        }

        try {
            String mSGet = mGet.getName();
            String mSSet = "";
            if (mSGet.matches("(get|is)([A-Z])(\\w+)(\\S)")) {
                Object value = mGet.invoke(origem);

                if (mSGet.matches("(get)\\w+")) {
                    mSSet = "set" + mSGet.substring(3);

                    Method set = getMethod(destino.getClass(), mSSet, mGet.getReturnType());

                    if (set == null) {
                        return;
                    }
                    set.invoke(destino, value);
                }
            }

        } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
            log.log(Level.SEVERE, e.getMessage());
        }
    }