001package org.hl7.fhir.r4.model;
002
003/*-
004 * #%L
005 * org.hl7.fhir.r4
006 * %%
007 * Copyright (C) 2014 - 2019 Health Level 7
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import org.apache.commons.lang3.StringUtils;
024import org.hl7.fhir.instance.model.api.INarrative;
025import org.hl7.fhir.utilities.xhtml.NodeType;
026import org.hl7.fhir.utilities.xhtml.XhtmlNode;
027
028public abstract class BaseNarrative extends Type implements INarrative {
029
030        /**
031         * Sets the value of
032         *
033         * @param theString
034         * @throws Exception
035         */
036        public void setDivAsString(String theString) {
037                XhtmlNode div;
038                if (StringUtils.isNotBlank(theString)) {
039                        div = new XhtmlNode(NodeType.Element, "div");
040                        div.setValueAsString(theString);
041                } else {
042                        div = null;
043                }
044                setDiv(div);
045        }
046
047        protected abstract BaseNarrative setDiv(XhtmlNode theDiv);
048
049        public String getDivAsString() {
050                XhtmlNode div = getDiv();
051                if (div != null && !div.isEmpty()) {
052                        return div.getValueAsString();
053                } else {
054                        return null;
055                }
056        }
057
058        protected abstract XhtmlNode getDiv();
059
060   public abstract Enumeration<?> getStatusElement();
061
062        public INarrative setStatusAsString(String theString) {
063                getStatusElement().setValueAsString(theString);
064                return this;
065        }
066
067        public String getStatusAsString() {
068                return getStatusElement().getValueAsString();
069        } 
070
071}