/*
* Sonar PHP Plugin
* Copyright (C) 2010 Sonar PHP Plugin
* dev@sonar.codehaus.org
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
*/
package org.sonar.plugins.php.codesniffer;
import java.util.ArrayList;
import java.util.List;
import org.sonar.api.Extension;
import org.sonar.api.Plugin;
import org.sonar.api.Properties;
import org.sonar.api.Property;
import org.sonar.plugins.php.core.PhpPlugin;
/**
* The PhpCodesniffer plugin. It uses PhpCodeSniffer to analyze classes. The plugin class declares all sensors use for this plugin and all
* configuration properties.
*/
@Properties({
@Property(key = PhpCodeSnifferConfiguration.PHPCS_REPORT_FILE_RELATIVE_PATH_PROPERTY_KEY,
defaultValue = PhpCodeSnifferConfiguration.PHPCS_DEFAULT_REPORT_FILE_PATH, name = "PhpCodesniffer log directory",
description = "The relative path to the PhpCodeSniffer log directory.", project = true),
@Property(key = PhpCodeSnifferConfiguration.PHPCS_REPORT_FILE_NAME_PROPERTY_KEY,
defaultValue = PhpCodeSnifferConfiguration.PHPCS_DEFAULT_REPORT_FILE_NAME, name = "PhpCodesniffer log file name",
description = "The PhpCodeSniffer log file name.", project = true),
@Property(key = PhpCodeSnifferConfiguration.PHPCS_STANDARD_ARGUMENT_KEY,
defaultValue = PhpCodeSnifferConfiguration.PHPCS_DEFAULT_STANDARD_ARGUMENT, name = "The code sniffer standard argument line",
description = "The standard to be used by PhpCodeSniffer", project = true),
@Property(key = PhpCodeSnifferConfiguration.PHPCS_ARGUMENT_LINE_KEY,
defaultValue = PhpCodeSnifferConfiguration.PHPCS_DEFAULT_ARGUMENT_LINE, name = "The other code sniffer argument line",
description = "PhpCodeSniffer will be launched with this arguments", project = true),
@Property(key = PhpCodeSnifferConfiguration.PHPCS_ANALYZE_ONLY_KEY,
defaultValue = PhpCodeSnifferConfiguration.PHPCS_DEFAULT_ANALYZE_ONLY, name = "Should the plugin only parse analysis report.",
description = PhpCodeSnifferConfiguration.PHPCS_ANALYZE_ONLY_DESCRIPTION, project = true),
@Property(key = PhpCodeSnifferConfiguration.PHPCS_SKIP_KEY, defaultValue = "false",
name = "Should the plugin run on this project.",
description = "If set to true, the plugin will not execute itself for this project.", project = true) })
public class PhpCodesnifferPlugin implements Plugin {
/**
* Gets the description.
*
* @return the description
*
* @see org.sonar.api.Plugin#getDescription()
*/
public String getDescription() {
return "A plugin to cover the PHP_CodeSniffer";
}
/**
* Gets the extensions.
*
* @return the extensions
*
* @see org.sonar.api.Plugin#getExtensions()
*/
public List<Class<? extends Extension>> getExtensions() {
List<Class<? extends Extension>> extensions = new ArrayList<Class<? extends Extension>>();
extensions.add(PhpCodesnifferSensor.class);
extensions.add(PhpCodeSnifferRuleRepository.class);
return extensions;
}
/**
* Gets the key.
*
* @return the key
*
* @see org.sonar.api.Plugin#getKey()
*/
public String getKey() {
return PhpPlugin.CODESNIFFER_PLUGIN_KEY;
}
/**
* Gets the name.
*
* @return the name
*
* @see org.sonar.api.Plugin#getName()
*/
public String getName() {
return "PHP_CodeSniffer";
}
/**
* To string.
*
* @return the string
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return getKey();
}
}