package org.kevoree.api.helper; import org.kevoree.ContainerRoot; import org.kevoree.DeployUnit; import org.kevoree.Package; import org.kevoree.factory.DefaultKevoreeFactory; import org.kevoree.factory.KevoreeFactory; import org.kevoree.log.Log; import org.kevoree.pmodeling.api.KMFContainer; /** * Created by duke on 8/26/14. */ public class KModelHelper { public static ContainerRoot root(KMFContainer elem) { KMFContainer container = elem.eContainer(); while (container != null) { if (container.eContainer() != null) { container = container.eContainer(); } else { return (ContainerRoot) container; } } return null; } public static String fqnGroup(DeployUnit du) { StringBuilder buffer = new StringBuilder(); org.kevoree.Package pack = (org.kevoree.Package) du.eContainer(); while (pack != null) { buffer.insert(0, "."); buffer.insert(0, pack.getName()); if (pack.eContainer() != null && pack.eContainer() instanceof Package) { pack = (org.kevoree.Package) pack.eContainer(); } else { pack = null; } } return buffer.substring(0, buffer.length()-1); } public static Package fqnCreate(String groupName, ContainerRoot model, KevoreeFactory factory) { String[] packages = groupName.split("\\."); org.kevoree.Package pack = null; for (int i = 0; i < packages.length; i++) { if (!packages[i].equals("")) { if (pack == null) { pack = model.findPackagesByID(packages[i]); if (pack == null) { pack = (org.kevoree.Package) factory.createPackage().withName(packages[i]); model.addPackages(pack); } } else { org.kevoree.Package packNew = pack.findPackagesByID(packages[i]); if (packNew == null) { packNew = (org.kevoree.Package) factory.createPackage().withName(packages[i]); pack.addPackages(packNew); } pack = packNew; } } } if (pack == null) { Log.error("Alert Package not created for name {}", groupName); } return pack; } public static void main(String[] args) { KevoreeFactory factory = new DefaultKevoreeFactory(); ContainerRoot root = factory.createContainerRoot(); System.out.println(fqnCreate("commons-logging", root, factory).path()); } }