001 /* 002 * Sonar, open source software quality management tool. 003 * Copyright (C) 2008-2012 SonarSource 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.plugins.core; 021 022 import org.sonar.api.BatchExtension; 023 import org.sonar.api.ExtensionProvider; 024 import org.sonar.api.ServerExtension; 025 import org.sonar.api.batch.InstantiationStrategy; 026 import org.sonar.api.resources.Qualifiers; 027 import org.sonar.api.resources.ResourceType; 028 import org.sonar.api.resources.ResourceTypeTree; 029 030 @InstantiationStrategy(InstantiationStrategy.PER_BATCH) 031 public final class DefaultResourceTypes extends ExtensionProvider implements BatchExtension, ServerExtension { 032 033 @Override 034 public ResourceTypeTree provide() { 035 return ResourceTypeTree.builder() 036 037 .addType(ResourceType.builder(Qualifiers.PROJECT).build()) 038 .addType(ResourceType.builder(Qualifiers.MODULE).build()) 039 .addType(ResourceType.builder(Qualifiers.DIRECTORY).build()) 040 .addType(ResourceType.builder(Qualifiers.PACKAGE).build()) 041 .addType(ResourceType.builder(Qualifiers.FILE).hasSourceCode().build()) 042 .addType(ResourceType.builder(Qualifiers.CLASS).hasSourceCode().build()) 043 .addType(ResourceType.builder(Qualifiers.UNIT_TEST_FILE).hasSourceCode().build()) 044 045 .addRelations(Qualifiers.PROJECT, Qualifiers.MODULE) 046 .addRelations(Qualifiers.MODULE, Qualifiers.DIRECTORY, Qualifiers.PACKAGE) 047 .addRelations(Qualifiers.DIRECTORY, Qualifiers.FILE, Qualifiers.UNIT_TEST_FILE) 048 .addRelations(Qualifiers.PACKAGE, Qualifiers.CLASS, Qualifiers.UNIT_TEST_FILE) 049 050 .build(); 051 052 } 053 054 }