private List<String> getMethodParams(
     final List<MethodInfo> methodInfos, final String methodNameWithParams) {
   final List<String> methodParams = new ArrayList<String>();
   for (MethodInfo methodInfo : methodInfos) {
     if (methodInfo.getNameWithParameters().startsWith(methodNameWithParams)) {
       methodParams.addAll(methodInfo.getParams());
     }
   }
   return methodParams;
 }
 private MethodInfo getMethodInfo(
     final List<MethodInfo> methodInfos, final String methodNameWithParams) {
   for (MethodInfo methodInfo : methodInfos) {
     if (methodInfo.getNameWithParameters().equals(methodNameWithParams)) {
       return AsyncPackageDataModelOracleUtilities.correctMethodInformation(
           packageName, methodInfo, imports);
     }
   }
   return null;
 }
 private List<MethodInfo> getMethodInfos(
     final int paramCount, final List<MethodInfo> allMethodInfos) {
   final List<MethodInfo> methodInfos = new ArrayList<MethodInfo>();
   if (allMethodInfos == null) {
     return methodInfos;
   }
   for (MethodInfo mi : allMethodInfos) {
     if (paramCount == -1 || mi.getParams().size() <= paramCount) {
       methodInfos.add(mi);
     }
   }
   return AsyncPackageDataModelOracleUtilities.correctMethodInformation(
       packageName, methodInfos, imports);
 }
  @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;
  }