[Issue 6501] Create dependencies between classes on import
[email protected] Mon, 22 Dec 2014 15:26:01 -0800 (PST)
| Newsgroups | gmane.comp.lang.uml.argouml.issues |
|---|---|
| Message-ID | <[email protected]> |
http://argouml.tigris.org/issues/show_bug.cgi?id=6501 ------- Additional comments from [email protected] Mon Dec 22 15:26:01 -0800 2014 ------- Bob, I've just committed the complete method, hopefully not causing a conflict for you: void addClassifierDependency(String name) { String classifierName = stripVarargAndGenerics(name); Object clientObj = parseState.getClassifier(); if (clientObj == null) { return; } Object supplierObj = null; // first try: lookup classifierName in same namespace Object ns = Model.getFacade().getNamespace(clientObj); if (ns != null) { supplierObj = Model.getFacade().lookupIn(ns, classifierName); } // second try: resolve fully qualified classifier (xxx.yyy.Zzz) String packageName = getPackageName(name); if (supplierObj == null && packageName != null && packageName.length() > 0) { classifierName = this.getClassifierName(name); Object mPackage = getPackage(packageName, true); supplierObj = Model.getFacade().lookupIn(mPackage, classifierName); } // third try: lookup in imports Object srcFile = parseStateStack.lastElement().getArtifact(); if (supplierObj == null && srcFile != null) { Collection dependencies = Model.getFacade().getClientDependencies(srcFile); for (Object dep : dependencies) { for (Object suppl : Model.getFacade().getSuppliers(dep)) { if (Model.getFacade().isAPackage(suppl)) { supplierObj = Model.getFacade().lookupIn(suppl, classifierName); } else if (classifierName.equals(Model.getFacade().getName(suppl))) { supplierObj = suppl; } } if (supplierObj != null) { break; } } } // finally build the dependency if (supplierObj != null) { buildDependency(supplierObj, clientObj, null); } } Does this work well for your? I now have a nice dependency for package demo; import java.applet.*; public class Test { private void test() { Applet a; } } ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=448&dsMessageId=3093266 To unsubscribe from this list, e-mail: [[email protected]]. Please do not reply to this mail. Instead, add your comments in the issue.