001 /* 002 * Sonar, open source software quality management tool. 003 * Copyright (C) 2009 SonarSource SA 004 * mailto:contact AT sonarsource DOT com 005 * 006 * Sonar is free software; you can redistribute it and/or 007 * modify it under the terms of the GNU Lesser General Public 008 * License as published by the Free Software Foundation; either 009 * version 3 of the License, or (at your option) any later version. 010 * 011 * Sonar is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 * Lesser General Public License for more details. 015 * 016 * You should have received a copy of the GNU Lesser General Public 017 * License along with Sonar; if not, write to the Free Software 018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 019 */ 020 package org.sonar.java.recognizer; 021 022 import java.util.HashSet; 023 import java.util.Set; 024 025 import org.sonar.squid.recognizer.CamelCaseDetector; 026 import org.sonar.squid.recognizer.ContainsDetector; 027 import org.sonar.squid.recognizer.Detector; 028 import org.sonar.squid.recognizer.EndWithDetector; 029 import org.sonar.squid.recognizer.KeywordsDetector; 030 import org.sonar.squid.recognizer.LanguageFootprint; 031 032 public class JavaFootprint implements LanguageFootprint { 033 034 private final Set<Detector> detectors = new HashSet<Detector>(); 035 036 public JavaFootprint() { 037 detectors.add(new EndWithDetector(0.95, '}', ';', '{')); 038 detectors.add(new KeywordsDetector(0.7, "||", "&&")); 039 detectors.add(new KeywordsDetector(0.3, "public", "abstract", "class", "implements", "extends", "return", "throw", "private", 040 "protected", "enum", "continue", "assert", "package", "synchronized", "boolean", "this", "double", "instanceof", "final", 041 "interface", "static", "void", "long", "int", "float", "super", "true", "case:")); 042 detectors.add(new ContainsDetector(0.95, "++", "for(", "if(", "while(", "catch(", "switch(", "try{", "else{")); 043 detectors.add(new CamelCaseDetector(0.5)); 044 } 045 046 public Set<Detector> getDetectors() { 047 return detectors; 048 } 049 }