1 54 package org.logicalcobwebs.cglib.core; 55 56 import java.util.Set ; 57 58 68 public class DefaultNamingPolicy implements NamingPolicy { 69 public static final DefaultNamingPolicy INSTANCE = new DefaultNamingPolicy(); 70 71 public String getClassName(String prefix, String source, Object key, Predicate names) { 72 StringBuffer sb = new StringBuffer (); 73 sb.append((prefix != null) ? prefix : "org.logicalcobwebs.cglib.empty.Object"); 74 sb.append("$$"); 75 sb.append(source.substring(source.lastIndexOf('.') + 1)); 76 sb.append("ByCGLIB$$"); 77 sb.append(Integer.toHexString(key.hashCode())); 78 String base = sb.toString(); 79 String attempt = base; 80 int index = 2; 81 while (names.evaluate(attempt)) { 82 attempt = base + "-" + index++; 83 } 84 return attempt; 85 } 86 } 87 | Popular Tags |