EGL提供一个用户界面,因此您可以使用IBM® Rational® Application Developer(以后称为,Application Developer)创建并修改EGL资源。尽管如此,如果您正在为客户提供向其他平台移植的工具 — 例如,VisualAge Generator (VAGen) 和 Informix 4GL 到 EGL – 您可能需要能够通过编程来创建EGL资源。一系列API(应用程序编程接口)便应运而生,来帮助您快速创建和更新EGL资源,例如项目、包、文件夹和文件。 EGL Resources API 使您能够通过编程的方式创建EGL资源。当您希望同时创建多样的EGL资源时这一点十分有用。
EGL资源扩充了Eclipse资源并且包含EGL特有的额外功能。例如,当您创建一个EGL项目时,一个Eclipse项目也被创建出来并带有EGL需要的附加信息。EGL Resources API创建必要的Eclipse资源并添加必要的信息。
在调用EGL Resources API的方法之前,使用 EGL Resources API 的应用程序必须已经在 Eclipse 中运行了 - Application Developer 和 EGL plugin 已经被激活。您可以在通过 headless 或者在线模式中调用EGL Resources API。样本代码阐明的是一个调用EGL Resources API的非常简单的 headless 应用程序。
EGL Web项目是带有额外属性的 Application Developer Web 项目。EGL Resources API利用 Application Developer Web项目的工具来创建下面的 Application Developer Web 项目。尽管如此,您不可能真正地在一个headless的环境里创建Application Developer Web 项目的特征。如果您尝试这样去做,您将得到下面的异常:
这一异常是由于缺少一些必要的特性而导致的以新的方式创建的EGL Web项目。除非这一问题被解决,否则无法在一个headless的环境里创建EGL Web项目。这是在headless模式下唯一无法进行的操作。
在EGL中有两类项目。第一个是常规的EGL项目,它是带有EGL特性的 Eclipse Java 项目。第二个是 EGL Web 项目,它是带有 EGL 特性的 Application Developer Web 项目。
-
createProject: 创建一个参数中列有名称的简单的 EGL 项目
public static void createProject(String name) throws CoreException, InterruptedException, InvocationTargetException
参数
name: 想要创建的项目的名称
-
createProject:创建一个参数中列有名称的简单的EGL项目,并且将依赖关系列表中的项目添加到依赖关系当中
public static void createProject(String name, List dependencies) throws CoreException, InterruptedException, InvocationTargetException
参数
name: 想要创建的项目的名称
dependencies:一组应该被添加到项目依赖关系列表中包含项目名称的字符串对象
-
createWebProject: 创建一个参数中列有名称的EGL web项目
public static void createWebProject(String name) throws CoreException, InterruptedException, InvocationTargetException
参数
name: 想要创建的项目的名称
注: 缺省情况下,EGL Web项目是一个具有 EGL、WDO 、JavaServer Pages™ (JSP™)标准标注库以及JavaServer Faces™ (JSF)特性的 Application Developer Web 项目。这个项目默认的Java™ 2 Platform, Enterprise Edition (J2EE™) servlet 版本为2.4版本,与动态的web项目相同。因此您需要一个与 servlet 2.4 版本兼容的应用服务器,例如 Websphere Application Server 6.0。对于下面的方法同样适用
-
createWebProject: 创建一个参数中列有名称的EGL web项目,并且将依赖关系列表中的项目添加到项目依赖关系当中
public static void createWebProject(String name, List dependencies) throws CoreException, InterruptedException, InvocationTargetException
参数
name: 想要创建的项目的名称
dependencies:一组应该被添加到项目依赖关系列表中包含项目名称的字符串对象
-
createEGLBuildFile:创建一个参数中列有名称的空的EGL构建文件
public static IFile createEGLBuildFile(String name, String projectName) throws CoreException, InterruptedException, InvocationTargetException
参数
name: EGL 构建文件的名称(不包括扩展名.eglbld)
projectName: 将包含这个 EGL 构建文件的项目的名称
返回
IFile: EGL 构建文件对象
注: 这个EGL构建文件将被创建在项目的EGL资源文件夹下。这个文件只包含带有根据用户首选设置的编码设置的标题。如果一个有着同样名字EGL构建文件已经存在于项目中,那么它的内容将被重新设置。 对于下面此类方法的变量同样适用。
-
createEGLBuildFile:创建一个参数中列有名称的空的EGL构建文件
public static IFile createEGLBuildFile(String name, String projectName, String packageName) throws CoreException, InterruptedException, InvocationTargetException
参数
name: EGL构建文件的名称(不包括扩展名.eglbld)
projectName: 将包含这个EGL构建文件的项目的名称
packageName: 将包含这个EGL构建文件的包的名称(如果是 null 或者空的字符串,将使用默认的包)
返回
IFile: EGL构建文件对象
-
createEGLBuildFile: 创建一个参数中列有名称的空的EGL构建文件
public static IFile createEGLBuildFile(String name, String projectName, String packageName, String sourceFolderName) throws CoreException, InterruptedException, InvocationTargetException
参数
name: EGL构建文件的名称(不包括扩展名.eglbld)
projectName: 将包含这个EGL构建文件的项目的名称
packageName: 将包含这个EGL构建文件的包的名称(如果是 null 或者空的字符串,将使用默认的包)
sourceFolderName: EGL资源文件夹的名称(如果是null,将使用 EGLSource )
返回
IFile: EGL构建文件对象
-
createEGLFile:创建一个参数中列有名称的空的EGL资源文件(在项目指定的EGL资源文件夹下)
public static IFile createEGLFile(String name, String projectName, String packageName) throws CoreException, InterruptedException, InvocationTargetException
参数
name: EGL文件的名称(不包括扩展名.egl)
projectName: 将包含这个EGL文件的项目的名称
packageName:将包含这个EGL文件的包的名称(如果是null或者空的字符串,将使用默认的包)
返回
IFile: EGL构建文件对象
-
createEGLFile:创建一个参数中列有名称的空的EGL资源文件 - 在项目指定的包中(在EGL资源文件夹下)
public static IFile createEGLFile(String name, String projectName, String packageName, String sourceFolderName) throws CoreException, InterruptedException, InvocationTargetException
参数
name: EGL文件的名称(不包括扩展名.egl)
projectName: 将包含这个EGL文件的项目的名称
packageName:将包含这个EGL文件的包的名称(如果是null或者空的字符串,将使用默认的包)
sourceFolderName: EGL资源文件夹的名称(如果是null,将使用 EGLSource )
返回
IFile: EGL构建文件对象
-
createPackage:创建一个参数中列有名称的EGL包(在项目指定的EGL资源文件夹下)
public static void createPackage(String name, String projectName) throws CoreException, InterruptedException, InvocationTargetException
参数
name: EGL包的名称
projectName:将包含这个EGL包的项目的名称
-
createPackage:创建一个参数中列有名称的EGL包(在项目指定的EGL资源文件夹下)
public static void createPackage(String name, String projectName, String sourceFolderName) throws CoreException, InterruptedException, InvocationTargetException
参数
name: EGL包的名称
projectName:将包含这个EGL包的项目的名称
sourceFolderName:EGL资源文件夹的名称(如果这null,将使用 EGLSource )
-
createSourceFolder:在项目中创建一个参数中列有名称的EGL资源文件夹(新的EGL资源文件夹将被添加到egl路径入口)
public static void createSourceFolder(String name, String projectName) throws CoreException, InterruptedException, InvocationTargetException
参数
name:EGL资源文件夹的名称
projectName:将包含这个EGL资源文件夹的项目的名称
-
getExistingProjectDependencies: 为一个现有的项目提取项目依赖关系并从一列项目路径入口创建一列PPListElement对象
public static ArrayList getExistingProjectDependencies(String projectName) throws CoreException
参数
projectName: 从中需要一个依赖关系列表的项目
返回
ArrayList:包含现有项目依赖关系的PPListElement对象的列表
-
getNewProjectDependencies:为一个现有项目计算新项目的依赖关系并从一列项目字符串中创建一列PPListElement对象
public static ArrayList getNewProjectDependencies(String projectName, List dependencies)
参数
projectName: 从中需要一个依赖关系列表的项目
dependencies:依赖关系中项目名称的列表
返回
ArrayList: 包含新项目依赖关系的PPListElement对象的列表
-
getProjectDependencies:从一列项目字符串中创建一列PPListElement对象并且将新的依赖关系与项目中已经存在的合并在一起
public static List getProjectDependencies(String projectName, List dependencies) throws CoreException
参数
projectName:从中需要一个依赖关系列表的项目
dependencies:包含项目名称的字符串对象的列表
返回
ArrayList:包含项目依赖关系的PPListElement对象的合成列表
-
removeEGLFile:从项目和文件系统中去除特定的EGL文件
public static void removeEGLFile(String name, String projectName, String packageName) throws CoreException, InterruptedException, InvocationTargetException
参数
name:EGL文件的名称(没有.egl扩展名)
projectName:包括这个EGL文件的项目的名称
packageName:EGL文件位于其中的包的名称(假定包在EGLSource文件夹之下)
-
removeSourceFolder:从项目和文件系统中去除特定的EGL资源文件夹(也去除了egl路径的入口)
public static void removeSourceFolder(String name, String projectName) throws CoreException, InterruptedException, InvocationTargetException
参数
name:EGL资源文件夹的名称
projectName:包含这个EGL资源文件夹的项目的名称
-
removePackage: 从EGLSource文件夹下的项目中去除特定的EGL包
public static void removePackage(String name, String projectName) throws CoreException, InterruptedException, InvocationTargetException
参数
name:EGL包的名称
projectName: EGLSource文件夹下包含这个EGL包的项目的名称
注:包下的所有文件将被去除。如果这个包下没有子包,那么这个包文件夹也将被去除。对于下面此类方法的变化同样适用.
-
removePackage: 从EGLSource文件夹下的项目中去除特定的EGL包
public static void removePackage(String name, String projectName, String sourceFolderName) throws CoreException, InterruptedException, InvocationTargetException
参数
name: EGL包的名称
projectName:包含EGL包的项目的名称
sourceFolderName: 包含EGL包的资源文件夹的名称
-
removeProject:从工作区域中去除特定的EGL项目,并从文件系统中去除它的内容
public static void removeProject(String name) throws CoreException, InterruptedException, InvocationTargetException {
参数
name:EGL项目的名称
EGL Resources API使得通过外部工具操作EGL资源变得简单。它帮助您根据需要灵活机动地使用工具操作EGL资源,提供自己的界面及利用应用程序编程接口的功能。
非常感谢那些抽出时间来阅读这篇文章并提供宝贵意见的人。特别感谢EGL Resources API的主要开发者Matt Clement,还有Jon Shavor,因为他们为这篇文章的改进提出了宝贵的建议。