📄 apiforreadingmodelssample.java
字号:
import java.io.IOException;
import com.change_vision.jude.api.inf.exception.LicenseNotFoundException;
import com.change_vision.jude.api.inf.exception.NonCompatibleException;
import com.change_vision.jude.api.inf.exception.ProjectLockedException;
import com.change_vision.jude.api.inf.exception.ProjectNotFoundException;
import com.change_vision.jude.api.inf.model.IAttribute;
import com.change_vision.jude.api.inf.model.IClass;
import com.change_vision.jude.api.inf.model.IModel;
import com.change_vision.jude.api.inf.model.INamedElement;
import com.change_vision.jude.api.inf.model.IOperation;
import com.change_vision.jude.api.inf.model.IPackage;
import com.change_vision.jude.api.inf.project.ProjectAccessor;
import com.change_vision.jude.api.inf.project.ProjectAccessorFactory;
/**
* API偱JUDE儌僨儖偺僷僢働乕僕忣曬偍傛傃僋儔僗忣曬傪庢摼偡傞僒儞僾儖僐乕僪.
* 僷僢働乕僕柤傗僋儔僗柤側偳傪僐儞僜乕儖偵弌椡偡傞丅
*/
public class APIForReadingModelsSample {
public static void main(String[] args) {
try {
System.out.println("Opening project...");
ProjectAccessor prjAccessor = ProjectAccessorFactory.getProjectAccessor();
// 僾儘僕僃僋僩傪奐偔丅
// 堦斣栚偺true偱儌僨儖僶乕僕儑儞僠僃僢僋柍偟傪巜掕偡傞丅
// 擇斣栚偺false偱僾儘僕僃僋僩僼傽僀儖傪儘僢僋偝偣側偄丅
// 嶰斣栚偺true偱僾儘僕僃僋僩僼傽僀儖偑儘僢僋偝傟偰偄傞応崌丄撉崬傒愱梡儌乕僪偱僾儘僕僃僋僩傪奐偔丅
prjAccessor.open("./SampleModel.jude", true, false, true);
System.out.println("Printing the elements...");
// 婲揰偲側傞儌僨儖傪庢摼偡傞丅
IModel project = prjAccessor.getProject();
// 僾儘僕僃僋僩偵娷傑傟傞慡偰偺僷僢働乕僕偲僋儔僗傪庢摼偡傞丅
printPackageInfo(project);
// 僾儘僕僃僋僩傪暵偠傞
prjAccessor.close();
System.out.println("Finished");
} catch (LicenseNotFoundException e) {
e.printStackTrace();
} catch (ProjectNotFoundException e) {
e.printStackTrace();
} catch (ProjectLockedException e) {
e.printStackTrace();
} catch (NonCompatibleException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Throwable e) {
e.printStackTrace();
}
}
private static void printPackageInfo(IPackage iPackage) {
// 僷僢働乕僕柤傪昞帵
System.out.println("Package name: " + iPackage.getName());
// 僷僢働乕僕偺掕媊傪昞帵
System.out.println("Package definition: " + iPackage.getDefinition());
// 僷僢働乕僕偺梫慺乮僋儔僗傗僷僢働乕僕乯傪昞帵
INamedElement[] iNamedElements = iPackage.getOwnedElements();
for (int i = 0; i < iNamedElements.length; i++) {
if (iNamedElements[i] instanceof IPackage) {
IPackage iChildPackage = (IPackage) iNamedElements[i];
// 僷僢働乕僕傪昞帵
printPackageInfo(iChildPackage);
} else if (iNamedElements[i] instanceof IClass) {
IClass iClass = (IClass) iNamedElements[i];
// 僋儔僗傪昞帵
printClassInfo(iClass);
}
}
}
private static void printClassInfo(IClass iClass) {
// 僋儔僗柤傪昞帵
System.out.println("Class name: " + iClass.getName());
// 僋儔僗偺掕媊傪昞帵
System.out.println("Class definition: " + iClass.getDefinition());
// 慡偰偺懏惈傪昞帵
IAttribute[] iAttributes = iClass.getAttributes();
for (int i = 0; i < iAttributes.length; i++) {
printAttributeInfo(iAttributes[i]);
}
// 慡偰偺憖嶌傪昞帵
IOperation[] iOperations = iClass.getOperations();
for (int i = 0; i < iOperations.length; i++) {
printOperationInfo(iOperations[i]);
}
// 僀儞僫乕僋儔僗偺忣曬傪昞帵
IClass[] iClasses = iClass.getNestedClasses();
for (int i = 0; i < iClasses.length; i++) {
printClassInfo(iClasses[i]);
}
}
private static void printOperationInfo(IOperation iOperation) {
// 憖嶌柤傪昞帵
System.out.println("Operation name: " + iOperation.getName());
// 憖嶌偺曉傝抣偺僞僀僾傪昞帵
System.out.println("Operation returnType: " + iOperation.getReturnTypeExpression());
// 憖嶌偺掕媊傪昞帵
System.out.println("Operation definition: " + iOperation.getDefinition());
}
private static void printAttributeInfo(IAttribute iAttribute) {
// 懏惈柤傪昞帵
System.out.println("Attribute name: " + iAttribute.getName());
// 懏惈偺僞僀僾傪昞帵
System.out.println("Attribute type: " + iAttribute.getTypeExpression());
// 懏惈偺掕媊傪昞帵
System.out.println("Attribute definition: " + iAttribute.getDefinition());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -