/* * Copyright 1999-2017 Alibaba Group Holding Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.alibaba.druid.wall; import com.alibaba.druid.support.monitor.annotation.AggregateType; import com.alibaba.druid.support.monitor.annotation.MField; import com.alibaba.druid.support.monitor.annotation.MTable; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @MTable(name = "druid_wall") public class WallProviderStatValue { @MField(aggregate = AggregateType.None) private String name; @MField(aggregate = AggregateType.Sum) private long checkCount; @MField(aggregate = AggregateType.Sum) private long hardCheckCount; @MField(aggregate = AggregateType.Sum) private long violationCount; @MField(aggregate = AggregateType.Sum) private long whiteListHitCount; @MField(aggregate = AggregateType.Sum) private long blackListHitCount; @MField(aggregate = AggregateType.Sum) private long syntaxErrorCount; @MField(aggregate = AggregateType.Sum) private long violationEffectRowCount; private final List<WallTableStatValue> tables = new ArrayList<WallTableStatValue>(); private final List<WallFunctionStatValue> functions = new ArrayList<WallFunctionStatValue>(); private final List<WallSqlStatValue> whiteList = new ArrayList<WallSqlStatValue>(); private final List<WallSqlStatValue> blackList = new ArrayList<WallSqlStatValue>(); public WallProviderStatValue(){ } public String getName() { return name; } public void setName(String name) { this.name = name; } public long getCheckCount() { return checkCount; } public void setCheckCount(long checkCount) { this.checkCount = checkCount; } public long getHardCheckCount() { return hardCheckCount; } public void setHardCheckCount(long hardCheckCount) { this.hardCheckCount = hardCheckCount; } public long getViolationCount() { return violationCount; } public void setViolationCount(long violationCount) { this.violationCount = violationCount; } public long getWhiteListHitCount() { return whiteListHitCount; } public void setWhiteListHitCount(long whiteListHitCount) { this.whiteListHitCount = whiteListHitCount; } public long getBlackListHitCount() { return blackListHitCount; } public void setBlackListHitCount(long blackListHitCount) { this.blackListHitCount = blackListHitCount; } public long getSyntaxErrorCount() { return syntaxErrorCount; } public void setSyntaxErrorCount(long syntaxErrorCount) { this.syntaxErrorCount = syntaxErrorCount; } public long getViolationEffectRowCount() { return violationEffectRowCount; } public void setViolationEffectRowCount(long violationEffectRowCount) { this.violationEffectRowCount = violationEffectRowCount; } public List<WallTableStatValue> getTables() { return tables; } public List<WallFunctionStatValue> getFunctions() { return functions; } public List<WallSqlStatValue> getWhiteList() { return whiteList; } public List<WallSqlStatValue> getBlackList() { return blackList; } public Map<String, Object> toMap() { Map<String, Object> info = new LinkedHashMap<String, Object>(); info.put("checkCount", this.getCheckCount()); info.put("hardCheckCount", this.getHardCheckCount()); info.put("violationCount", this.getViolationCount()); info.put("violationEffectRowCount", this.getViolationEffectRowCount()); info.put("blackListHitCount", this.getBlackListHitCount()); info.put("blackListSize", this.getBlackList().size()); info.put("whiteListHitCount", this.getWhiteListHitCount()); info.put("whiteListSize", this.getWhiteList().size()); info.put("syntaxErrorCount", this.getSyntaxErrorCount()); { List<Map<String, Object>> tables = new ArrayList<Map<String, Object>>(this.tables.size()); for (WallTableStatValue tableStatValue : this.tables) { Map<String, Object> statMap = tableStatValue.toMap(); tables.add(statMap); } info.put("tables", tables); } { List<Map<String, Object>> functions = new ArrayList<Map<String, Object>>(); for (WallFunctionStatValue funStatValue : this.functions) { Map<String, Object> statMap = funStatValue.toMap(); functions.add(statMap); } info.put("functions", functions); } { List<Map<String, Object>> blackList = new ArrayList<Map<String, Object>>(this.blackList.size()); for (WallSqlStatValue sqlStatValue : this.blackList) { blackList.add(sqlStatValue.toMap()); } info.put("blackList", blackList); } { List<Map<String, Object>> whiteList = new ArrayList<Map<String, Object>>(this.whiteList.size()); for (WallSqlStatValue sqlStatValue : this.whiteList) { whiteList.add(sqlStatValue.toMap()); } info.put("whiteList", whiteList); } return info; } }