class AssignmentLevelSurtQueueAssignmentPolicy extends
        SurtAuthorityQueueAssignmentPolicy {
    private static final long serialVersionUID = -1533545293624791702L;

    @Override
    public String getClassKey(CrawlURI curi) {<FILL_FUNCTION_BODY>}

}

        if(getDeferToPrevious() && !StringUtils.isEmpty(curi.getClassKey())) {
	    return curi.getClassKey();
	}

	UURI basis = curi.getPolicyBasisUURI();
	String candidate =  super.getClassKey(curi);
        candidate = PublicSuffixes.reduceSurtToAssignmentLevel(candidate);

	if(!StringUtils.isEmpty(getForceQueueAssignment())) {
	    candidate = getForceQueueAssignment();
	}

	// all whois urls in the same queue
	if (curi.getUURI().getScheme().equals("whois")) {
	    return "whois...";
	}

	if(StringUtils.isEmpty(candidate)) {
	    return DEFAULT_CLASS_KEY;
	}
	if(getParallelQueues()>1) {
	    int subqueue = getSubqueue(basis,getParallelQueues());
	    if (subqueue>0) {
		candidate += "+"+subqueue;
	    }
	}

        return candidate; 
    
<methods>public non-sealed void <init>() <variables>private static final long serialVersionUID