从 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 帮助当然不会告诉您任何信息。但是,我已经检查了上述行为。
如果要保留子包,需要将它们移动到删除包的另一个(父)包中。
我想使用 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 帮助当然不会告诉您任何信息。但是,我已经检查了上述行为。
如果要保留子包,需要将它们移动到删除包的另一个(父)包中。