class AsyncPackageDataModelOracleImpl implements AsyncPackageDataModelOracle {

    @Override
    public String getFieldClassName(final String modelClassName,
                                    final String fieldName) {
        //Check fields
        final ModelField field = getField(modelClassName,
                                          fieldName);
        if (field != null) {
            return field.getClassName();
        }

        //Check method information
        final String fgcnModelClassName = getFQCNByFactName(modelClassName);
        final List<MethodInfo> mis = projectMethodInformation.get(fgcnModelClassName);
        if (mis != null) {
            for (MethodInfo mi : mis) {
                if (mi.getName().equals(fieldName)) {
                    return mi.getReturnClassType();
                }
            }
        }

        return null;
    }

    @Inject public  AsyncPackageDataModelOracleImpl(final Caller<IncrementalDataModelService> service,
                                           final Instance<DynamicValidator> validatorInstance);

}