// Path: src/main/java/org/ihtsdo/otf/snomedboot/factory/ComponentFactory.java
// public interface ComponentFactory {
// 
// 	void preprocessingContent();
// 
// 	void loadingComponentsStarting();
// 
// 	void loadingComponentsCompleted();
// 
// 	void newConceptState(String conceptId, String effectiveTime, String active, String moduleId, String definitionStatusId);
// 
// 	void newDescriptionState(String id, String effectiveTime, String active, String moduleId, String conceptId, String languageCode, String typeId, String term, String caseSignificanceId);
// 
// 	void newRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId,
// 							  String destinationId, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId);
// 
// 	void newConcreteRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId,
// 							  String value, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId);
// 
// 	void newReferenceSetMemberState(String[] fieldNames, String id, String effectiveTime, String active, String moduleId, String refsetId, String referencedComponentId, String... otherValues);
// 
// }
// 
// Path: src/main/java/org/ihtsdo/otf/snomedboot/factory/ImpotentComponentFactory.java
// public class ImpotentComponentFactory implements ComponentFactory {
// 
// 	@Override
// 	public void preprocessingContent() {
// 
// 	}
// 
// 	@Override
// 	public void loadingComponentsStarting() {
// 
// 	}
// 
// 	@Override
// 	public void loadingComponentsCompleted() {
// 
// 	}
// 
// 	@Override
// 	public void newConceptState(String conceptId, String effectiveTime, String active, String moduleId, String definitionStatusId) {
// 
// 	}
// 
// 	@Override
// 	public void newDescriptionState(String id, String effectiveTime, String active, String moduleId, String conceptId, String languageCode, String typeId, String term, String caseSignificanceId) {
// 
// 	}
// 
// 	@Override
// 	public void newRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId, String destinationId, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId) {
// 
// 	}
// 
// 	@Override
// 	public void newConcreteRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId, String value, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId) {
// 
// 	}
// 
// 	@Override
// 	public void newReferenceSetMemberState(String[] fieldNames, String id, String effectiveTime, String active, String moduleId, String refsetId, String referencedComponentId, String... otherValues) {
// 
// 	}
// 
// }


import org.ihtsdo.otf.snomedboot.factory.ComponentFactory;
import org.ihtsdo.otf.snomedboot.factory.ImpotentComponentFactory;
	}

	@Override
	public void loadingComponentsCompleted() {
		delegateComponentFactory.loadingComponentsCompleted();
	}

	@Override
	public void newConceptState(String conceptId, String effectiveTime, String active, String moduleId, String definitionStatusId) {
		if (effectiveDateHolder.isCoreComponentVersionInEffect(conceptId, effectiveTime)) {
			delegateComponentFactory.newConceptState(conceptId, effectiveTime, active, moduleId, definitionStatusId);
		}
	}

	@Override
	public void newDescriptionState(String id, String effectiveTime, String active, String moduleId, String conceptId, String languageCode, String typeId, String term, String caseSignificanceId) {
		if (effectiveDateHolder.isCoreComponentVersionInEffect(id, effectiveTime)) {
			delegateComponentFactory.newDescriptionState(id, effectiveTime, active, moduleId, conceptId, languageCode, typeId, term, caseSignificanceId);
		}
	}

	@Override
	public void newRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId, String destinationId, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId) {
		if (effectiveDateHolder.isCoreComponentVersionInEffect(id, effectiveTime)) {
			delegateComponentFactory.newRelationshipState(id, effectiveTime, active, moduleId, sourceId, destinationId, relationshipGroup, typeId, characteristicTypeId, modifierId);
		}
	}

	@Override
	public void newConcreteRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId, String value, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId) {
// Path: src/main/java/org/ihtsdo/otf/snomedboot/factory/ComponentFactory.java
// public interface ComponentFactory {
// 
// 	void preprocessingContent();
// 
// 	void loadingComponentsStarting();
// 
// 	void loadingComponentsCompleted();
// 
// 	void newConceptState(String conceptId, String effectiveTime, String active, String moduleId, String definitionStatusId);
// 
// 	void newDescriptionState(String id, String effectiveTime, String active, String moduleId, String conceptId, String languageCode, String typeId, String term, String caseSignificanceId);
// 
// 	void newRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId,
// 							  String destinationId, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId);
// 
// 	void newConcreteRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId,
// 							  String value, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId);
// 
// 	void newReferenceSetMemberState(String[] fieldNames, String id, String effectiveTime, String active, String moduleId, String refsetId, String referencedComponentId, String... otherValues);
// 
// }
// 
// Path: src/main/java/org/ihtsdo/otf/snomedboot/factory/ImpotentComponentFactory.java
// public class ImpotentComponentFactory implements ComponentFactory {
// 
// 	@Override
// 	public void preprocessingContent() {
// 
// 	}
// 
// 	@Override
// 	public void loadingComponentsStarting() {
// 
// 	}
// 
// 	@Override
// 	public void loadingComponentsCompleted() {
// 
// 	}
// 
// 	@Override
// 	public void newConceptState(String conceptId, String effectiveTime, String active, String moduleId, String definitionStatusId) {
// 
// 	}
// 
// 	@Override
// 	public void newDescriptionState(String id, String effectiveTime, String active, String moduleId, String conceptId, String languageCode, String typeId, String term, String caseSignificanceId) {
// 
// 	}
// 
// 	@Override
// 	public void newRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId, String destinationId, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId) {
// 
// 	}
// 
// 	@Override
// 	public void newConcreteRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId, String value, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId) {
// 
// 	}
// 
// 	@Override
// 	public void newReferenceSetMemberState(String[] fieldNames, String id, String effectiveTime, String active, String moduleId, String refsetId, String referencedComponentId, String... otherValues) {
// 
// 	}
// 
// }


// Path: src/main/java/org/ihtsdo/otf/snomedboot/factory/filter/LatestEffectiveDateFilter.java
import org.ihtsdo.otf.snomedboot.factory.ComponentFactory;
import org.ihtsdo.otf.snomedboot.factory.ImpotentComponentFactory;

	}

	@Override
	public void loadingComponentsCompleted() {
		delegateComponentFactory.loadingComponentsCompleted();
	}

	@Override
	public void newConceptState(String conceptId, String effectiveTime, String active, String moduleId, String definitionStatusId) {
		if (effectiveDateHolder.isCoreComponentVersionInEffect(conceptId, effectiveTime)) {
			delegateComponentFactory.newConceptState(conceptId, effectiveTime, active, moduleId, definitionStatusId);
		}
	}

	@Override
	public void newDescriptionState(String id, String effectiveTime, String active, String moduleId, String conceptId, String languageCode, String typeId, String term, String caseSignificanceId) {
		if (effectiveDateHolder.isCoreComponentVersionInEffect(id, effectiveTime)) {
			delegateComponentFactory.newDescriptionState(id, effectiveTime, active, moduleId, conceptId, languageCode, typeId, term, caseSignificanceId);
		}
	}

	@Override
	public void newRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId, String destinationId, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId) {
		if (effectiveDateHolder.isCoreComponentVersionInEffect(id, effectiveTime)) {
			delegateComponentFactory.newRelationshipState(id, effectiveTime, active, moduleId, sourceId, destinationId, relationshipGroup, typeId, characteristicTypeId, modifierId);
		}
	}

	@Override
	public void newConcreteRelationshipState(String id, String effectiveTime, String active, String moduleId, String sourceId, String value, String relationshipGroup, String typeId, String characteristicTypeId, String modifierId) {
		if (effectiveDateHolder.isCoreComponentVersionInEffect(id, effectiveTime)) {