use of org.eclipse.titan.designer.AST.Module in project titan.EclipsePlug-ins by eclipse.
the class UnusedImportsProject method process.
@Override
protected void process(final IProject project, final Problems problems) {
TITANDebugConsole.println("Unused import");
final ProjectSourceParser projectSourceParser = GlobalParser.getProjectSourceParser(project);
final Set<String> knownModuleNames = projectSourceParser.getKnownModuleNames();
final List<Module> modules = new ArrayList<Module>();
for (final String moduleName : new TreeSet<String>(knownModuleNames)) {
Module module = projectSourceParser.getModuleByName(moduleName);
modules.add(module);
}
final Set<Module> setOfImportedModules = new HashSet<Module>();
for (Module module : modules) {
setOfImportedModules.clear();
setOfImportedModules.addAll(module.getImportedModules());
ImportsCheck check = new ImportsCheck();
module.accept(check);
setOfImportedModules.removeAll(check.getModules());
if (module instanceof TTCN3Module) {
for (ImportModule mod : ((TTCN3Module) module).getImports()) {
for (Module m : setOfImportedModules) {
if (m.getIdentifier().equals(mod.getIdentifier())) {
problems.report(mod.getIdentifier().getLocation(), "Possibly unused importation");
}
}
}
} else {
ModuleImportsCheck importsCheck = new ModuleImportsCheck();
module.accept(importsCheck);
for (ModuleImportation im : importsCheck.getImports()) {
for (Module m : setOfImportedModules) {
if (m.getIdentifier().equals(im.getIdentifier())) {
problems.report(im.getIdentifier().getLocation(), "Possibly unused importation");
}
}
}
}
}
}
use of org.eclipse.titan.designer.AST.Module in project titan.EclipsePlug-ins by eclipse.
the class LanguageMixing method process.
@Override
protected void process(IProject project, Problems problems) {
TITANDebugConsole.println("Language mixing called");
final ProjectSourceParser projectSourceParser = GlobalParser.getProjectSourceParser(project);
final Set<String> knownModuleNames = projectSourceParser.getKnownModuleNames();
final List<TTCN3Module> modules = new ArrayList<TTCN3Module>();
for (final String moduleName : new TreeSet<String>(knownModuleNames)) {
Module module = projectSourceParser.getModuleByName(moduleName);
if (module instanceof TTCN3Module) {
modules.add((TTCN3Module) module);
}
}
Collections.sort(modules, new Comparator<TTCN3Module>() {
@Override
public int compare(final TTCN3Module o1, final TTCN3Module o2) {
return o1.getName().compareTo(o2.getName());
}
});
String lastLanguage = null;
TTCN3Module lastModule = null;
for (TTCN3Module module : modules) {
ArrayList<String> languageSpecifications = module.getLanguageSpecifictions();
if (languageSpecifications != null && languageSpecifications.size() > 0) {
String tempLanguage = languageSpecifications.get(0);
if (tempLanguage != null) {
if (lastLanguage == null) {
lastLanguage = tempLanguage;
lastModule = module;
} else if (!tempLanguage.equals(lastLanguage)) {
problems.report(module.getIdentifier().getLocation(), MessageFormat.format(ERR_MSG, project.getName(), module.getName(), tempLanguage, lastModule.getName(), lastLanguage));
}
}
}
}
}
use of org.eclipse.titan.designer.AST.Module in project titan.EclipsePlug-ins by eclipse.
the class EffCouplingDetector method visit.
@Override
public int visit(final IVisitableNode node) {
if (node instanceof Reference) {
final Reference reference = (Reference) node;
final Assignment assignment = reference.getRefdAssignment(CompilationTimeStamp.getBaseTimestamp(), false);
if (assignment != null) {
final Module referencedModule = assignment.getMyScope().getModuleScope();
if (!ownModule.equals(referencedModule)) {
efferentCoupling.get(ownModule).add(assignment);
}
}
}
return V_CONTINUE;
}
use of org.eclipse.titan.designer.AST.Module in project titan.EclipsePlug-ins by eclipse.
the class MissingFriend method process.
@Override
public void process(final IVisitableNode node, final Problems problems) {
if (node instanceof FriendModule) {
final FriendModule s = (FriendModule) node;
final Identifier identifier = s.getIdentifier();
final ProjectSourceParser parser = GlobalParser.getProjectSourceParser(s.getProject());
if (parser != null && identifier != null) {
final Module referredModule = parser.getModuleByName(identifier.getName());
if (referredModule == null) {
final String msg = MessageFormat.format(MISSING_MODULE, identifier.getDisplayName());
problems.report(identifier.getLocation(), msg);
}
}
}
}
use of org.eclipse.titan.designer.AST.Module in project titan.EclipsePlug-ins by eclipse.
the class AMInEnvy method measure.
@Override
public Number measure(final MetricData data, final Def_Altstep altstep) {
final Counter count = new Counter(0);
final Module myModule = altstep.getMyScope().getModuleScope();
altstep.accept(new InternalFeatureEnvyDetector(myModule, count));
return count.val();
}
Aggregations