Files
codeCheck/src/main/java/com/codechecker/api/model/ParameterChange.java
2026-06-09 17:51:03 +08:00

113 lines
3.6 KiB
Java

package com.codechecker.api.model;
/**
* API 参数或 RequestBody 嵌套字段变更。
*/
public class ParameterChange {
public enum ChangeType {
ADDED, REMOVED, MODIFIED, RENAMED
}
private final ChangeType changeType;
private final String paramName;
private final String oldName;
private final String paramType;
private final String description;
private final String oldDescription;
private final String source;
private final String bodyParamName;
private final String parentDto;
private final String fieldPath;
private final String detail;
private ParameterChange(ChangeType changeType, String paramName, String oldName,
String paramType, String description, String oldDescription,
String source, String bodyParamName, String parentDto,
String fieldPath, String detail) {
this.changeType = changeType;
this.paramName = paramName;
this.oldName = oldName;
this.paramType = paramType;
this.description = description;
this.oldDescription = oldDescription;
this.source = source;
this.bodyParamName = bodyParamName;
this.parentDto = parentDto;
this.fieldPath = fieldPath;
this.detail = detail;
}
public static ParameterChange added(String name, String type, String desc, String source,
String bodyParam, String dto, String fieldPath) {
return new ParameterChange(ChangeType.ADDED, name, null, type, desc, null,
source, bodyParam, dto, fieldPath, null);
}
public static ParameterChange removed(String name, String type, String desc, String source,
String bodyParam, String dto, String fieldPath) {
return new ParameterChange(ChangeType.REMOVED, name, null, type, desc, null,
source, bodyParam, dto, fieldPath, null);
}
public static ParameterChange modified(String name, String type, String desc,
String detail, String source, String bodyParam,
String dto, String fieldPath) {
return new ParameterChange(ChangeType.MODIFIED, name, null, type, desc, null,
source, bodyParam, dto, fieldPath, detail);
}
public static ParameterChange renamed(String oldName, String newName, String type, String desc,
String source, String bodyParam, String dto, String fieldPath) {
return new ParameterChange(ChangeType.RENAMED, newName, oldName, type, desc, null,
source, bodyParam, dto, fieldPath, null);
}
public ChangeType getChangeType() {
return changeType;
}
public String getParamName() {
return paramName;
}
public String getOldName() {
return oldName;
}
public String getParamType() {
return paramType;
}
public String getDescription() {
return description;
}
public String getSource() {
return source;
}
public String getBodyParamName() {
return bodyParamName;
}
public String getParentDto() {
return parentDto;
}
public String getFieldPath() {
return fieldPath;
}
public String getDetail() {
return detail;
}
public boolean isBodyField() {
return "body".equals(source);
}
public String displayName() {
return fieldPath == null || fieldPath.isBlank() ? paramName : fieldPath;
}
}