From 9b4433fddf5b401edb0aace8a404ac733b122702 Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期四, 03 四月 2025 14:35:02 +0800
Subject: [PATCH] 添加非密字段显示
---
Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/common/MultiSetMap.java | 132 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 132 insertions(+), 0 deletions(-)
diff --git a/Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/common/MultiSetMap.java b/Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/common/MultiSetMap.java
new file mode 100644
index 0000000..6625c6b
--- /dev/null
+++ b/Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/common/MultiSetMap.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: DreamLu 鍗㈡槬姊� (596392912@qq.com)
+ */
+package org.springblade.core.auto.common;
+
+import java.util.*;
+
+/**
+ * MultiSetMap
+ *
+ * @author L.cm
+ */
+public class MultiSetMap<K, V> {
+ private transient final Map<K, Set<V>> map;
+
+ public MultiSetMap() {
+ map = new HashMap<>();
+ }
+
+ private Set<V> createSet() {
+ return new HashSet<>();
+ }
+
+ /**
+ * put to MultiSetMap
+ *
+ * @param key 閿�
+ * @param value 鍊�
+ * @return boolean
+ */
+ public boolean put(K key, V value) {
+ Set<V> set = map.get(key);
+ if (set == null) {
+ set = createSet();
+ if (set.add(value)) {
+ map.put(key, set);
+ return true;
+ } else {
+ throw new AssertionError("New set violated the set spec");
+ }
+ } else if (set.add(value)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * 鏄惁鍖呭惈鏌愪釜key
+ *
+ * @param key key
+ * @return 缁撴灉
+ */
+ public boolean containsKey(K key) {
+ return map.containsKey(key);
+ }
+
+ /**
+ * 鏄惁鍖呭惈 value 涓殑鏌愪釜鍊�
+ *
+ * @param value value
+ * @return 鏄惁鍖呭惈
+ */
+ public boolean containsVal(V value) {
+ Collection<Set<V>> values = map.values();
+ return values.stream().anyMatch(vs -> vs.contains(value));
+ }
+
+ /**
+ * key 闆嗗悎
+ *
+ * @return keys
+ */
+ public Set<K> keySet() {
+ return map.keySet();
+ }
+
+ /**
+ * put list to MultiSetMap
+ *
+ * @param key 閿�
+ * @param set 鍊煎垪琛�
+ * @return boolean
+ */
+ public boolean putAll(K key, Set<V> set) {
+ if (set == null) {
+ return false;
+ } else {
+ map.put(key, set);
+ return true;
+ }
+ }
+
+ /**
+ * get List by key
+ *
+ * @param key 閿�
+ * @return List
+ */
+ public Set<V> get(K key) {
+ return map.get(key);
+ }
+
+ /**
+ * clear MultiSetMap
+ */
+ public void clear() {
+ map.clear();
+ }
+
+ /**
+ * isEmpty
+ *
+ * @return isEmpty
+ */
+ public boolean isEmpty() {
+ return map.isEmpty();
+ }
+}
--
Gitblit v1.9.3