package qubexplorer; import java.io.Serializable; import java.util.Arrays; /** * * @author Victor */ public class ResourceKey implements Serializable { private final String[] parts; public ResourceKey(String... parts) { this.parts = parts; } public String getPart(int index) { return parts[index]; } public int getPartsCount() { return parts.length; } public String toString(int begin, int end) { StringBuilder builder = new StringBuilder(); for (int i = begin; i < end; i++) { if (builder.length() > 0) { builder.append(':'); } builder.append(parts[i]); } return builder.toString(); } @Override public String toString() { return toString(0, parts.length); } @Override public int hashCode() { return Arrays.hashCode(parts); } @Override public boolean equals(Object obj) { if (!(obj instanceof ResourceKey)) { return false; } ResourceKey anotherKey = (ResourceKey) obj; return Arrays.equals(parts, anotherKey.parts); } public String getLastPart() { return parts[parts.length - 1]; } public ResourceKey subkey(int start, int end) { return new ResourceKey(Arrays.copyOfRange(parts, start, end)); } public ResourceKey concat(ResourceKey tempKey) { String[] newKeyParts=new String[parts.length+tempKey.parts.length]; System.arraycopy(parts, 0, newKeyParts, 0, parts.length); System.arraycopy(tempKey.parts, 0, newKeyParts, parts.length, tempKey.parts.length); return new ResourceKey(newKeyParts); } public static ResourceKey valueOf(String key) { return new ResourceKey(key.split(":")); } }