001package org.hl7.fhir.r4.model;
002
003import org.hl7.fhir.instance.model.api.IBaseDatatype;
004import org.hl7.fhir.instance.model.api.IBaseExtension;
005import org.hl7.fhir.instance.model.api.IBaseHasExtensions;
006import org.hl7.fhir.instance.model.api.IPrimitiveType;
007
008public abstract class BaseExtension extends Type implements IBaseExtension<Extension, Type>, IBaseHasExtensions {
009
010        private static final long serialVersionUID = 1L;
011
012
013        @Override
014        public Extension setValue(IBaseDatatype theValue) {
015                setValue((Type)theValue);
016                return (Extension) this;
017        }
018        
019        public abstract Extension setValue(Type theValue);
020        
021        
022        /**
023         * Returns the value of this extension cast as a {@link IPrimitiveType}. This method is just a convenience method for easy chaining.
024         */
025        public IPrimitiveType<?> getValueAsPrimitive() {
026                return (IPrimitiveType<?>)getValue();
027        }
028
029        
030}