1<?php 2/** 3 * $Id: a336822b8c54702ba2b0590e5a812c779e5c221b $ 4 * 5 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 6 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 7 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 8 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 9 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 11 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 12 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 13 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 14 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 15 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 16 * 17 * This software consists of voluntary contributions made by many individuals 18 * and is licensed under the LGPL. For more information please see 19 * <http://phing.info>. 20 */ 21 22require_once 'phing/tasks/ext/phpcpd/formatter/PHPCPDResultFormatter.php'; 23 24/** 25 * Prints PMD-XML output of phpcpd run 26 * 27 * @package phing.tasks.ext.phpcpd.formatter 28 * @author Benjamin Schultz <bschultz@proqrent.de> 29 * @version $Id: a336822b8c54702ba2b0590e5a812c779e5c221b $ 30 */ 31class PMDPHPCPDResultFormatter extends PHPCPDResultFormatter 32{ 33 /** 34 * Processes a list of clones. 35 * 36 * @param object $clones 37 * @param Project $project 38 * @param boolean $useFile 39 * @param PhingFile|null $outfile 40 */ 41 public function processClones($clones, Project $project, $useFile = false, $outFile = null) 42 { 43 if (!$useFile || empty($outFile)) { 44 throw new BuildException("Output filename required for this formatter"); 45 } 46 47 if (get_class($clones) == 'PHPCPD_CloneMap') { 48 $logger = new PHPCPD_Log_XML_PMD($outFile); 49 } else { 50 $logger = new \SebastianBergmann\PHPCPD\Log\PMD($outFile); 51 } 52 53 $logger->processClones($clones); 54 } 55}