use of org.structr.javaparser.entity.Module in project structr by structr.
the class JavaParserModule method handlePackageFolder.
private void handlePackageFolder(final Folder folder, final Folder parentFolder) {
// Folder contains a package-info.java so it must be a package
String[] parts = folder.getPath().split("src/main/java/");
if (parts.length > 1) {
final PropertyMap identifyingProperties = new PropertyMap();
final PropertyMap allProperties = new PropertyMap();
// Convert path to package path
String path = StringUtils.replaceAll(parts[1], "/", ".");
identifyingProperties.put(Package.name, path);
allProperties.putAll(identifyingProperties);
allProperties.put(Package.folder, folder);
// Check if we are contained in a module:
// Find the closest ancestor folder which has a module
Module mod = null;
Package pkg = null;
Folder possibleModuleParentFolder = parentFolder;
// Continue until root folder or a module was found
while (possibleModuleParentFolder != null && mod == null) {
try {
mod = app.nodeQuery(Module.class).and(Module.folder, possibleModuleParentFolder).getFirst();
pkg = app.nodeQuery(Package.class).and(Module.folder, possibleModuleParentFolder).getFirst();
} catch (FrameworkException ignore) {
}
if (pkg != null) {
// Parent folder contains a package
allProperties.put(Package.parent, pkg);
} else if (mod != null) {
// Parent folder contains a module
allProperties.put(Package.module, mod);
break;
}
// Continue while loop
possibleModuleParentFolder = possibleModuleParentFolder.getParent();
}
getOrCreate(Package.class, identifyingProperties, allProperties);
logger.info("Created or found package '" + path + "' in folder " + folder.getPath());
}
}
use of org.structr.javaparser.entity.Module in project structr by structr.
the class JavaParserModule method handlePomFile.
private void handlePomFile(final File file, final Folder folder, final Folder parentFolder) {
final XPath xpath = XPathFactory.newInstance().newXPath();
QName returnType = XPathConstants.STRING;
final String content = file.getFavoriteContent();
final String projectName;
try {
projectName = (String) xpath.evaluate("/project/name", parseXml(content), returnType);
final Module newMod = createModule(projectName, folder);
logger.info("Created module '" + projectName + "' in folder " + folder.getPath());
// Check if we are child of a parent module
// Find the closest ancestor folder which has a module
Module mod = null;
Folder possibleModuleParentFolder = parentFolder;
// Continue until root folder or a module was found
while (possibleModuleParentFolder != null && mod == null) {
try {
mod = app.nodeQuery(Module.class).and(Module.folder, possibleModuleParentFolder).getFirst();
} catch (FrameworkException ignore) {
}
if (mod != null) {
newMod.setProperty(Module.parent, mod);
break;
}
// Continue while loop
possibleModuleParentFolder = possibleModuleParentFolder.getParent();
}
} catch (ParserConfigurationException | SAXException | IOException | XPathExpressionException | FrameworkException ex) {
logger.warn("Exception exception occured", ex);
}
}
use of org.structr.javaparser.entity.Module in project structr by structr.
the class JavaParserModule method createModule.
private Module createModule(final String moduleName, final Folder moduleFolder) {
final PropertyMap identifyingProperties = new PropertyMap();
identifyingProperties.put(Module.name, moduleName);
final PropertyMap allProperties = new PropertyMap();
allProperties.putAll(identifyingProperties);
allProperties.put(Module.folder, moduleFolder);
return (Module) getOrCreate(Module.class, identifyingProperties, allProperties);
}
Aggregations