/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.common; /** * A marker interface for subclasses of {@link CommonIdBase} that can be resolved to an {@link InstanceNodeSessionId} as long as the given * id points to an entity that is available in the current network. This is used in place of {@link CommonIdBase} to support future * extensions and adaptations, and making method signatures and contracts more explicit. * * @author Robert Mischke */ public interface ResolvableNodeId { /** * @return the {@link IdType} of this generic id */ IdType getType(); /** * @return the string form of the (usually persistent) identifier of a referenced instance; see the main JavaDoc for its description */ String getInstanceNodeIdString(); /** * Tests whether this identifier represents the same instance (but <b>not</b> necessarily the same instance <b>session</b>) as the * provided identifier. Currently, this method simply compares their instance id strings for equality. * <p> * Note that this method should be used whenever possible instead of manually comparing string representations for semantic clarity and * future maintainability. * * @param otherId the other identifier to compare with * @return true if both identifiers are related to the same (abstractly defined) "instance" */ boolean isSameInstanceNodeAs(ResolvableNodeId otherId); }