package com.sijobe.spc.util;
import java.util.HashMap;
/**
* Class for storing obfuscation mappings
*
* @author q3hardcore
* @version 1.3
*/
public class Mappings extends HashMap<String, String[]> {
private static final long serialVersionUID = 1L;
/**
* Adds a value to the map with all the alternate mappings
*
* @see java.util.HashMap#put(java.lang.Object, java.lang.Object)
*/
@Override
public String[] put(String mcpName, String[] alternateMappings) {
return super.put(mcpName, makeMapping(mcpName, alternateMappings));
}
/**
* Adds a value to the map without alteration
*
* @see java.util.HashMap#put(java.lang.Object, java.lang.Object)
*/
public String[] superPut(String key, String[] value) {
return super.put(key, value);
}
/**
* Gets mappings for the specified value
*
* @see java.util.HashMap#get(java.lang.Object)
*/
@Override
public String[] get(Object key) {
String[] mappings = super.get(key);
if(mappings == null) {
return new String[]{ key.toString() };
} else {
return mappings;
}
}
/**
* @param mcpName
* @param mappings
* @return mappings with mcpName prepended
*/
private String[] makeMapping(String mcpName, String[] mappings) {
String[] newMappings = new String[mappings.length + 1];
newMappings[0] = mcpName;
for(int i = 0; i < mappings.length; i++) {
newMappings[i+1] = mappings[i];
}
return newMappings;
}
}