Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Sonar, open source software quality management tool.
   * Copyright (C) 2008-2012 SonarSource
   * mailto:contact AT sonarsource DOT com
   *
   * Sonar 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.
  *
  * Sonar 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 Sonar; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
  */
 package org.sonar.plugins.pmd;
 
 
 import java.util.List;
 
 public class PmdExecutor implements BatchExtension {
   private final Project project;
   private final ProjectFileSystem projectFileSystem;
   private final RulesProfile rulesProfile;
   private final PmdConfiguration pmdConfiguration;
 
   public PmdExecutor(Project projectProjectFileSystem projectFileSystemRulesProfile rulesProfilePmdProfileExporter pmdProfileExporterPmdConfiguration pmdConfiguration) {
     this. = project;
     this. = projectFileSystem;
     this. = rulesProfile;
     this. = pmdProfileExporter;
     this. = pmdConfiguration;
   }
 
   public Report execute() {
     TimeProfiler profiler = new TimeProfiler().start("Execute PMD " + PmdVersion.getVersion());
 
     ClassLoader initialClassLoader = Thread.currentThread().getContextClassLoader();
     try {
 
       return executePmd();
     } finally {
       Thread.currentThread().setContextClassLoader(initialClassLoader);
       profiler.stop();
     }
   }
 
   private Report executePmd() {
     Report report = new Report();
 
     RuleContext context = new RuleContext();
     context.setReport(report);
 
     PmdTemplate pmdFactory = createPmdTemplate();
 
 
     return report;
   }
 
   public void executeRules(PmdTemplate pmdFactoryRuleContext ruleContextList<InputFilefilesString repositoryKey) {
     if (files.isEmpty()) {
       return// Nothing to analyse
     }
 
     RuleSets rulesets = createRulesets(repositoryKey);
     if (rulesets.getAllRules().isEmpty()) {
       return// No rule
     }
 
     Charset encoding = .getSourceCharset();
 
     for (InputFile file : files) {
      pmdFactory.process(fileencodingrulesetsruleContext);
    }
  }
  private RuleSets createRulesets(String repositoryKey) {
    String rulesXml = .exportProfile(repositoryKey);
    .dumpXmlRuleSet(repositoryKeyrulesXml);
    return new RuleSets(readRuleSet(rulesXml));
  }
  private static RuleSet readRuleSet(String rulesXml) {
    InputStream rulesInput = null;
    try {
      rulesInput = new ByteArrayInputStream(rulesXml.getBytes());
      return new RuleSetFactory().createRuleSet(rulesInput);
    } finally {
      Closeables.closeQuietly(rulesInput);
    }
  }
    return new PmdTemplate(JavaUtils.getSourceVersion());
  }
New to GrepCode? Check out our FAQ X