"inherited abstract " + inherited + " is not made concrete in " + this.getName(), inherited.getSourceLocation(), this.getSourceLocation());
WeaverMessages.format(WeaverMessages.POINCUT_NOT_CONCRETE,inherited,this.getName()), inherited.getSourceLocation(), this.getSourceLocation());
	public List getExposedPointcuts() {		List ret = new ArrayList();		if (getSuperclass() != null) ret.addAll(getSuperclass().getExposedPointcuts());				for (Iterator i = Arrays.asList(getDeclaredInterfaces()).iterator(); i.hasNext(); ) {			ResolvedTypeX t = (ResolvedTypeX)i.next();			addPointcutsResolvingConflicts(ret, Arrays.asList(t.getDeclaredPointcuts()), false);		}		addPointcutsResolvingConflicts(ret, Arrays.asList(getDeclaredPointcuts()), true);		for (Iterator i = ret.iterator(); i.hasNext(); ) {			ResolvedPointcutDefinition inherited = (ResolvedPointcutDefinition)i.next();//			System.err.println("looking at: " + inherited + " in " + this);//			System.err.println("            " + inherited.isAbstract() + " in " + this.isAbstract());			if (inherited.isAbstract()) {				if (!this.isAbstract()) {					getWorld().showMessage(IMessage.ERROR,						"inherited abstract " + inherited + 						" is not made concrete in " + this.getName(),						inherited.getSourceLocation(), this.getSourceLocation());				}			}		}								return ret;	}