org.sfm.reflect.meta.DirectClassMeta Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of simpleFlatMapper Show documentation
Show all versions of simpleFlatMapper Show documentation
Java library to map flat record - ResultSet, csv - to java object with minimum configuration and low footprint.
package org.sfm.reflect.meta;
import org.sfm.map.MapperBuildingException;
import org.sfm.reflect.ConstructorDefinition;
import org.sfm.reflect.Getter;
import org.sfm.reflect.ReflectionService;
import org.sfm.reflect.Setter;
import java.lang.reflect.Type;
import java.util.List;
public final class DirectClassMeta implements ClassMeta {
private final ReflectionService reflectService;
private final Type target;
public DirectClassMeta(Type target, ReflectionService reflectService) throws MapperBuildingException {
this.target = target;
this.reflectService = reflectService;
}
@Override
public ReflectionService getReflectionService() {
return reflectService;
}
@Override
public PropertyFinder newPropertyFinder() {
return new DirectPropertyFinder();
}
@Override
public Type getType() {
return target;
}
@Override
public String[] generateHeaders() {
throw new UnsupportedOperationException();
}
public class DirectPropertyFinder implements PropertyFinder {
@Override
public PropertyMeta findProperty(PropertyNameMatcher propertyNameMatcher) {
return new DirectPropertyMeta("direct", reflectService, target);
}
@Override
public List> getEligibleConstructorDefinitions() {
return null;
}
@Override
public ConstructorPropertyMeta findConstructor(ConstructorDefinition constructorDefinition) {
return null;
}
}
public class DirectPropertyMeta extends PropertyMeta {
private final Type type;
public DirectPropertyMeta(String name, ReflectionService reflectService, Type type) {
super(name, reflectService);
this.type = type;
}
@Override
protected Setter newSetter() {
throw new UnsupportedOperationException();
}
@Override
protected Getter newGetter() {
throw new UnsupportedOperationException();
}
@Override
public Type getType() {
return type;
}
@Override
public String getPath() {
return getName();
}
@Override
public String toString() {
return "DirectPropertyMeta{" +
"type=" + type +
'}';
}
}
@Override
public String toString() {
return "DirectClassMeta{" +
"target=" + target +
'}';
}
}