PropertyNd one = assn.getRoleOne(); PropertyNd two = assn.getRoleTwo(); Collection props = assn.getProperties(); ObjectType oneot = m_symbols.getEmitted(m_symbols.lookup(one.getType())); ObjectType twoot = m_symbols.getEmitted(m_symbols.lookup(two.getType()));
if (assn.getProperties().size() == 0) { return; }
                public void onAssociation(AssociationNd assn) {		    PropertyNd one = assn.getRoleOne();		    PropertyNd two = assn.getRoleTwo();		    Collection props = assn.getProperties();		    ObjectType oneot =			m_symbols.getEmitted(m_symbols.lookup(one.getType()));		    ObjectType twoot =			m_symbols.getEmitted(m_symbols.lookup(two.getType()));		    if (props.size() > 0) {			Role rone = new Role(one.getName().getName(), oneot,					     one.isComponent(), false, false);			Role rtwo = new Role(two.getName().getName(), twoot,					     two.isComponent(), false, false);			ObjectType ot = m_symbols.getEmitted(linkName(assn));			ot.addProperty(rone);			Role revOne = new Role("~" + rone.getName(), ot,					       true, true, true);			rone.getType().addProperty(revOne);			rone.setReverse(revOne);			ot.addProperty(rtwo);			Role revTwo = new Role("~" + rtwo.getName(), ot,					       true, true, true);			rtwo.getType().addProperty(revTwo);			rtwo.setReverse(revTwo);			for (Iterator it = props.iterator(); it.hasNext(); ) {			    PropertyNd prop = (PropertyNd) it.next();			    define(ot, prop);			}			Link l = new Link(rone.getName(), rtwo, rone,					  one.isCollection(),					  one.isNullable());			m_links.add(l);			twoot.addProperty(l);			l = new Link(rtwo.getName(), rone, rtwo,				     two.isCollection(), two.isNullable());			oneot.addProperty(l);			m_links.add(l);		    } else {			Role rone = define(oneot, two);			Role rtwo = define(twoot, one);			if (rone != null && rtwo != null) {			    rone.setReverse(rtwo);			}		    }                }