// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/StyleCheckerException.java
// public class StyleCheckerException extends Exception {
// 
//   public StyleCheckerException(String message) {
//     super(message);
//   }
// 
//   public StyleCheckerException(String message, Throwable cause) {
//     super(message, cause);
//   }
// }
// 
// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/configuration/Configuration.java
// public interface Configuration {
// 
//   String[] getAttributeNames();
// 
//   String getAttribute(String name) throws StyleCheckerException;
// }
// 
// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/configuration/StyleName.java
// public class StyleName {
// 
//   public static final String IGNORE_STYLE = "ignore";
// 
//   public static final String METHOD_NAME_FORMAT = "methodNameFormat";
//   public static final String METHOD_NAME_FORMAT_CAMEL_CASE = "camelCase";
// 
//   public static final String WILD_CARD_IMPORT = "wildCardImport";
//   public static final String WILD_CARD_IMPORT_OK = "wildCard";
//   public static final String WILD_CARD_IMPORT_NO = "noWildCard";
// 
//   public static final String BRACE_STYLE = "braceStyle";
//   public static final String BRACE_STYLE_KR = "kr";
//   public static final String BRACE_STYLE_NON_KR = "nonKr";
// 
//   public static final String[] ALL_STYLE_NAMES = {
//       METHOD_NAME_FORMAT,
//       WILD_CARD_IMPORT,
//       BRACE_STYLE,
//   };
// }
// 
// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/report/StyleReport.java
// public class StyleReport {
// 
//   List<StyleReportContent> reportContents;
// 
//   public StyleReport() {
//     reportContents = new ArrayList<>();
//   }
// 
//   public List<StyleReportContent> getReportContents() {
//     return ImmutableList.<StyleReportContent>builder().addAll(reportContents).build();
//   }
// 
//   public void addReportContents(StyleReportContent reportContents) {
//     this.reportContents.add(reportContents);
//   }
// }
// 
// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/report/StyleReportContent.java
// public class StyleReportContent {
// 
//   private int lineNumber;
// 
//   private int columnNumber;
// 
//   private String message;
// 
//   private String suggestion;
// 
//   public StyleReportContent(int lineNumber, int columnNumber, String message) {
//     this.lineNumber = lineNumber;
//     this.columnNumber = columnNumber;
//     this.message = message;
//   }
// 
//   public StyleReportContent(int lineNumber, int columnNumber, String message, String suggestion) {
//     this.lineNumber = lineNumber;
//     this.columnNumber = columnNumber;
//     this.message = message;
//     this.suggestion = suggestion;
//   }
// 
//   public int getLineNumber() {
//     return lineNumber;
//   }
// 
//   public int getColumnNumber() {
//     return columnNumber;
//   }
// 
//   public String getMessage() {
//     return message;
//   }
// 
//   public String getSuggestion() {
//     return suggestion;
//   }
// }


import com.sqatntu.api.JavaBaseListener;
import com.sqatntu.api.JavaParser;
import com.sqatntu.stylechecker.StyleCheckerException;
import com.sqatntu.stylechecker.configuration.Configuration;
import com.sqatntu.stylechecker.configuration.StyleName;
import com.sqatntu.stylechecker.report.StyleReport;
import com.sqatntu.stylechecker.report.StyleReportContent;
/*
 * The MIT License (MIT)
 *
 * Copyright (c) 2015 Andy Chong Chin Shin
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 * and associated documentation files (the "Software"), to deal in the Software without restriction,
 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
 * is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or
 * substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 */

package com.sqatntu.stylechecker.listener;


/**
 * Check method name format of source codes
 * Two method name format is define in {@link StyleName}:
 * 1. {@link StyleName#METHOD_NAME_FORMAT_CAMEL_CASE}
 * 2. {@link StyleName#IGNORE_STYLE}
 *
 * @see StyleName#METHOD_NAME_FORMAT
 */
class MethodNameFormatListener extends JavaBaseListener {

