blob: 1db607b7c1da6f104a0d7e7d42e52a1ae4c36172 [file] [log] [blame]
/*
* Copyright 2011 Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.siyeh.ig;
import com.intellij.codeInspection.InspectionsBundle;
import org.jetbrains.annotations.NonNls;
import java.util.HashMap;
import java.util.Map;
public class GroupDisplayNameUtil {
@NonNls
private static final Map<String, String> packageGroupDisplayNameMap = new HashMap<String, String>();
static {
packageGroupDisplayNameMap.put("abstraction", "group.names.abstraction.issues");
packageGroupDisplayNameMap.put("assignment", "group.names.assignment.issues");
packageGroupDisplayNameMap.put("bitwise", "group.names.bitwise.operation.issues");
packageGroupDisplayNameMap.put("bugs", "group.names.probable.bugs");
packageGroupDisplayNameMap.put("classlayout", "group.names.class.structure");
packageGroupDisplayNameMap.put("classmetrics", "group.names.class.metrics");
packageGroupDisplayNameMap.put("cloneable", "group.names.cloning.issues");
packageGroupDisplayNameMap.put("controlflow", "group.names.control.flow.issues");
packageGroupDisplayNameMap.put("dataflow", "group.names.data.flow.issues");
packageGroupDisplayNameMap.put("dependency", "group.names.dependency.issues");
packageGroupDisplayNameMap.put("encapsulation", "group.names.encapsulation.issues");
packageGroupDisplayNameMap.put("errorhandling", "group.names.error.handling");
packageGroupDisplayNameMap.put("finalization", "group.names.finalization.issues");
packageGroupDisplayNameMap.put("imports", "group.names.imports");
packageGroupDisplayNameMap.put("inheritance", "group.names.inheritance.issues");
packageGroupDisplayNameMap.put("initialization", "group.names.initialization.issues");
packageGroupDisplayNameMap.put("internationalization", "group.names.internationalization.issues");
packageGroupDisplayNameMap.put("j2me", "group.names.j2me.issues");
packageGroupDisplayNameMap.put("javabeans", "group.names.javabeans.issues");
packageGroupDisplayNameMap.put("javadoc", "group.names.javadoc.issues");
packageGroupDisplayNameMap.put("jdk", "group.names.java.language.level.issues");
packageGroupDisplayNameMap.put("migration",
"group.names.language.level.specific.issues.and.migration.aids");
packageGroupDisplayNameMap.put("junit", "group.names.junit.issues");
packageGroupDisplayNameMap.put("logging", "group.names.logging.issues");
packageGroupDisplayNameMap.put("maturity", "group.names.code.maturity.issues");
packageGroupDisplayNameMap.put("memory", "group.names.memory.issues");
packageGroupDisplayNameMap.put("methodmetrics", "group.names.method.metrics");
packageGroupDisplayNameMap.put("modularization", "group.names.modularization.issues");
packageGroupDisplayNameMap.put("naming", "group.names.naming.conventions");
packageGroupDisplayNameMap.put("numeric", "group.names.numeric.issues");
packageGroupDisplayNameMap.put("packaging", "group.names.packaging.issues");
packageGroupDisplayNameMap.put("performance", "group.names.performance.issues");
packageGroupDisplayNameMap.put("portability", "group.names.portability.issues");
packageGroupDisplayNameMap.put("redundancy", "group.names.declaration.redundancy");
packageGroupDisplayNameMap.put("resources", "group.names.resource.management.issues");
packageGroupDisplayNameMap.put("security", "group.names.security.issues");
packageGroupDisplayNameMap.put("serialization", "group.names.serialization.issues");
packageGroupDisplayNameMap.put("style", "group.names.code.style.issues");
packageGroupDisplayNameMap.put("threading", "group.names.threading.issues");
packageGroupDisplayNameMap.put("visibility", "group.names.visibility.issues");
}
private GroupDisplayNameUtil() {
}
public static String getGroupDisplayName(Class<?> aClass) {
final Package thisPackage = aClass.getPackage();
assert thisPackage != null : "need package to determine group display name";
final String name = thisPackage.getName();
assert name != null :
"inspection has default package, group display name cannot be determined";
final int index = name.lastIndexOf('.');
final String key = name.substring(index + 1);
final String groupDisplayName = packageGroupDisplayNameMap.get(key);
assert groupDisplayName != null : "No display name found for " + key;
return InspectionsBundle.message(groupDisplayName);
}
}