// Path: src/main/java/org/ihtsdo/otf/snomedboot/domain/Concept.java
// public interface Concept {
// 	Long getId();
// 
// 	Set<Long> getMemberOfRefsetIds();
// 
// 	Set<Long> getInferredAncestorIds() throws IllegalStateException;
// 
// 	Set<Long> getStatedAncestorIds() throws IllegalStateException;
// 
// 	boolean isActive();
// 
// 	String getEffectiveTime();
// 
// 	String getModuleId();
// 
// 	String getDefinitionStatusId();
// 
// 	String getFsn();
// 
// 	Map<String, Set<String>> getInferredAttributes();
// 
// 	Map<String, Set<String>> getInferredConcreteAttributes();
// 
// 	Map<String, Set<String>> getStatedAttributes();
// 
// 	List<Relationship> getRelationships();
// 
// 	List<ConcreteRelationship> getConcreteRelationships();
// 
// 	List<Description> getDescriptions();
// 
// 	Set<Long> getInferredDescendantIds() throws IllegalStateException;
// 
// 	Set<Long> getStatedDescendantIds() throws IllegalStateException;
// }
// 
// Path: src/main/java/org/ihtsdo/otf/snomedboot/domain/ConcreteRelationship.java
// public interface ConcreteRelationship {
// 	String getId();
// 
// 	String getEffectiveTime();
// 
// 	String getActive();
// 
// 	String getModuleId();
// 
// 	String getSourceId();
// 
// 	String getValue();
// 
// 	String getRelationshipGroup();
// 
// 	String getTypeId();
// 
// 	String getCharacteristicTypeId();
// 
// 	String getModifierId();
// }
// 
// Path: src/main/java/org/ihtsdo/otf/snomedboot/domain/Description.java
// public interface Description {
// 	Long getId();
// 
// 	boolean isActive();
// 
// 	String getTerm();
// 
// 	Long getConceptId();
// }
// 
// Path: src/main/java/org/ihtsdo/otf/snomedboot/domain/Relationship.java
// public interface Relationship {
// 	String getId();
// 
// 	String getEffectiveTime();
// 
// 	String getActive();
// 
// 	String getModuleId();
// 
// 	String getSourceId();
// 
// 	String getDestinationId();
// 
// 	String getRelationshipGroup();
// 
// 	String getTypeId();
// 
// 	String getCharacteristicTypeId();
// 
// 	String getModifierId();
// }


import org.ihtsdo.otf.snomedboot.domain.Concept;
import org.ihtsdo.otf.snomedboot.domain.ConcreteRelationship;
import org.ihtsdo.otf.snomedboot.domain.Description;
import org.ihtsdo.otf.snomedboot.domain.Relationship;
import java.util.*;
	private String moduleId;
	private String definitionStatusId;
	private String fsn;
	private final Map<String, Set<String>> inferredAttributes;
	private final Map<String, Set<String>> inferredConcreteAttributes;
	private final Map<String, Set<String>> statedAttributes;
	private final Set<Concept> inferredParents;
	private final Set<Concept> statedParents;
	private final Set<Concept> inferredChildren;
	private final Set<Concept> statedChildren;
	private final Set<Long> memberOfRefsetIds;
	private final List<Relationship> relationships;
	private final List<ConcreteRelationship> concreteRelationships;
	private final List<Description> descriptions;

	public ConceptImpl(String id) {
		this.id = Long.parseLong(id);
		inferredAttributes = new HashMap<>();
		inferredConcreteAttributes = new HashMap<>();
		statedAttributes = new HashMap<>();
		inferredParents = new HashSet<>();
		statedParents = new HashSet<>();
		inferredChildren = new HashSet<>();
		statedChildren = new HashSet<>();
		memberOfRefsetIds = new HashSet<>();
		relationships = new ArrayList<>();
		concreteRelationships = new ArrayList<>();
		descriptions = new ArrayList<>();
	}

