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.api.resources;
021
022 /**
023 * @since 1.10
024 */
025 public final class ResourceUtils {
026
027 private ResourceUtils() {
028 }
029
030 /**
031 * @return whether the resource is a view
032 */
033 public static boolean isView(Resource resource) {
034 return isSet(resource) && Resource.QUALIFIER_VIEW.equals(resource.getQualifier());
035 }
036
037 /**
038 * @return whether the resource is a subview (in the view tree)
039 */
040 public static boolean isSubview(Resource resource) {
041 return isSet(resource) && Resource.QUALIFIER_SUBVIEW.equals(resource.getQualifier());
042 }
043
044 /**
045 * @return whether the resource is the root project
046 */
047 public static boolean isRootProject(Resource resource) {
048 return Resource.QUALIFIER_PROJECT.equals(resource.getQualifier());
049 }
050
051 /**
052 * @return whther a resource is a maven module of project
053 */
054 public static boolean isModuleProject(Resource resource) {
055 return Resource.QUALIFIER_MODULE.equals(resource.getQualifier());
056 }
057
058 /**
059 * @return whether a resource is a package
060 */
061 public static boolean isPackage(Resource resource) {
062 return resource != null && Resource.QUALIFIER_PACKAGE.equals(resource.getQualifier());
063 }
064
065
066 /**
067 * @return whether a resource is a set
068 */
069 public static boolean isSet(Resource resource) {
070 return resource != null && Resource.SCOPE_SET.equals(resource.getScope());
071 }
072
073 /**
074 * @return whether a resource is a space
075 */
076 public static boolean isSpace(Resource resource) {
077 return resource != null && Resource.SCOPE_SPACE.equals(resource.getScope());
078 }
079
080 /**
081 * @return whether a resource is an entity.
082 */
083 public static boolean isEntity(Resource resource) {
084 return resource != null && Resource.SCOPE_ENTITY.equals(resource.getScope());
085 }
086
087 /**
088 * This method equal isRootProject(resource) or isModuleProject(resource)
089 */
090 public static boolean isProject(Resource resource) {
091 return isSet(resource);
092 }
093
094 /**
095 * Alias for isDirectory(resource)
096 */
097 public static boolean isDirectory(Resource resource) {
098 return isSpace(resource);
099 }
100
101 /**
102 * Alias for isEntity(resource)
103 */
104 public static boolean isFile(Resource resource) {
105 return isEntity(resource);
106 }
107
108
109 /* QUALIFIERS */
110
111 /**
112 * @return whether a resource is a class
113 */
114 public static boolean isClass(Resource resource) {
115 return Resource.QUALIFIER_CLASS.equals(resource.getQualifier());
116 }
117
118
119 /**
120 * @return whether a resource is a unit test class
121 */
122 public static boolean isUnitTestClass(Resource resource) {
123 return Resource.QUALIFIER_UNIT_TEST_CLASS.equals(resource.getQualifier());
124 }
125
126
127 public static boolean isLibrary(Resource resource) {
128 return Resource.SCOPE_LIBRARY.equals(resource.getScope());
129 }
130 }