package com.splunk.mint.network.util;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public final class ReflectionUtil
{
  public static final boolean includeObject;

  public static boolean callingClassAnyOf(String[] paramArrayOfString)
  {
    StackTraceElement[] arrayOfStackTraceElement = new Throwable().getStackTrace();
    int i = arrayOfStackTraceElement.length;
    for (int j = 0; j < i; j++)
      if (contains(arrayOfStackTraceElement[j].getClassName(), paramArrayOfString))
        return true;
    return false;
  }

  public static final boolean contains(String paramString, String[] paramArrayOfString)
  {
    int i = paramArrayOfString.length;
    for (int j = 0; j < i; j++)
      if (paramString.contains(paramArrayOfString[j]))
        return true;
    return false;
  }

  public static String extractCallingMethod(String[] paramArrayOfString)
  {
    for (StackTraceElement localStackTraceElement : new Throwable().getStackTrace())
      if (!inExcluded(localStackTraceElement.getClassName(), paramArrayOfString))
        return localStackTraceElement.getClassName() + "." + localStackTraceElement.getMethodName() + ":" + localStackTraceElement.getLineNumber();
    return null;
  }

  public static Constructor<?> findConstructor(String paramString, Class<?>[] paramArrayOfClass)
    throws ClassNotFoundException
  {
    for (Constructor localConstructor : Class.forName(paramString).getDeclaredConstructors())
    {
      Class[] arrayOfClass = localConstructor.getParameterTypes();
      if (arrayOfClass.length == paramArrayOfClass.length)
      {
        int k = 1;
        for (int m = 0; m < arrayOfClass.length; m++)
          if (!arrayOfClass[m].equals(paramArrayOfClass[m]))
            k = 0;
        if (k != 0)
          return localConstructor;
      }
    }
    return null;
  }

  public static Set<Method> getAllMethods(Class<?> paramClass)
  {
    HashSet localHashSet = new HashSet();
    Iterator localIterator = getAllSuperTypes(paramClass).iterator();
    while (localIterator.hasNext())
    {
      Method[] arrayOfMethod = ((Class)localIterator.next()).getDeclaredMethods();
      int i = arrayOfMethod.length;
      for (int j = 0; j < i; j++)
        localHashSet.add(arrayOfMethod[j]);
    }
    return localHashSet;
  }

  public static Set<Class<?>> getAllSuperTypes(Class<?> paramClass)
  {
    HashSet localHashSet = new HashSet();
    if ((paramClass != null) && (!paramClass.equals(Object.class)))
    {
      localHashSet.add(paramClass);
      localHashSet.addAll(getAllSuperTypes(paramClass.getSuperclass()));
      Class[] arrayOfClass = paramClass.getInterfaces();
      int i = arrayOfClass.length;
      for (int j = 0; j < i; j++)
        localHashSet.addAll(getAllSuperTypes(arrayOfClass[j]));
    }
    return localHashSet;
  }

  private static final boolean inExcluded(String paramString, String[] paramArrayOfString)
  {
    int i = paramArrayOfString.length;
    for (int j = 0; j < i; j++)
      if (paramString.startsWith(paramArrayOfString[j]))
        return true;
    return false;
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.splunk.mint.network.util.ReflectionUtil
 * JD-Core Version:    0.6.2
 */