summaryrefslogtreecommitdiffstats
path: root/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/ReflectionUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/ReflectionUtils.java')
-rw-r--r--v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/ReflectionUtils.java79
1 files changed, 0 insertions, 79 deletions
diff --git a/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/ReflectionUtils.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/ReflectionUtils.java
deleted file mode 100644
index 728c4f80d..000000000
--- a/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/ReflectionUtils.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.v3po.translate.util;
-
-import com.google.common.base.Optional;
-import java.lang.reflect.Method;
-import java.util.List;
-import javax.annotation.Nonnull;
-
-/**
- * Reflection based utilities
- */
-public final class ReflectionUtils {
-
- private ReflectionUtils() {}
-
- /**
- * Find a specific method using reflection
- *
- * @param managedType Class object to find method in
- * @param prefix Method name prefix used when finding the method. Case does not matter.
- * @param paramTypes List of input argument types
- * @param retType Return type
- *
- * @return Found method or Optional.absent() if there's no such method
- */
- @Nonnull
- public static Optional<Method> findMethodReflex(@Nonnull final Class<?> managedType,
- @Nonnull final String prefix,
- @Nonnull final List<Class<?>> paramTypes,
- @Nonnull final Class<?> retType) {
- for (Method method : managedType.getMethods()) {
- if (isMethodMatch(prefix, paramTypes, retType, method)) {
- return Optional.of(method);
- }
- }
-
- return Optional.absent();
- }
-
- private static boolean isMethodMatch(final @Nonnull String prefix,
- final @Nonnull List<Class<?>> paramTypes,
- final @Nonnull Class<?> retType, final Method method) {
- if (!method.getName().toLowerCase().startsWith(prefix.toLowerCase())) {
- return false;
- }
-
- final Class<?>[] parameterTypes = method.getParameterTypes();
- if (parameterTypes.length != paramTypes.size()) {
- return false;
- }
-
- for (int i = 0; i < parameterTypes.length; i++) {
- if (!parameterTypes[i].isAssignableFrom(paramTypes.get(i))) {
- return false;
- }
- }
-
- if (!method.getReturnType().equals(retType)) {
- return false;
- }
-
- return true;
- }
-}