001/*
002 * #%L
003 * HAPI FHIR - Core Library
004 * %%
005 * Copyright (C) 2014 - 2024 Smile CDR, Inc.
006 * %%
007 * Licensed under the Apache License, Version 2.0 (the "License");
008 * you may not use this file except in compliance with the License.
009 * You may obtain a copy of the License at
010 *
011 *      http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 * #L%
019 */
020package ca.uhn.fhir.model.api;
021
022import ca.uhn.fhir.model.primitive.IdDt;
023
024public interface IIdentifiableElement extends IElement {
025
026        /**
027         * Used to retrieve an ID for this specific element within a resource. These are used for IDREF referenced between
028         * elements within a single resource, and do not have any other purpose.
029         */
030        String getElementSpecificId();
031
032        /**
033         * @deprecated Use {@link #getElementSpecificId()} instead. This method will be removed because it is easily
034         *             confused with other ID methods (such as patient#getIdentifier)
035         */
036        @Deprecated
037        IdDt getId();
038
039        /**
040         * Used to set an ID for this specific element within a resource. These are used for IDREF referenced between
041         * elements within a single resource, and do not have any other purpose.
042         */
043        void setElementSpecificId(String theElementSpecificId);
044
045        /**
046         * @deprecated Use {@link #setElementSpecificId(String)} instead. This method will be removed because it is easily
047         *             confused with other ID methods (such as patient#getIdentifier)
048         */
049        @Deprecated
050        void setId(IdDt theId);
051
052        /**
053         * @deprecated Use {@link #setElementSpecificId(String)} instead. This method will be removed because it is easily
054         *             confused with other ID methods (such as patient#getIdentifier)
055         */
056        @Deprecated
057        void setId(String theId);
058}