package com.limegroup.gnutella.util; /** * Specialized class that uses special keywords for leaf routing * tables. */ public final class LeafConnection extends NewConnection { private final String DESCRIPTOR; /** * Constant keywork that is in ever standard leaf's QRP table. */ public static final String LEAF_KEYWORD = "LEAFKEYWORD"; /** * Constant alternate keyword for use in testing. */ public static final String ALT_LEAF_KEYWORD = "ALTLEAFKEYWORD"; public static LeafConnection createAltLeafConnection() { return new LeafConnection(new String[] {ALT_LEAF_KEYWORD}, 15, "ALT LEAF CONNECTION", false, true); } public static LeafConnection createWithKeywords(String[] keywords) { return new LeafConnection(keywords, 20, "LEAF CONNECTION", true, true); } public static LeafConnection createLeafConnection(boolean b) { return new LeafConnection(new String[0], 15, "LEAF_CONNECTION", false, b); } /** * Creates a new LeafConnection with the specified list of keywords, etc. */ private LeafConnection(String[] keywords, int connections, String descriptor, boolean addStandardKeyword, boolean requireMatches) { super(connections, requireMatches); for(int i=0; i<keywords.length; i++) { QRT.add(keywords[i]); } if(addStandardKeyword) { QRT.add(LEAF_KEYWORD); } DESCRIPTOR = descriptor; } public String toString() { return DESCRIPTOR+": "+QRT; } }