package fr.umlv.reflect;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.UndeclaredThrowableException;
import java.util.AbstractMap;
import java.util.AbstractSet;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;

public class Introspectors {
  private static String property(String methodName) {
    if (methodName.length() < 4) {
      throw new IllegalArgumentException("methodName.length() < 4");
    }
    String suffix = methodName.substring(3);
    return Character.toLowerCase(suffix.charAt(0)) + suffix.substring(1);
  }
  
  private static Object invokeGet(Method getter, Object object) {
    try {
      // TODO
    } catch (IllegalAccessException | IllegalArgumentException e) {
      //TODO
    } catch(InvocationTargetException e) {
      //TODO
    }
  }
  
  // TODO
}
