You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
4.3 KiB
114 lines
4.3 KiB
1 year ago
|
package com.zc.business.enums;
|
||
|
|
||
|
import org.junit.Test;
|
||
|
|
||
|
|
||
|
import java.util.HashMap;
|
||
|
import java.util.Map;
|
||
|
|
||
|
/**
|
||
|
* @author 王思祥
|
||
|
* @ClassName ValueConverter
|
||
|
*/
|
||
|
//感知事件与交通主子类转换
|
||
|
public class ValueConverter {
|
||
|
|
||
|
//懒加载类来实现延迟初始化
|
||
|
private static class ValueMappingHolder {
|
||
|
|
||
|
// 静态映射,用于存储转换关系 事件主类转换
|
||
|
private static final Map<Integer, Integer> valueMappingHost = new HashMap<>();
|
||
|
// 静态映射,用于存储转换关系 事件子类转换
|
||
|
private static final Map<String, String> valueMappingSon = new HashMap<>();
|
||
|
// 静态映射,用于存储转换关系 事件源转换
|
||
|
private static final Map<Integer, Integer> valueMappingSource = new HashMap<>();
|
||
|
static {
|
||
|
valueMappingSource.put(1,5);
|
||
|
valueMappingSource.put(4,7);
|
||
|
valueMappingSource.put(7,7);
|
||
|
valueMappingSource.put(2,7);
|
||
|
valueMappingSource.put(3,7);
|
||
|
valueMappingSource.put(5,7);
|
||
|
valueMappingSource.put(6,7);
|
||
|
valueMappingHost.put(1, 4);
|
||
|
valueMappingHost.put(2, 5);
|
||
|
valueMappingHost.put(3, 5);
|
||
|
valueMappingHost.put(4, 2);
|
||
|
valueMappingHost.put(5, 11);
|
||
|
valueMappingHost.put(6, 6);
|
||
|
valueMappingHost.put(7, 6);
|
||
|
valueMappingHost.put(8, 10);
|
||
|
valueMappingHost.put(9, 1);
|
||
|
valueMappingSon.put("1-1", "4-1");
|
||
|
valueMappingSon.put("1-2", "4-1");
|
||
|
valueMappingSon.put("2-1", "5-1");
|
||
|
valueMappingSon.put("2-2", "5-1");
|
||
|
valueMappingSon.put("3-1", "5-3");
|
||
|
valueMappingSon.put("3-2", "5-2");
|
||
|
valueMappingSon.put("3-3", "5-2");
|
||
|
valueMappingSon.put("4-1", "2-1");
|
||
|
valueMappingSon.put("4-2", "2-1");
|
||
|
valueMappingSon.put("4-3", "2-1");
|
||
|
valueMappingSon.put("4-4", "2-1");
|
||
|
valueMappingSon.put("4-5", "2-1");
|
||
|
valueMappingSon.put("4-6", "2-1");
|
||
|
valueMappingSon.put("4-7", "2-1");
|
||
|
valueMappingSon.put("4-8", "2-1");
|
||
|
valueMappingSon.put("4-9", "2-1");
|
||
|
valueMappingSon.put("5-1", "11-1");
|
||
|
valueMappingSon.put("6-1", "6-1");
|
||
|
valueMappingSon.put("7-1", "6-3");
|
||
|
valueMappingSon.put("8-1", "10-1");
|
||
|
valueMappingSon.put("8-2", "10-9");
|
||
|
valueMappingSon.put("8-3", "10-4");
|
||
|
valueMappingSon.put("8-4", "10-3");
|
||
|
valueMappingSon.put("8-5", "10-9");
|
||
|
valueMappingSon.put("8-6", "10-8");
|
||
|
valueMappingSon.put("8-7", "10-9");
|
||
|
valueMappingSon.put("8-8", "10-7");
|
||
|
valueMappingSon.put("8-9", "10-9");
|
||
|
valueMappingSon.put("8-10", "10-3");
|
||
|
valueMappingSon.put("9-1", "1-3");
|
||
|
valueMappingSon.put("9-2", "1-3");
|
||
|
valueMappingSon.put("9-3", "1-3");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 提供一个静态方法来获取映射关系
|
||
|
public static Map<Integer, Integer> getValueMappingHost() {
|
||
|
return ValueMappingHolder.valueMappingHost;
|
||
|
}
|
||
|
public static Map<String, String> getValueMappingSon() {
|
||
|
return ValueMappingHolder.valueMappingSon;
|
||
|
}
|
||
|
public static Map<Integer, Integer> getValueMappingSource() {
|
||
|
return ValueMappingHolder.valueMappingSource;
|
||
|
}
|
||
|
/**
|
||
|
* 根据输入值返回转换后的值
|
||
|
* 如果输入值不在映射中,则返回输入值本身
|
||
|
* @param inputValue 输入值
|
||
|
* @return 转换后的值或输入值本身
|
||
|
*/
|
||
|
public static int convertValueHost(int inputValue) {
|
||
|
Map<Integer, Integer> mapping = getValueMappingHost();
|
||
|
return mapping.getOrDefault(inputValue, inputValue);
|
||
|
}
|
||
|
public static String convertValueSon(String inputValue) {
|
||
|
Map<String, String> mapping = getValueMappingSon();
|
||
|
return mapping.getOrDefault(inputValue, inputValue);
|
||
|
}
|
||
|
public static int convertValueSource(int inputValue) {
|
||
|
Map<Integer, Integer> mapping = getValueMappingSource();
|
||
|
return mapping.getOrDefault(inputValue, inputValue);
|
||
|
}
|
||
|
//测试
|
||
|
// @Test
|
||
|
// public void text(){
|
||
|
// String i="1-1";
|
||
|
// String i1 = ValueConverter.convertValueSon(i);
|
||
|
// System.out.println(i1+"--------------");
|
||
|
// }
|
||
|
|
||
|
}
|