// Path: src/main/java/org/ihtsdo/otf/snomedboot/domain/Concept.java
// public interface Concept {
// 	Long getId();
// 
// 	Set<Long> getMemberOfRefsetIds();
// 
// 	Set<Long> getInferredAncestorIds() throws IllegalStateException;
// 
// 	Set<Long> getStatedAncestorIds() throws IllegalStateException;
// 
// 	boolean isActive();
// 
// 	String getEffectiveTime();
// 
// 	String getModuleId();
// 
// 	String getDefinitionStatusId();
// 
// 	String getFsn();
// 
// 	Map<String, Set<String>> getInferredAttributes();
// 
// 	Map<String, Set<String>> getInferredConcreteAttributes();
// 
// 	Map<String, Set<String>> getStatedAttributes();
// 
// 	List<Relationship> getRelationships();
// 
// 	List<ConcreteRelationship> getConcreteRelationships();
// 
// 	List<Description> getDescriptions();
// 
// 	Set<Long> getInferredDescendantIds() throws IllegalStateException;
// 
// 	Set<Long> getStatedDescendantIds() throws IllegalStateException;
// }
// 
// Path: src/main/java/org/ihtsdo/otf/snomedboot/domain/ConcreteRelationship.java
// public interface ConcreteRelationship {
// 	String getId();
// 
// 	String getEffectiveTime();
// 
// 	String getActive();
// 
// 	String getModuleId();
// 
// 	String getSourceId();
// 
// 	String getValue();
// 
// 	String getRelationshipGroup();
// 
// 	String getTypeId();
// 
// 	String getCharacteristicTypeId();
// 
// 	String getModifierId();
// }
// 
// Path: src/main/java/org/ihtsdo/otf/snomedboot/domain/Description.java
// public interface Description {
// 	Long getId();
// 
// 	boolean isActive();
// 
// 	String getTerm();
// 
// 	Long getConceptId();
// }
// 
// Path: src/main/java/org/ihtsdo/otf/snomedboot/domain/Relationship.java
// public interface Relationship {
// 	String getId();
// 
// 	String getEffectiveTime();
// 
// 	String getActive();
// 
// 	String getModuleId();
// 
// 	String getSourceId();
// 
// 	String getDestinationId();
// 
// 	String getRelationshipGroup();
// 
// 	String getTypeId();
// 
// 	String getCharacteristicTypeId();
// 
// 	String getModifierId();
// }


// Path: src/main/java/org/ihtsdo/otf/snomedboot/factory/implementation/standard/ConceptImpl.java
import org.ihtsdo.otf.snomedboot.domain.Concept;
import org.ihtsdo.otf.snomedboot.domain.ConcreteRelationship;
import org.ihtsdo.otf.snomedboot.domain.Description;
import org.ihtsdo.otf.snomedboot.domain.Relationship;
import java.util.*;

	private String moduleId;
	private String definitionStatusId;
	private String fsn;
	private final Map<String, Set<String>> inferredAttributes;
	private final Map<String, Set<String>> inferredConcreteAttributes;
	private final Map<String, Set<String>> statedAttributes;
	private final Set<Concept> inferredParents;
	private final Set<Concept> statedParents;
	private final Set<Concept> inferredChildren;
	private final Set<Concept> statedChildren;
	private final Set<Long> memberOfRefsetIds;
	private final List<Relationship> relationships;
	private final List<ConcreteRelationship> concreteRelationships;
	private final List<Description> descriptions;

	public ConceptImpl(String id) {
		this.id = Long.parseLong(id);
		inferredAttributes = new HashMap<>();
		inferredConcreteAttributes = new HashMap<>();
		statedAttributes = new HashMap<>();
		inferredParents = new HashSet<>();
		statedParents = new HashSet<>();
		inferredChildren = new HashSet<>();
		statedChildren = new HashSet<>();
		memberOfRefsetIds = new HashSet<>();
		relationships = new ArrayList<>();
		concreteRelationships = new ArrayList<>();
		descriptions = new ArrayList<>();
	}

	public ConceptImpl(String conceptId, String effectiveTime, boolean active, String moduleId, String definitionStatusId) {