001package org.hl7.fhir.dstu2.model;
002
003/*-
004 * #%L
005 * org.hl7.fhir.dstu2
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.XhtmlNode;
026
027public abstract class BaseNarrative extends Type implements INarrative {
028
029        /**
030         * Sets the value of
031         *
032         * @param theString
033         * @throws Exception
034         */
035        public void setDivAsString(String theString) {
036                XhtmlNode div;
037                if (StringUtils.isNotBlank(theString)) {
038                        div = new XhtmlNode();
039                        div.setValueAsString(theString);
040                } else {
041                        div = null;
042                }
043                setDiv(div);
044        }
045
046        protected abstract BaseNarrative setDiv(XhtmlNode theDiv);
047
048        public String getDivAsString() {
049                XhtmlNode div = getDiv();
050                if (div != null && !div.isEmpty()) {
051                        return div.getValueAsString();
052                } else {
053                        return null;
054                }
055        }
056
057  public abstract Enumeration<?> getStatusElement();
058
059  public INarrative setStatusAsString(String theString) {
060    getStatusElement().setValueAsString(theString);
061    return this;
062  }
063
064  public String getStatusAsString() {
065    return getStatusElement().getValueAsString();
066  }
067
068  protected abstract XhtmlNode getDiv();
069
070}