Google Guice dependency injection should be used in order to register the different evidence types and their implementations. This can be done by writing a new module class, or adding to a pre existing one. Once this is added to the ModuleCalssName table, then at runtime it will be loaded and the evidence types registered.
Example
/*
* Copyright 2011 Cúram Software Ltd.
* All rights reserved.
*
* This software is the confidential and proprietary information
* of Cúram Software, Ltd. ("Confidential Information"). You
* shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement
* you entered into with Cúram Software.
*/
package curam.seg.evidence.service.impl;
import curam.codetable.CASEEVIDENCE;
import com.google.inject.AbstractModule;
import curam.core.impl.FactoryMethodHelper;
import java.lang.reflect.Method;
import com.google.inject.multibindings.MapBinder;
import curam.core.impl.RegistrarImpl;
import curam.core.impl.Registrar.RegistrarType;
/**
* A module class which provides registration for all of the
* evidence hook implementations.
*/
public class SEGRegistrarModule extends AbstractModule {
@Override
public void configure() {
// Register all hook implementations which implement the
// interface EvidenceInterface.
MapBinder<String, Method> evidenceInterfaceMapBinder =
MapBinder.newMapBinder(binder(), String.class,
Method.class, new RegistrarImpl(RegistrarType.EVIDENCE));
evidenceInterfaceMapBinder
.addBinding(CASEEVIDENCE.ASSET)
.toInstance(FactoryMethodHelper.getNewInstanceMethod(
curam.seg.evidence.entity.fact.AssetFactory.class));
}
}