protected void initMiningFieldMap() throws IllegalArgumentException {
MiningSchema schema = getMiningSchema();
boolean addExternalBeanRefs = isUseExternalBeanRefs(schema);
miningFieldMap = new HashMap<>();
externalMiningFields = new ArrayList<>();
for (MiningField field : schema.getMiningFields()) {
miningFieldMap.put(field.getName(), field);
if (addExternalBeanRefs) {
Extension ext = getExternalClassInfo(field.getExtensions());
if (ext != null) {
ExternalBeanRef ref;
try {
ref = new ExternalBeanRef(field.getName(), ext.getValue(), ModelUsage.MINING);
if (ExternalBeanDefinition.DEFAULT_BEAN_PKG.equals(ref.getBeanPackageName()) && this.getOwner().getRootPackage() != null) {
ref.setBeanPackageName(this.getOwner().getRootPackage());
}
externalMiningFields.add(ref);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException("Error while initializing the MiningField map. ",e);
}
}
}
}
}