
com.github.jinahya.sql.database.metadata.bind.Invocations Maven / Gradle / Ivy
/*
* Copyright 2015 Jin Kwon <jinahya_at_gmail.com>.
*
* 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 com.github.jinahya.sql.database.metadata.bind;
import java.lang.reflect.Field;
/**
* A utility class for {@link Invocation}.
*
* @author Jin Kwon <jinahya_at_gmail.com>
*/
final class Invocations {
static Object[] values(final Class beanClass, final T beanInstance,
final Class>[] types, final String[] names)
throws ReflectiveOperationException {
final Object[] values = new Object[names.length];
for (int i = 0; i < names.length; i++) {
if ("null".equals(names[i])) {
values[i] = null;
continue;
}
if (names[i].startsWith(":")) {
final Field field
= Reflections.findField(beanClass, names[i].substring(1));
// if (!field.isAccessible()) {
// field.setAccessible(true);
// }
// values[i] = field.get(beanInstance);
// values[i] = Beans.getPropertyValue(
// beanClass, names[i].substring(1), beanInstance);
values[i] = Values.get(field, beanInstance);
continue;
}
if (types[i] == String.class) {
values[i] = names[i];
continue;
}
if (types[i].isPrimitive()) {
types[i] = Reflections.wrapper(types[i]);
}
values[i] = types[i]
.getMethod("valueOf", String.class)
.invoke(null, names[i]);
}
return values;
}
private Invocations() {
super();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy