org.simpleflatmapper.map.asm.MapperKey Maven / Gradle / Ivy
package org.simpleflatmapper.map.asm;
import org.simpleflatmapper.map.FieldKey;
import org.simpleflatmapper.map.FieldMapper;
import org.simpleflatmapper.map.MappingContext;
import org.simpleflatmapper.reflect.BiInstantiator;
import org.simpleflatmapper.reflect.Instantiator;
import java.util.Arrays;
public class MapperKey> {
private final K[] keys;
private final Class>[] fieldMappers;
private final Class>[] constructorFieldMappers;
private final Class> instantiator;
private final Class> target;
private final Class> source;
public MapperKey(K[] keys,
FieldMapper, ?>[] fieldMappers,
FieldMapper, ?>[] constructorFieldMappers,
BiInstantiator, ?, ?> instantiator,
Class> target, Class> source) {
this.keys = keys;
this.source = source;
this.fieldMappers = getClassArray(fieldMappers);
this.constructorFieldMappers = getClassArray(constructorFieldMappers);
this.instantiator = getClass(instantiator);
this.target = target;
}
private Class>[] getClassArray(Object[] objects) {
Class>[] classes = new Class[objects != null ? objects.length : 0];
if(objects != null) {
int i = 0;
for(Object o : objects) {
classes[i] = getClass(o);
i++;
}
}
return classes;
}
private Class> getClass(Object o) {
if (o != null) return o.getClass();
return null;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MapperKey> mapperKey = (MapperKey>) o;
// Probably incorrect - comparing Object[] arrays with Arrays.equals
if (!Arrays.equals(keys, mapperKey.keys)) return false;
// Probably incorrect - comparing Object[] arrays with Arrays.equals
if (!Arrays.equals(fieldMappers, mapperKey.fieldMappers)) return false;
// Probably incorrect - comparing Object[] arrays with Arrays.equals
if (!Arrays.equals(constructorFieldMappers, mapperKey.constructorFieldMappers)) return false;
if (!instantiator.equals(mapperKey.instantiator)) return false;
if (!target.equals(mapperKey.target)) return false;
return source.equals(mapperKey.source);
}
@Override
public int hashCode() {
int result = Arrays.hashCode(keys);
result = 31 * result + Arrays.hashCode(fieldMappers);
result = 31 * result + Arrays.hashCode(constructorFieldMappers);
result = 31 * result + instantiator.hashCode();
result = 31 * result + target.hashCode();
result = 31 * result + source.hashCode();
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy