80 likes | 233 Views
Schema Set getDefinedTypeNames() Set getUndefinedTypeNames() void addDef(Set def) void addUndef(Set undef, Set def). Decl void addUndef(Set undef, Set def). ElementDecl void addDef(Set def) void addUndef(Set undef, Set def). items. AttributeDecl. SchemaItem void addDef(Set def)
E N D
Schema Set getDefinedTypeNames() Set getUndefinedTypeNames() void addDef(Set def) void addUndef(Set undef, Set def) Decl void addUndef(Set undef, Set def) ElementDecl void addDef(Set def) void addUndef(Set undef, Set def) items AttributeDecl SchemaItem void addDef(Set def) void addUndef(Set undef, Set def) * adecls * SimpleType edecls 0..1 TypeDef void addDef(Set def) typeDef ComplexType void addDef(Set def) void addUndef(Set undef, Set def) attrs * Attribute name : String value : String void addDef(Set def) void addUndef(Set undef, Set def) content * SequenceGroup void addDef(Set def) void addUndef(Set undef, Set def) attrs * attrs * attrs
initially forgotten Schema Set getDefinedTypeNames() Set getUndefinedTypeNames() void addDef(Set def) void addUndef(Set undef, Set def) Decl void addUndef(Set undef, Set def) ElementDecl void addDef(Set def) void addUndef(Set undef, Set def) items AttributeDecl SchemaItem void addDef(Set def) void addUndef(Set undef, Set def) * adecls * SimpleType edecls 0..1 TypeDef void addDef(Set def) typeDef ComplexType void addDef(Set def) void addUndef(Set undef, Set def) attrs * Attribute name : String value : String void addDef(Set def) void addUndef(Set undef, Set def) content * SequenceGroup void addDef(Set def) void addUndef(Set undef, Set def) attrs * attrs * attrs
from Schema via ->TypeDef,attrs,* to Attribute Schema Set getDefinedTypeNames() Set getUndefinedTypeNames() void addDef(Set def) void addUndef(Set undef, Set def) Decl void addUndef(Set undef, Set def) items ElementDecl void addDef(Set def) AttributeDecl SchemaItem void addDef(Set def) void addUndef(Set undef, Set def) * adecls * SimpleType edecls 0..1 TypeDef void addDef(Set def) typeDef ComplexType void addDef(Set def) void addUndef(Set undef, Set def) attrs * Attribute name : String value : String void addDef(Set def) void addUndef(Set undef, Set def) content * SequenceGroup void addDef(Set def) void addUndef(Set undef, Set def) attrs * attrs * attrs
from Schema via ->Decl,attrs,* to Attribute Schema Set getDefinedTypeNames() Set getUndefinedTypeNames() void addDef(Set def) void addUndef(Set undef, Set def) Decl void addUndef(Set undef, Set def) items ElementDecl void addDef(Set def) AttributeDecl SchemaItem void addDef(Set def) void addUndef(Set undef, Set def) * adecls * SimpleType edecls 0..1 TypeDef void addDef(Set def) typeDef ComplexType void addDef(Set def) void addUndef(Set undef, Set def) attrs * Attribute name : String value : String void addDef(Set def) void addUndef(Set undef, Set def) content * SequenceGroup void addDef(Set def) void addUndef(Set undef, Set def) attrs * attrs * attrs
Interface and Secretin Aspectual Methods • interface: • traditional: cg, traversal strategy s • secret • will visit all objects according to s (how it does it is a secret)
Cross-cutting in AOP classes Aspect MoveTracking FigureElement pointcut moves(): FigureElement.setXY(…) Line.setP1(…) Line.setP2(…) Point.setX(…) Point.setY(…) after(): moves() {…} Line Point Enhancement defined in MoveTracking is spread in classes.
scattering and tanglingcross cutting • one color per concern. • tangling: same module has multiple colors. • scattering: same color is in multiple modules. • crosscutting: has its hooks into other implementations; the places it has to hook crosscut other modules.