从 Enterprise Architect 数据模型的包集合中删除包的结果是什么?

What is the consequence of deleting a package from the package collection in the Enterprise Architect data model?

我想使用 Enterprise Architect Java API.

从 Enterprise Architect 数据模型中删除一些包

当我删除包集合中的包时,Enterprise Architect 的行为是什么?

我会产生孤儿吗,因为我不会明确删除底层包(和其他元素)?

我删除特定包的代码:

    org.sparx.Package delPackage = repo.GetPackageByGuid(delPackageGUID);
    org.sparx.Package supraPackage = repo.GetPackageByID(delPackage.GetParentID());

    org.sparx.Collection<org.sparx.Package> packages = supraPackage.GetPackages();
    Iterator<org.sparx.Package> packageIter = packages.iterator();
    org.sparx.Package tempPackage;

    short index = 0;
    short foundIndex = -1;

    packageLoop:
    while (packageIter.hasNext())
    {
        tempPackage = packageIter.next();

        if (tempPackage.GetPackageGUID().equals(delPackageGUID) == true)
        {
            foundIndex = index;
            break packageLoop;
        }

        index++;
    }

    if (foundIndex < 0)
    {
        throw new Exception("some error message");
    }

    if (packages.GetAt(foundIndex).GetPackageGUID().equals(delPackageGUID) == false)
    {
        throw new Exception("some error message");
    }
    else
    {
        delPackage.ApplyUserLock();
        delPackage.GetLastError();

        packages.DeleteAt(foundIndex, false);
        packages.GetLastError();

        //Update
        packages.Refresh();
    }

这样应该会把包里的东西全部删掉,但如果你不确定为什么不试试呢?

您可以查询 t_package 和 t_object 来验证元素和包的预期数量,您可以 运行 项目完整性检查来验证孤立对象。

简单来说:包裹和里面的所有物品都会被移除。其实和手动删除一样。

EA 帮助当然不会告诉您任何信息。但是,我已经检查了上述行为。

如果要保留子包,需要将它们移动到删除包的另一个(父)包中。