class AbstractQuotaNode implements QuotaChainNode {

    private QuotaChainNode next = EmptyObject.emptyQuotaChainNode;

    @Override
    public QuotaChainNode getNext() {
        return next;
    }

    @Override
    public void setNext(QuotaChainNode next) {
        if(next == null) return;
        if(!end()) getNext().setNext(next);
        else this.next = next;
    }

    @Override
    public String generateQuotaRequest() {<FILL_FUNCTION_BODY>}

    abstract StringBuilder builderSelf();
}

        StringBuilder builder = builderSelf();
        if(!this.end())
            builder.append(this.getNext().generateQuotaRequest());
        builder.deleteCharAt(builder.length() - 1);
        return builder.toString();
    
<no_super_class>