mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-13 00:15:24 +00:00
doc[zfoo]: 更新文档
This commit is contained in:
1 parent
2591705158
commit
9aa1898c74
3 files changed
+49
-4
No files matched your search
@@ -142,6 +142,18 @@
|
||||
<version>${zfoo.storage.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.zfoo</groupId>
|
||||
<artifactId>hotswap</artifactId>
|
||||
<version>${zfoo.hotswap.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.zfoo</groupId>
|
||||
<artifactId>monitor</artifactId>
|
||||
<version>${zfoo.monitor.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- slf4j-api -->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
|
||||
@@ -15,6 +15,7 @@ package com.zfoo.protocol.util;
|
||||
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
import com.zfoo.protocol.collection.CollectionUtils;
|
||||
import com.zfoo.protocol.exception.RunException;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
@@ -24,10 +25,7 @@ import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* DOM(Document Object Model)文档对象模型
|
||||
@@ -71,6 +69,35 @@ public abstract class DomUtils {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取包含有指定属性的Element
|
||||
*/
|
||||
public static List<Element> getElementsByAttribute(Element element, String attribute, String attributeValue) {
|
||||
var elements = new ArrayList<Element>();
|
||||
|
||||
var queue = new LinkedList<Element>();
|
||||
queue.add(element);
|
||||
while (!queue.isEmpty()) {
|
||||
var ele = queue.poll();
|
||||
|
||||
var eleClassName = ele.getAttribute(attribute);
|
||||
if (StringUtils.isNotEmpty(eleClassName) && eleClassName.equalsIgnoreCase(attributeValue)) {
|
||||
elements.add(ele);
|
||||
continue;
|
||||
}
|
||||
|
||||
var eles = DomUtils.getChildElements(ele);
|
||||
if (CollectionUtils.isNotEmpty(eles)) {
|
||||
for (var e : eles) {
|
||||
queue.offer(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return elements;
|
||||
}
|
||||
|
||||
/**
|
||||
* 只返回第一层的孩子节点,不返回第一层孩子节点的孩子节点
|
||||
* <p>
|
||||
|
||||
@@ -357,6 +357,12 @@ public abstract class TimeUtils {
|
||||
return LocalDateTime.ofInstant(instant, zone);
|
||||
}
|
||||
|
||||
// --------------------------------------时间大小判断--------------------------------------
|
||||
public static boolean timeBetween(long time, long from, long end) {
|
||||
return from <= time && time <= end;
|
||||
}
|
||||
|
||||
|
||||
// --------------------------------------cron表达式--------------------------------------
|
||||
public static long nextTimestampByCronExpression(CronExpression expression, long currentTimestamp) {
|
||||
var zonedDateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(currentTimestamp), DEFAULT_ZONE_ID);
|
||||
|
||||
Reference in new issue
Block a user