if ("同级".equals(vo.getLevel())) { element.setParentId(Long.valueOf(parentId)); // New sibling elements have the same level as their parent plus 1 for (StandardElementClassTreeVO parent : elementList) { if (parent.getId().equals(parentId)) { element.setLevel((byte) (parent.getLevel() + 1)); break; } } } else if ("下级".equals(vo.getLevel())) { element.setParentId(Long.valueOf(code)); // 新的子元素具有与其父元素加1相同的级别 for (StandardElementClassTreeVO parent : elementList) { if (parent.getId().equals(code)) { element.setLevel((byte) (parent.getLevel() + 1)); break;
时间: 2024-02-14 21:18:38 浏览: 104
这也是一段 Java 代码,它和上一段代码非常相似,也是在一个树形结构中添加一个新的元素。不同之处在于,这段代码在添加元素时,需要判断该元素是作为同级元素还是下级元素添加进去的。
具体来说,这段代码首先判断要添加的元素的级别是否为 "同级",如果是则将其父元素的 ID 设为 parentId,然后通过遍历 elementList 找到父元素对应的 StandardElementClassTreeVO 对象,从而获取父元素的级别,最后将新的同级元素的级别设置为父元素级别加一。
如果要添加的元素的级别是 "下级",则将其父元素的 ID 设为 code,然后同样通过遍历 elementList 找到父元素对应的 StandardElementClassTreeVO 对象,从而获取父元素的级别,最后将新的子元素的级别设置为父元素级别加一。
需要注意的是,这段代码中的 Long.valueOf() 是 Java 中用于将字符串转换为 Long 类型的方法,而 byte 是 Java 中的一种基本数据类型,用于表示范围在 -128 到 127 之间的整数。
相关问题
else if ("下级".equals(vo.getLevel())) { element.setParentId(Long.valueOf(code)); // 新的子元素具有与其父元素加1相同的级别 for (StandardElementClassTreeVO parent : elementList) { if (parent.getId().equals(code)) { element.setLevel((byte) (parent.getLevel() + 1)); break; } } }
这也是一段 Java 代码,它的作用是在一个树形结构中添加一个新的子元素。
具体来说,这段代码首先判断要添加的元素的级别是否为 "下级",如果是则将其父元素的 ID 设为 code,然后通过遍历 elementList 找到父元素对应的 StandardElementClassTreeVO 对象,从而获取父元素的级别,最后将新的子元素的级别设置为父元素级别加一。
需要注意的是,这段代码中的 Long.valueOf() 是 Java 中用于将字符串转换为 Long 类型的方法,而 byte 是 Java 中的一种基本数据类型,用于表示范围在 -128 到 127 之间的整数。
根据代码“@Data public class DesignDictDataOnlineVO { @ApiModelProperty(value = "元素分类编码") private String code; @ApiModelProperty(value = "元素分类名称") private String name; @ApiModelProperty(value = "元素分类定义") private String definition; @ApiModelProperty(value = "父级分类ID") private String parentId; @ApiModelProperty(value = "同级/下级元素分类") private String level; @ApiModelProperty(value = "是否抽象(Y:是;N:不是)") private String virtually; }”,补全下面代码,根据已有的元素分类列表新增同级或子级的一条元素:“@Autowired public List<StandardElementClassTreeVO> addOnlineElement(DesignDictDataOnlineVO vo) { }” 要求:1.填写元素分类编码(code), 填写元素分类名称(name), 2.根据parentId(新增同级取选择分类的parentId,新增子级取选择分类的ID作为parentId) 是否抽象(virtually)2.用判断语句对填写的code和name进行重名校验。校验code长度≤50、name长度≤50、definition≤200。 校验填写的code不能有中文。校验填写virtually只能用Y或者N。如果都满足条件则添新增的这一条元素。
```
@Autowired
public List<StandardElementClassTreeVO> addOnlineElement(DesignDictDataOnlineVO vo) {
String code = vo.getCode();
String name = vo.getName();
String definition = vo.getDefinition();
String parentId = vo.getParentId();
String level = vo.getLevel();
String virtually = vo.getVirtually();
// 校验code和name是否重名
List<DesignDictDataOnlineVO> elementList = getElementList();
for (DesignDictDataOnlineVO element : elementList) {
if (element.getCode().equals(code)) {
throw new RuntimeException("元素分类编码已存在!");
}
if (element.getName().equals(name)) {
throw new RuntimeException("元素分类名称已存在!");
}
}
// 校验code不能有中文
if (code.matches(".*[\\u4e00-\\u9fa5]+.*")) {
throw new RuntimeException("元素分类编码不能包含中文!");
}
// 校验code长度≤50、name长度≤50、definition≤200
if (code.length() > 50 || name.length() > 50 || definition.length() > 200) {
throw new RuntimeException("元素分类编码、名称、定义长度不能超过50和200!");
}
// 校验virtually只能为Y或N
if (!virtually.equals("Y") && !virtually.equals("N")) {
throw new RuntimeException("是否抽象只能填写Y或N!");
}
// 新增元素
DesignDictDataOnlineVO newElement = new DesignDictDataOnlineVO();
newElement.setCode(code);
newElement.setName(name);
newElement.setDefinition(definition);
newElement.setParentId(parentId);
newElement.setLevel(level);
newElement.setVirtually(virtually);
elementList.add(newElement);
saveElementList(elementList);
// 返回新增后的元素列表
return generateElementTree();
}
```
阅读全文