package husacct.analyse.task.analyse.java.analysing; import husacct.analyse.task.analyse.java.parsing.JavaParser.PackageDeclarationContext; class PackageAnalyser extends JavaGenerator { private String uniqueName = ""; private String name = ""; private String belongsToPackage = ""; public PackageAnalyser(PackageDeclarationContext packageDeclaration) { if (packageDeclaration != null && packageDeclaration.qualifiedName() != null) { String uniquePackageName = packageDeclaration.qualifiedName().getText(); if ((uniquePackageName != null) && !uniquePackageName.isEmpty()) { uniqueName = uniquePackageName; belongsToPackage = getParentPackageName(); name = getNameOfPackage(); } else { uniqueName = "No_Package"; belongsToPackage = ""; name = "No_Package_HUSACCT_Defined"; } } else { uniqueName = "No_Package"; belongsToPackage = ""; name = "No_Package_HUSACCT_Defined"; } createPackage(name, uniqueName, belongsToPackage); } public String getPackageUniqueName() { return uniqueName; } private String getParentPackageName() { String[] allPackages = splitPackages(uniqueName); String parentPackage = ""; for (int i = 0; i < allPackages.length - 1; i++) { if (parentPackage.equals("")) { parentPackage += allPackages[i]; } else { parentPackage += "." + allPackages[i]; } } return parentPackage; } private String getNameOfPackage() { String[] allPackages = splitPackages(uniqueName); return allPackages[allPackages.length - 1]; } private String[] splitPackages(String completePackageName) { String escapedPoint = "\\."; return completePackageName.split(escapedPoint); } private void createPackage(String name, String uniqueName, String belongsToPackage) { modelService.createPackage(uniqueName, belongsToPackage, name); } }