if (type instanceof NormalListType) { genFactoryMakeEmptyList(returnTypeName, methodName, empty); genFactoryMakeSingletonList(returnTypeName, methodName, paramTypeName, empty); genFactoryMakeManyList(returnTypeName, methodName, paramTypeName); genFactoryMakeManyTermList(returnTypeName, methodName, proto); } else if (type instanceof SeparatedListType) { SeparatedListType lType = (SeparatedListType) type; genFactoryMakeEmptyList(returnTypeName, methodName, empty); genFactoryMakeSingletonSeparatedList(returnTypeName, methodName, paramTypeName, lType, empty); genFactoryMakeManySeparatedList(returnTypeName, methodName, paramTypeName, lType); genFactoryMakeManySeparatedTermList(returnTypeName, methodName, proto, lType); genFactoryReverseSeparated(lType, methodName); genFactoryConcatSeparated(lType, methodName); } } } }
if (type instanceof NormalListType) { genFactoryMakeEmptyList(returnTypeName, methodName, empty); genFactoryMakeSingletonList( returnTypeName, methodName, paramTypeName, empty); genFactoryMakeManyList( listType.getElementType(), returnTypeName, methodName, paramTypeName); genFactoryMakeManyTermList(returnTypeName, methodName, proto); } else if (type instanceof SeparatedListType) { SeparatedListType lType = (SeparatedListType) type; genFactoryMakeEmptyList(returnTypeName, methodName, empty); genFactoryMakeSingletonSeparatedList( returnTypeName, methodName, paramTypeName, lType, empty); genFactoryMakeManySeparatedList( lType.getElementType(), returnTypeName, methodName, paramTypeName, lType); genFactoryMakeManySeparatedTermList( returnTypeName, methodName, proto, lType); genFactoryReverseSeparated(lType, methodName); genFactoryConcatSeparated(lType, methodName); } } } }
	private void genFactoryMakeLists(ADT api) {		Iterator types = api.typeIterator();		while (types.hasNext()) {			Type type = (Type) types.next();			if (type instanceof ListType) {				ListType listType = (ListType) type;				JavaGenerationParameters params = getJavaGenerationParameters();				String returnTypeName = TypeGenerator.qualifiedClassName(params, type);				String methodName = "make" + TypeGenerator.className(type);				String paramTypeName = TypeGenerator.qualifiedClassName(params, listType.getElementType());				String empty = emptyListVariable(type);				String proto = protoListVariable(type);				if (type instanceof NormalListType) {					genFactoryMakeEmptyList(returnTypeName, methodName, empty);					genFactoryMakeSingletonList(returnTypeName, methodName, paramTypeName, empty);					genFactoryMakeManyList(returnTypeName, methodName, paramTypeName);					genFactoryMakeManyTermList(returnTypeName, methodName, proto);				}				else if (type instanceof SeparatedListType) {					SeparatedListType lType = (SeparatedListType) type;					genFactoryMakeEmptyList(returnTypeName, methodName, empty);					genFactoryMakeSingletonSeparatedList(returnTypeName, methodName, paramTypeName, lType, empty);					genFactoryMakeManySeparatedList(returnTypeName, methodName, paramTypeName, lType);					genFactoryMakeManySeparatedTermList(returnTypeName, methodName, proto, lType);					genFactoryReverseSeparated(lType, methodName);					genFactoryConcatSeparated(lType, methodName);				}			}		}	}