1

此查询与使用 java 的 Rational Clear Case Cm api 编程有关。我们有一个要求,我们想要获取特定流的修改文件列表。我能够从给定的 Stream 中获取 CcActivity 类型的活动列表,并使用该活动列表信息我还能够获取版本信息。我无法获得变更集信息,即被修改的文件的名称,因为没有定义这样的方法。

您能否帮助我了解我应该使用哪个属性或方法来获取使用活动 ID 或版本信息的修改文件列表或变更集信息。以下是我为获取活动列表信息和版本信息而编写的代码:-

PropertyRequest propertyrequest = new PropertyRequest(
                    CcStream.ACTIVITY_LIST,CcStream.TASK_LIST
                    );
            stream=(CcStream) stream.doReadProperties(propertyrequest);

            List<CcActivity> listOfAct = stream.getActivityList();
            for(int i=0;i<listOfAct.size();i++){

                CcActivity ccActivity = listOfAct.get(i);

                PropertyRequest activityPropertyRequest = new PropertyRequest(
                        CcActivity.COMMENT,CcActivity.ID,CcActivity.DISPLAY_NAME,CcActivity.LATEST_VERSION_LIST,CcActivity.CREATOR_DISPLAY_NAME,CcActivity.NAME_RESOLVER_VIEW
                        ,CcActivity.TASK_LIST,CcActivity.CREATOR_LOGIN_NAME,CcActivity.HEADLINE,CcActivity.COMMENT); 

                ccActivity = (CcActivity)ccActivity.doReadProperties(activityPropertyRequest);

trace(ccActivity.getDisplayName());
                trace(ccActivity.getCreatorDisplayName());
                trace("CREATOR_LOGIN_NAME :" +ccActivity.getCreatorLoginName());
                trace("Headline:" +ccActivity.getHeadline());


ResourceList<javax.wvcm.Version> versionList = ccActivity.getLatestVersionList();

                for(int j=0;j<versionList.size();j++){
                    Version version = versionList.get(j);
                    PropertyRequest versionPropertyRequest = new PropertyRequest(
                            Version.PREDECESSOR_LIST,Version.VERSION_NAME,Version.VERSION_HISTORY.nest(VersionHistory.CHILD_MAP),Version.DISPLAY_NAME,Version.COMMENT
                            ,Version.PATHNAME_LOCATION,Version.ACTIVITY.nest(Resource.CONTENT_TYPE)); 

                    version = (Version)version.doReadProperties(versionPropertyRequest);
                    trace("Version Info");

                    trace("Version Name : " + version.getVersionName());
                    trace("Version Comment :" +version.getComment());
4

1 回答 1

1

旧线程,但我最近一直在尝试学习如何通过 API 列出修改后的文件。我认为问题在于 ResourceList get 方法返回的版本对象应该转换为 CcVersion 类型。

这公开了 StpResource.doReadProperties(Resource context, Feedback feedback) 方法,该方法需要我们感兴趣的视图的句柄。我们还可以请求我们感兴趣的 CcVersion 特定属性。

然后该示例将变为:

ResourceList<javax.wvcm.Version> versionList = ccActivity.getLatestVersionList();

            for(int j=0;j<versionList.size();j++){
                Version version = versionList.get(j);
                PropertyRequest versionPropertyRequest = new PropertyRequest(CcVersion.DISPLAY_NAME, CcVersion.VIEW_RELATIVE_PATH, CcVersion.CREATION_DATE); 

                version = (CcVersion) version.doReadProperties(view, versionPropertyRequest);
                trace("Version Info");

                trace("Version DISPLAY_NAME : " + version.getDisplayName());
                trace("Version VIEW_RELATIVE_PATH : " + version.getViewRelativePath());
                trace("Version CREATION_DATE : " + version.getCreationDate());
            }
于 2019-01-16T16:32:40.370 回答