1 2 3 4 5 6 7 8 9 10 11 12
package figures; aspect FactoryEnforcement { pointcut illegalNewFigElt(): call(FigureElement+.new(..)) && !withincode(* Figure.make*(..)); declare error: illegalNewFigElt(): "Illegal figure element constructor call."; }