if (ChainBuilderAgent.DEBUG)
if (ChainBuilderAgent.DEBUG > 3)
	private void finishModuleTargetLink(ModuleLinkTarget n) {		//first, if input and output are the same, barf.		if (n.getModuleView() == moduleLinkOriginTarget.getModuleView()) {			showSelfLinkError();			cancelModuleTargetLink();			return;		}		else if (n.isInputLinkTarget() && 					moduleLinkOriginTarget.isInputLinkTarget()) {			canvas.setStatusLabel(NO_INPUT_INPUT_LINKS);			cancelModuleTargetLink();			return;		}		else if (n.isOutputLinkTarget() && 					moduleLinkOriginTarget.isOutputLinkTarget()) {		    canvas.setStatusLabel(NO_OUTPUT_OUTPUT_LINKS);			cancelModuleTargetLink();		    return;		}		else if (linkLayer.				findModuleLink(n.getModuleView(),						moduleLinkOriginTarget.getModuleView()) != null) {			canvas.setStatusLabel(NO_MULTIPLE_MODULE_LINKS);			cancelModuleTargetLink();			return;		}					if (ChainBuilderAgent.DEBUG)				System.err.println("finishing module target link");				// ok. now, create links and make sure we have no cycles.		// get inputs & get outputs		Collection  params1 = moduleLinkOriginTarget.getParameters();		Collection params2 = n.getParameters();		// set other end point of link.				moduleLink.setTarget(n);		if (finishModuleTargetLink(params1,params2) == false) {			showNoLegalLinksBetwenModulesError();			cancelModuleTargetLink();			return;		}				if (foundCycle() == true) {			canvas.setStatusLabel(NO_CYCLES);			cancelModuleTargetLink();		}		else {			moduleLink.setPickable(true);			cleanUpModuleTargetLink();		}		moduleLinkOriginTarget = null;		if (ChainBuilderAgent.DEBUG)			System.err.println("ending finsihModuleTargetLink ModuleLinkTarget. NOT_LINKING");		linkState = NOT_LINKING;	}