  private Configuration configuration;
// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/StyleCheckerException.java
// public class StyleCheckerException extends Exception {
// 
//   public StyleCheckerException(String message) {
//     super(message);
//   }
// 
//   public StyleCheckerException(String message, Throwable cause) {
//     super(message, cause);
//   }
// }
// 
// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/configuration/Configuration.java
// public interface Configuration {
// 
//   String[] getAttributeNames();
// 
//   String getAttribute(String name) throws StyleCheckerException;
// }
// 
// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/configuration/StyleName.java
// public class StyleName {
// 
//   public static final String IGNORE_STYLE = "ignore";
// 
//   public static final String METHOD_NAME_FORMAT = "methodNameFormat";
//   public static final String METHOD_NAME_FORMAT_CAMEL_CASE = "camelCase";
// 
//   public static final String WILD_CARD_IMPORT = "wildCardImport";
//   public static final String WILD_CARD_IMPORT_OK = "wildCard";
//   public static final String WILD_CARD_IMPORT_NO = "noWildCard";
// 
//   public static final String BRACE_STYLE = "braceStyle";
//   public static final String BRACE_STYLE_KR = "kr";
//   public static final String BRACE_STYLE_NON_KR = "nonKr";
// 
//   public static final String[] ALL_STYLE_NAMES = {
//       METHOD_NAME_FORMAT,
//       WILD_CARD_IMPORT,
//       BRACE_STYLE,
//   };
// }
// 
// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/report/StyleReport.java
// public class StyleReport {
// 
//   List<StyleReportContent> reportContents;
// 
//   public StyleReport() {
//     reportContents = new ArrayList<>();
//   }
// 
//   public List<StyleReportContent> getReportContents() {
//     return ImmutableList.<StyleReportContent>builder().addAll(reportContents).build();
//   }
// 
//   public void addReportContents(StyleReportContent reportContents) {
//     this.reportContents.add(reportContents);
//   }
// }
// 
// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/report/StyleReportContent.java
// public class StyleReportContent {
// 
//   private int lineNumber;
// 
//   private int columnNumber;
// 
//   private String message;
// 
//   private String suggestion;
// 
//   public StyleReportContent(int lineNumber, int columnNumber, String message) {
//     this.lineNumber = lineNumber;
//     this.columnNumber = columnNumber;
//     this.message = message;
//   }
// 
//   public StyleReportContent(int lineNumber, int columnNumber, String message, String suggestion) {
//     this.lineNumber = lineNumber;
//     this.columnNumber = columnNumber;
//     this.message = message;
//     this.suggestion = suggestion;
//   }
// 
//   public int getLineNumber() {
//     return lineNumber;
//   }
// 
//   public int getColumnNumber() {
//     return columnNumber;
//   }
// 
//   public String getMessage() {
//     return message;
//   }
// 
//   public String getSuggestion() {
//     return suggestion;
//   }
// }


// Path: stylechecker/src/main/java/com/sqatntu/stylechecker/listener/MethodNameFormatListener.java
import com.sqatntu.api.JavaBaseListener;
import com.sqatntu.api.JavaParser;
import com.sqatntu.stylechecker.StyleCheckerException;
import com.sqatntu.stylechecker.configuration.Configuration;
import com.sqatntu.stylechecker.configuration.StyleName;
import com.sqatntu.stylechecker.report.StyleReport;
import com.sqatntu.stylechecker.report.StyleReportContent;

/*
 * The MIT License (MIT)
 *
 * Copyright (c) 2015 Andy Chong Chin Shin
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 * and associated documentation files (the "Software"), to deal in the Software without restriction,
 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
 * is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or
 * substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 */

package com.sqatntu.stylechecker.listener;


/**
 * Check method name format of source codes
 * Two method name format is define in {@link StyleName}:
 * 1. {@link StyleName#METHOD_NAME_FORMAT_CAMEL_CASE}
 * 2. {@link StyleName#IGNORE_STYLE}
 *
 * @see StyleName#METHOD_NAME_FORMAT
 */
class MethodNameFormatListener extends JavaBaseListener {

  private Configuration configuration;
  private StyleReport report;