Example for Java migration rule

The rule configuration files are organized as IOC externalizations. Take the Java™ migration rule file for example: The tags are linked to specific Java classes in the classTable map. Then the rules can be defined and injected into separate Translators. These rules can only be parsed and explained by the corresponding Translator itself.
Following is an example for Java migration rule:
<javaRule>
	<map id="classTable">
		<entry key="packageTranslatorDefault"
			value="com.ibm.btt.tools.migration.impl.JavaPackageTranslator" />
		<entry key="importTranslatorDefault"
			value="com.ibm.btt.tools.migration.impl.JavaImportTranslator" />
		<entry key="classInstanceCreationTranslatorDefault"
			value="com.ibm.btt.tools.migration.impl.JavaClassInstanceCreationTranslator" />
		<entry key="methodInvocationTranslatorDefault"
			value="com.ibm.btt.tools.migration.impl.JavaMethodInvocationTranslator" />
		<entry key="typeDeclarationTranslatorDefault"
			value="com.ibm.btt.tools.migration.impl.JavaTypeTranslator" />
		<entry key="simpleTypeDefaultTranslatorDefault"
			value="com.ibm.btt.tools.migration.impl.JavaSimpleTypeTranslator" />
		<entry key="simpleRule"
			value="com.ibm.btt.tools.migration.impl.JavaSimpleConfigBean" />
		<entry key="complexRule"
			value="com.ibm.btt.tools.migration.impl.JavaComplexConfigBean" />
	</map>

	<map id="Actions">
		<entry key="PackageDeclaration">
			<list Injection="value">
				<ref id="pkgTranslator1"
					refId="packageTranslatorDefault" />
				<!-- 	<ref id="pkgTranslator2"
					refId="packageTranslatorDefault" />
				-->
			</list>
		</entry>
		<entry key="ImportDeclaration">
			<list Injection="value">
				<ref id="iptTranslator1"
					refId="importTranslatorDefault" />
			</list>
		</entry>
		<entry key="ClassInstanceCreation">
			<list Injection="value">
				<ref id="cicTranslator1"
					refId="classInstanceCreationTranslatorDefault" />
			</list>
		</entry>
		<entry key="MethodInvocation">
			<list Injection="value">
				<ref id="miTranslator1"
					refId="methodInvocationTranslatorDefault" />
			</list>
		</entry>
		<entry key="TypeDeclaration">
			<list Injection="value">
				<ref id="typeTranslator1"
					refId="typeDeclarationTranslatorDefault" />
			</list>
		</entry>
		<entry key="SimpleType">
			<list Injection="value">
				<ref id="simpleTypeTranslator1"
					refId="simpleTypeDefaultTranslatorDefault" />
			</list>
		</entry>
	</map>

	<packageTranslatorDefault id="packageTranslatorDefault">
		<list Injection="ruleSet">
			<simpleRule oldItem="com.ibm.dse.samples.appl"
				newItem="com.ibm.btt.samples.appl" />
			<simpleRule oldItem="com.ibm.dse" newItem="com.ibm.btt" />
		</list>
	</packageTranslatorDefault>

	<importTranslatorDefault id="importTranslatorDefault">
		<list Injection="ruleSet">
			<simpleRule oldItem="com.ibm.dse" newItem="com.ibm.btt" />
			<simpleRule oldItem="com.ibm.dse.base.Context"
				newItem="com.ibm.btt.base.Context" />
		</list>
	</importTranslatorDefault>
	
	<classInstanceCreationTranslatorDefault
		id="classInstanceCreationTranslatorDefault">
		<list Injection="ruleSet">
			<complexRule oldClass="Context" newClass="ContextFactory"
				newMethod="createContext" />
			<complexRule oldClass="com.ibm.dse.base.Context"
				newClass="com.ibm.btt.base.ContextFactory"
				newMethod="createContext" />
		</list>
	</classInstanceCreationTranslatorDefault>

	<methodInvocationTranslatorDefault
		id="methodInvocationTranslatorDefault">
		<list Injection="ruleSet">
			<complexRule oldClass="Context" oldMethod="getContextNamed"
				newClass="ContextFactory" newMethod="getContextNamed" />
			<complexRule oldClass="com.ibm.dse.base.Context"
				oldMethod="getContextNamed"
				newClass="com.ibm.btt.base.ContextFactory"
				newMethod="getContextNamed" />
			<complexRule oldClass="Context" oldMethod="reset"
				newClass="ContextFactory" newMethod="reset" />
			<complexRule oldClass="com.ibm.dse.base.Context"
				oldMethod="reset" newClass="com.ibm.btt.base.ContextFactory"
				newMethod="reset" />
		</list>
	</methodInvocationTranslatorDefault>

	<typeDeclarationTranslatorDefault
		id="typeDeclarationTranslatorDefault">
		<list Injection="ruleSet">
			<simpleRule oldItem="DSEServerOperation"
				newItem="BTTServerOperation" type="superclass" />
			<simpleRule oldItem="com.ibm.dse.base.DSEServerOperation"
				newItem="com.ibm.btt.base.BTTServerOperation" type="superclass" />
			<simpleRule oldItem="DSEInterface" newItem="BTTInterface"
				type="interface" />
		</list>
	</typeDeclarationTranslatorDefault>
	
	<simpleTypeDefaultTranslatorDefault
		id="simpleTypeDefaultTranslatorDefault">
		<list Injection="ruleSet">
			<simpleRule oldItem="com.ibm.dse.Context"
				newItem="com.ibm.btt.Context"/>
		</list>
	</simpleTypeDefaultTranslatorDefault>
	
</javaRule>