package org.etk.orm.apt;
import java.util.Map;
import org.etk.reflect.api.ClassTypeInfo;
class PackageMetaData {
/** . */
final String packageName;
/** . */
final Map<String, String> prefixMappings;
/** . */
final boolean deep;
public PackageMetaData(
String packageName,
Map<String, String> prefixMappings,
boolean deep) {
this.packageName = packageName;
this.prefixMappings = prefixMappings;
this.deep = deep;
}
int distance(ClassTypeInfo cti) {
int distance;
if (deep) {
if (cti.getPackageName().startsWith(packageName)) {
distance = 0;
for (String packageName : PackageNameIterator.with(cti.getPackageName())) {
if (cti.getPackageName().equals(packageName)) {
break;
} else {
distance++;
}
}
} else {
distance = -1;
}
} else {
distance = cti.getPackageName().equals(packageName) ? 0 : -1;
}
return distance;
}
}