private void buildClasses() {
        if (_classes == null) {
            _classes = new HashMap();
        }

        PeerGenSettings peergenset;
        ProxyGenSettings proxygenset;

        Iterator iclasses;
        Iterator it = _project.getPeerGenSettings();
        while (it.hasNext()) {
            peergenset = (PeerGenSettings) it.next();
            iclasses = peergenset.getClassNames();
            while (iclasses.hasNext()) {
                String className = (String) iclasses.next();
                ProjectClass projectclass;
                if (_classes.containsKey(className) == false) {
                    projectclass = new ProjectClass(className);
                    _classes.put(className, projectclass);
                } else {
                    projectclass = (ProjectClass) _classes.get(className);
                }
                //note.this assumes that classes may not be
                //owned by more than one peergenset or
                //proxygenset.
                projectclass.getProjectSettingsAdapter().setPeerGenSettings(peergenset);
            }
        }
        it = _project.getProxyGenSettings();
        while (it.hasNext()) {
            proxygenset = (ProxyGenSettings) it.next();
            iclasses = proxygenset.getClassNames();
            while (iclasses.hasNext()) {
                String className = (String) iclasses.next();
                ProjectClass projectclass;
                if (_classes.containsKey(className) == false) {
                    projectclass = new ProjectClass(className);
                    _classes.put(className, projectclass);
                } else {
                    projectclass = (ProjectClass) _classes.get(className);
                }
                //note.this assumes that classes may not be
                //owned by more than one peergenset or
                //proxygenset.
                projectclass.getProjectSettingsAdapter().setProxyGenSettings(proxygenset);
            }
        }
    }