AnyValue增加forEach方法
This commit is contained in:
@@ -32,7 +32,6 @@ import org.redkale.util.AnyValue.DefaultAnyValue;
|
||||
import org.redkale.util.*;
|
||||
import org.redkale.watch.*;
|
||||
import org.w3c.dom.*;
|
||||
import sun.misc.Signal;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -624,35 +623,35 @@ public final class Application {
|
||||
}
|
||||
}
|
||||
|
||||
private void signalHandle() {
|
||||
//http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html
|
||||
String[] sigs = new String[]{"HUP", "TERM", "INT", "QUIT", "KILL", "TSTP", "USR1", "USR2", "STOP"};
|
||||
List<sun.misc.Signal> list = new ArrayList<>();
|
||||
for (String sig : sigs) {
|
||||
try {
|
||||
list.add(new sun.misc.Signal(sig));
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
sun.misc.SignalHandler handler = new sun.misc.SignalHandler() {
|
||||
|
||||
private volatile boolean runed;
|
||||
|
||||
@Override
|
||||
public void handle(Signal sig) {
|
||||
if (runed) return;
|
||||
runed = true;
|
||||
logger.info(Application.this.getClass().getSimpleName() + " stoped\r\n");
|
||||
System.exit(0);
|
||||
}
|
||||
};
|
||||
for (Signal sig : list) {
|
||||
try {
|
||||
Signal.handle(sig, handler);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
// private void signalHandle() {
|
||||
// //http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html
|
||||
// String[] sigs = new String[]{"HUP", "TERM", "INT", "QUIT", "KILL", "TSTP", "USR1", "USR2", "STOP"};
|
||||
// List<sun.misc.Signal> list = new ArrayList<>();
|
||||
// for (String sig : sigs) {
|
||||
// try {
|
||||
// list.add(new sun.misc.Signal(sig));
|
||||
// } catch (Exception e) {
|
||||
// }
|
||||
// }
|
||||
// sun.misc.SignalHandler handler = new sun.misc.SignalHandler() {
|
||||
//
|
||||
// private volatile boolean runed;
|
||||
//
|
||||
// @Override
|
||||
// public void handle(Signal sig) {
|
||||
// if (runed) return;
|
||||
// runed = true;
|
||||
// logger.info(Application.this.getClass().getSimpleName() + " stoped\r\n");
|
||||
// System.exit(0);
|
||||
// }
|
||||
// };
|
||||
// for (Signal sig : list) {
|
||||
// try {
|
||||
// Signal.handle(sig, handler);
|
||||
// } catch (Exception e) {
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private void runServers(CountDownLatch timecd, final List<AnyValue> serconfs) throws Exception {
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.net.*;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.channels.Channels;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.*;
|
||||
import org.redkale.convert.json.JsonConvert;
|
||||
import org.redkale.net.*;
|
||||
import org.redkale.util.*;
|
||||
@@ -897,6 +898,20 @@ public class HttpRequest extends Request<HttpContext> {
|
||||
return header;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将请求Header转换成Map
|
||||
*
|
||||
* @param map Map
|
||||
*
|
||||
* @return Map
|
||||
*/
|
||||
public Map<String, String> getHeadersToMap(Map<String, String> map) {
|
||||
if (map == null) map = new LinkedHashMap<>();
|
||||
final Map<String, String> map0 = map;
|
||||
header.forEach((k, v) -> map0.put(k, v));
|
||||
return map0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有的header名
|
||||
*
|
||||
@@ -1105,6 +1120,20 @@ public class HttpRequest extends Request<HttpContext> {
|
||||
return params;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将请求参数转换成Map
|
||||
*
|
||||
* @param map Map
|
||||
*
|
||||
* @return Map
|
||||
*/
|
||||
public Map<String, String> getParametersToMap(Map<String, String> map) {
|
||||
if (map == null) map = new LinkedHashMap<>();
|
||||
final Map<String, String> map0 = map;
|
||||
getParameters().forEach((k, v) -> map0.put(k, v));
|
||||
return map0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有参数名
|
||||
*
|
||||
|
||||
@@ -7,7 +7,7 @@ package org.redkale.util;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.*;
|
||||
import java.util.function.BiPredicate;
|
||||
import java.util.function.*;
|
||||
|
||||
/**
|
||||
* 该类提供类似JSONObject的数据结构,主要用于读取xml配置文件和http-header存储
|
||||
@@ -190,6 +190,25 @@ public abstract class AnyValue {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forEach(BiConsumer<String, String> stringConsumer) {
|
||||
forEach(stringConsumer, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forEach(BiConsumer<String, String> stringConsumer, BiConsumer<String, AnyValue> anyConsumer) {
|
||||
if (stringConsumer != null) {
|
||||
for (Entry<String> en : stringEntrys) {
|
||||
stringConsumer.accept(en.name, en.value);
|
||||
}
|
||||
}
|
||||
if (anyConsumer != null) {
|
||||
for (Entry<AnyValue> en : (Entry[]) anyEntrys) {
|
||||
anyConsumer.accept(en.name, en.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Entry<String>[] getStringEntrys() {
|
||||
return stringEntrys;
|
||||
@@ -430,6 +449,10 @@ public abstract class AnyValue {
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public abstract void forEach(BiConsumer<String, String> stringConsumer);
|
||||
|
||||
public abstract void forEach(BiConsumer<String, String> stringConsumer, BiConsumer<String, AnyValue> anyConsumer);
|
||||
|
||||
public abstract Entry<String>[] getStringEntrys();
|
||||
|
||||
public abstract Entry<AnyValue>[] getAnyEntrys();
|
||||
|
||||
Reference in New Issue
Block a user