
se.cambio.cds.model.instance.ElementInstance Maven / Gradle / Ivy
package se.cambio.cds.model.instance;
import org.openehr.rm.datatypes.basic.DataValue;
import org.openehr.rm.datatypes.text.DvCodedText;
import java.io.Serializable;
public class ElementInstance implements Serializable, Cloneable {
private static final long serialVersionUID = 2052012L;
private String id = null;
private DataValue dataValue = null;
private DvCodedText nullFlavour = null;
private ArchetypeReference archetypeReference = null;
private ContainerInstance containerInstance = null;
public ElementInstance(
String id, DataValue dataValue,
ArchetypeReference archetypeReference,
ContainerInstance containerInstance,
DvCodedText nullFlavour) {
super();
this.id = id;
this.dataValue = dataValue;
this.nullFlavour = nullFlavour;
this.containerInstance = containerInstance;
setArchetypeReference(archetypeReference);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public ArchetypeReference getArchetypeReference() {
return archetypeReference;
}
public void setArchetypeReference(ArchetypeReference archetypeReference) {
if (this.archetypeReference != null) {
this.archetypeReference.removeElementInstance(this);
}
this.archetypeReference = archetypeReference;
if (archetypeReference != null) {
archetypeReference.addElementInstance(this);
}
}
public ContainerInstance getContainerInstance() {
return containerInstance;
}
public void setContainerInstance(ContainerInstance containerInstance) {
this.containerInstance = containerInstance;
}
public DataValue getDataValue() {
return dataValue;
}
public void setDataValue(DataValue dataValue) {
this.dataValue = dataValue;
}
public DvCodedText getNullFlavour() {
return nullFlavour;
}
public void setNullFlavour(DvCodedText nullFlavour) {
this.nullFlavour = nullFlavour;
}
public boolean hasValue() {
return this.dataValue != null;
}
public boolean hasNoValue() {
return this.dataValue == null;
}
public boolean hasNoValue(String gtCodeReference) {
return hasNoValue(); //We don't care about the code reference (see GeneratedElementInstance)
}
@Override
public ElementInstance clone() {
try {
ElementInstance clone = (ElementInstance) super.clone();
clone.setId(id);
clone.setDataValue(dataValue);
clone.archetypeReference = archetypeReference.clone();
clone.setContainerInstance(containerInstance);
clone.setNullFlavour(nullFlavour);
return clone;
} catch (CloneNotSupportedException ex) {
throw new RuntimeException(ex);
}
}
public boolean isPredicate() {
return false;
}
@Override
public String toString() {
return "id=" + id + "\n"
+ "dataValue=" + dataValue + "\n"
+ "containerInstance=" + containerInstance + "\n"
+ "nullFlavour=" + nullFlavour;
}
}
/*
* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 2.0/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public 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.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an 'AS IS' basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
*
* The Initial Developers of the Original Code are Iago Corbal and Rong Chen.
* Portions created by the Initial Developer are Copyright (C) 2012-2013
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Software distributed under the License is distributed on an 'AS IS' basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* ***** END LICENSE BLOCK *****
*/
© 2015 - 2025 Weber Informatics LLC | Privacy Policy