📄 classdefinitionbuilder.java
字号:
* 僋儔僗
* Class
* @return 僀儞僞乕僼僃乕僗柤
* Interface Name
*/
private String getImplementation(IClass iClass) {
StringBuffer buffer = new StringBuffer();
IRealization[] realizations = iClass.getClientRealizations();
for (int i = 0; i < realizations.length; i++) {
IClass realization = realizations[i].getSupplier();
buffer.append(getFullName(realization));
if (i != realizations.length - 1) {
buffer.append(", ");
}
}
return buffer.toString();
}
/**
* 宲彸偡傞僋儔僗柤傪庢摼偡傞丅
* Get generalization class names.
* @param iClass
* 僋儔僗
* Class
* @return 僋儔僗柤
* Class name
*/
private String getSuperClass(IClass iClass) {
StringBuffer buffer = new StringBuffer();
IGeneralization[] generalizations = iClass.getGeneralizations();
for (int i = 0; i < generalizations.length; i++) {
IClass superClass = generalizations[i].getSuperType();
buffer.append(getFullName(superClass));
if (i != generalizations.length - 1) {
buffer.append(", ");
}
}
return buffer.toString();
}
/**
* 僋儔僗偺柤慜傪僼儖僷僗偱庢摼偡傞丅
* Get Class name as Full Path.
* @param iClass
* 僋儔僗
* Class
* @return 僋儔僗柤乮僼儖僷僗乯
* Class Name (Full Path)
*/
private String getFullName(IClass iClass) {
StringBuffer sb = new StringBuffer();
IElement owner = iClass.getOwner();
while (owner != null && owner instanceof INamedElement && owner.getOwner() != null) {
sb.insert(0, ((INamedElement) owner).getName() + "::");
owner = owner.getOwner();
}
sb.append(iClass.getName());
return sb.toString();
}
/**
* 慡懏惈偺忣曬傪庢摼偡傞丅
* Get all Attribute information.
* @param iClass
* 僋儔僗
* Class
* @return 慡懏惈偺忣曬乮List偵奿擺偝傟偨String偺List乯
* All information of all attributes (String List stored in the list)
*/
private List getAttributeLines(IClass iClass) {
List lines = new ArrayList();
IAttribute[] iAttributes = iClass.getAttributes();
for (int i = 0; i < iAttributes.length; i++) {
IAttribute iAttribute = iAttributes[i];
lines.add(getAttributeLine(iAttribute));
}
return lines;
}
/**
* 懏惈偺忣曬傪庢摼偡傞丅
* Get Attribute information.
* @param iAttribute
* 懏惈
* Attribute
* @return 懏惈偺忣曬乮String偺List乯
* Attribute information (String List)
*/
private List getAttributeLine(IAttribute iAttribute) {
List line = new ArrayList();
line.add(EMPTY_COLUMN);
line.add(getAttributeSignature(iAttribute));
line.add(iAttribute.getDefinition());
line.add(EMPTY_COLUMN);
line.add(EMPTY_COLUMN);
return line;
}
/**
* 懏惈偺僔僌僱僠儍傪庢摼偡傞丅
* Get attribute signature.
* @param iAttribute
* 懏惈
* Attribute
* @return 懏惈偺僔僌僱僠儍
* Attribute signature
*/
private String getAttributeSignature(IAttribute iAttribute) {
String visibility = getVisibility(iAttribute);
String name = iAttribute.getName();
String type = iAttribute.getTypeExpression();
String initValue = iAttribute.getInitialValue();
if (initValue.length() > 0) {
initValue = " = " + initValue;
}
IConstraint[] constraints = iAttribute.getConstraints();
String constraint = "";
for (int j = 0; j < constraints.length; j++) {
constraint = constraint + "{" + constraints[j].getName() + "}";
}
return visibility + " " + name + " : " + type + initValue + constraint;
}
/**
* 慡憖嶌偺忣曬傪庢摼偡傞丅
* Get all operation information.
* @param iClass
* 僋儔僗
* Class
* @return 慡憖嶌偺忣曬乮List偵奿擺偝傟偨String偺List乯
* All operation information (String list stored in the list)
*/
private List getOperationLines(IClass iClass) {
List lines = new ArrayList();
IOperation[] iOperations = iClass.getOperations();
for (int i = 0; i < iOperations.length; i++) {
IOperation iOperation = iOperations[i];
lines.add(getOperationLine(iOperation));
}
return lines;
}
/**
* 憖嶌偺忣曬傪庢摼偡傞丅
* Get operation information.
* @param iOperation
* 憖嶌
* Operation
* @return 憖嶌偺忣曬乮String偺List乯
* Operation information (String List)
*/
private List getOperationLine(IOperation iOperation) {
List line = new ArrayList();
line.add(EMPTY_COLUMN);
line.add(getOperationSignature(iOperation));
line.add(iOperation.getDefinition());
line.add(EMPTY_COLUMN);
line.add(EMPTY_COLUMN);
return line;
}
/**
* 憖嶌偺僔僌僱僠儍傪庢摼偡傞丅
* Get operation signature.
* @param iOperation
* 憖嶌
* Operation
* @return 憖嶌偺僔僌僱僠儍
* Operation signature
*/
private String getOperationSignature(IOperation iOperation) {
String param = "";
IParameter[] parameters = iOperation.getParameters();
for (int i = 0; i < parameters.length; i++) {
String paramName = parameters[i].getName();
String paramType = parameters[i].getTypeExpression();
param = param + paramName + " : " + paramType;
if (i != parameters.length - 1) {
param += ", ";
}
}
param = "(" + param + ")";
IConstraint[] constraints = iOperation.getConstraints();
String constraint = "";
for (int i = 0; i < constraints.length; i++) {
constraint = constraint + "{" + constraints[i].getName() + "}";
}
String visibility = getVisibility(iOperation);
String name = iOperation.getName();
String returnType = iOperation.getReturnTypeExpression();
if (returnType.length() > 0) {
return visibility + " " + name + param + " : " + returnType;
} else {
return visibility + " " + name + param;
}
}
/**
* 壜帇惈傪暥帤楍偱庢摼偡傞丅
* Get visibility as string.
* @param iNamedElement
* 柤慜晅偒梫慺
* Named elements
* @return 壜帇惈
* Visibility
*/
private String getVisibility(INamedElement iNamedElement) {
if (iNamedElement.isPackageVisibility()) {
return "package";
} else if (iNamedElement.isProtectedVisibility()) {
return "protected";
} else if (iNamedElement.isPrivateVisibility()) {
return "private";
} else if (iNamedElement.isPublicVisibility()) {
return "public";
}
return "";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -