throw new BCException("conflicting dominates orders");
ISourceLocation[] isls = new ISourceLocation[2]; isls[0]=orderer.getSourceLocation(); isls[1]=d.getSourceLocation(); Message m = new Message("conflicting declare precedence orderings for aspects: "+ aspect1.getName()+" and "+aspect2.getName(),null,true,isls); messageHandler.handleMessage(m);
	public int compareByDominates(ResolvedTypeX aspect1, ResolvedTypeX aspect2) {		//System.out.println("dom compare: " + aspect1 + " with " + aspect2);		//System.out.println(crosscuttingMembersSet.getDeclareDominates());				//??? We probably want to cache this result.  This is order N where N is the		//??? number of dominates declares in the whole system.		//??? This method can be called a large number of times.		int order = 0;		for (Iterator i = crosscuttingMembersSet.getDeclareDominates().iterator(); i.hasNext(); ) {			DeclarePrecedence d = (DeclarePrecedence)i.next();			int thisOrder = d.compare(aspect1, aspect2);			//System.out.println("comparing: " + thisOrder + ": " + d);			if (thisOrder != 0) {				if (order != 0 && order != thisOrder) {					throw new BCException("conflicting dominates orders");				} else {					order = thisOrder;				}			}		}						return order; 	}