BlueMap/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/util/Key.java

65 lines
1.6 KiB
Java
Raw Normal View History

package de.bluecolored.bluemap.core.util;
2022-07-24 12:10:00 +02:00
import de.bluecolored.bluemap.api.debug.DebugDump;
@DebugDump
public class Key {
private static final String MINECRAFT_NAMESPACE = "minecraft";
private final String namespace;
private final String value;
private final String formatted;
public Key(String formatted) {
String namespace = MINECRAFT_NAMESPACE;
2022-08-01 11:12:50 +02:00
String value = formatted;
int namespaceSeparator = formatted.indexOf(':');
if (namespaceSeparator > 0) {
namespace = formatted.substring(0, namespaceSeparator);
2022-08-01 11:12:50 +02:00
value = formatted.substring(namespaceSeparator + 1);
}
this.namespace = namespace.intern();
2022-08-01 11:12:50 +02:00
this.value = value.intern();
this.formatted = (this.namespace + ":" + this.value).intern();
}
public Key(String namespace, String value) {
this.namespace = namespace.intern();
this.value = value.intern();
this.formatted = (this.namespace + ":" + this.value).intern();
}
public String getNamespace() {
return namespace;
}
public String getValue() {
return value;
}
public String getFormatted() {
return formatted;
}
2022-05-29 02:34:26 +02:00
@SuppressWarnings("StringEquality")
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
2022-08-01 11:12:50 +02:00
Key that = (Key) o;
2022-05-29 02:34:26 +02:00
return getFormatted() == that.getFormatted();
}
@Override
public int hashCode() {
return getFormatted().hashCode();
}
@Override
public String toString() {
return formatted;
}
}