FileDocCategorySizeDatePackage
NameGenerator.javaAPI DocJava SE 5 API2928Fri Aug 26 14:56:56 BST 2005java.beans

NameGenerator

public class NameGenerator extends Object
A utility class which generates unique names for object instances. The name will be a concatenation of the unqualified class name and an instance number.

For example, if the first object instance javax.swing.JButton is passed into instanceName then the returned string identifier will be "JButton0".

version
1.9 12/19/03
author
Philip Milne

Fields Summary
private Map
valueToName
private Map
nameToCount
Constructors Summary
public NameGenerator()

        valueToName = new IdentityHashMap();
        nameToCount = new HashMap();
    
Methods Summary
public static java.lang.Stringcapitalize(java.lang.String name)
Returns a String which capitalizes the first letter of the string.

 
	if (name == null || name.length() == 0) { 
	    return name; 
        }
	return name.substring(0, 1).toUpperCase() + name.substring(1);
    
public voidclear()
Clears the name cache. Should be called to near the end of the encoding cycle.

 
	valueToName.clear();
	nameToCount.clear();
    
public java.lang.StringinstanceName(java.lang.Object instance)
Returns a unique string which identifies the object instance. Invocations are cached so that if an object has been previously passed into this method then the same identifier is returned.

param
instance object used to generate string
return
a unique string representing the object

         
        if (instance == null) {
            return "null"; 
        }
        if (instance instanceof Class) {
            return unqualifiedClassName((Class)instance); 
        }
        else { 
            String result = (String)valueToName.get(instance); 
            if (result != null) { 
                return result; 
            }
            Class type = instance.getClass(); 
            String className = unqualifiedClassName(type); 

            Object size = nameToCount.get(className); 
            int instanceNumber = (size == null) ? 0 : ((Integer)size).intValue() + 1; 
            nameToCount.put(className, new Integer(instanceNumber)); 

            result = className + instanceNumber; 
            valueToName.put(instance, result); 
            return result; 
        }
    
public static java.lang.StringunqualifiedClassName(java.lang.Class type)
Returns the root name of the class.

 
        if (type.isArray()) {
            return unqualifiedClassName(type.getComponentType())+"Array"; 
        }
        String name = type.getName(); 
        return name.substring(name.lastIndexOf('.")+1);