/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.jini.id; /** * Defines an interface that allows a proxy for a resource to express the * identity of that resource. Resources include items like services, * leases, service registrations, and lease renewal sets. Any resource that * is represented by proxies that implement this interface has a unique * identity. That identity is expressed by assigning the resource a * universally unique identifier. This universally unique identifier will * be represented using the <code>Uuid</code> class. This <code>Uuid</code> * must be: * * <ul> * <li> Sufficient to uniquely identify the resource, * <li> associated with the resource for the resource's entire lifetime, * <li> never assigned to another resource who's proxies implement * <code>ReferentUuid</code>, and * <li> returned by the <code>getReferentUuid</code> method of * any proxy of the resource, if that proxy implements * <code>ReferentUuid</code>. * </ul> * <p> * Given two objects, <code>o1</code> and <code>o2</code>, that implement * <code>ReferentUuid</code>: * <ul> * <li> if <code>o1.equals(o2)</code> is <code>true</code>, * then <code>o1.getReferentUuid</code> and * <code>o2.getReferentUuid</code> should return equivalent * <code>Uuid</code>s. * <li> if <code>o1.getReferentUuid</code> and * <code>o2.getReferentUuid</code> return equivalent * <code>Uuid</code>s, <code>o1.equals(o2)</code> may, but is * not required to be <code>true</code>. * </ul> * @author Sun Microsystems, Inc. * @see Uuid * @since 2.0 */ public interface ReferentUuid { /** * Return the <code>Uuid</code> that has been assigned to the * resource this proxy represents. * @return the <code>Uuid</code> associated with the * resource this proxy represents. Will not * return <code>null</code>. */ public Uuid getReferentUuid(); }