/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.nodeproperties.internal; import de.rcenvironment.core.utils.common.StringUtils; /** * A combined key comprised of a node id and a metadata key. * * @author Robert Mischke */ public class CompositeNodePropertyKey { private final String instanceSessionId; private final String dataKey; private final String compositeKey; public CompositeNodePropertyKey(String instanceSessionId, String dataKey) { this.instanceSessionId = instanceSessionId; this.dataKey = dataKey; this.compositeKey = StringUtils.format("%s:%s", instanceSessionId, dataKey); } public String getInstanceNodeSessionIdString() { return instanceSessionId; } public String getDataKey() { return dataKey; } @Override public int hashCode() { // delegate to compositeKey return compositeKey.hashCode(); } @Override public boolean equals(Object obj) { if (!(obj instanceof CompositeNodePropertyKey)) { return false; } // delegate to compositeKey equality return compositeKey.equals(((CompositeNodePropertyKey) obj).compositeKey); } public String getAsUniqueString() { return compositeKey; } @Override public String toString() { return compositeKey; } }