[uml] AbstractProject

Webel module:

Package/Namespace: 

UML element type:

OOE stereotypes:

Relationships
extends [Generalization]: 
implements [InterfaceRealization]: 
Relationships (inverse)
UML Diagram
Click on the UML diagram to view it in a lightbox image viewer. You may then zoom in (or just open the image in a new web browser tab using the Download Original link to view large diagrams).

UML modelling domain:

For each item (such as an @IBlock) managed by the project it offers a triplet of methods for use by subclasses. Example:

 
+getBlock():@IBlock[1]
 
#myBlock():@IBlock[1] [abstract!]
 
#newBlock($deltaSuffix, $info):@IBlock

The 'newBlock' method is a helper to that (optionally) supports implementation of myBlock() in subclasses. Such helpers always create via the factory. Some helpers use configuration option switches.

You don't have to use/show the block, but you do have to implement myBlock(), at least with a stub.

Webel: I could have implemented a default stub block in myBlock() here in, but then it is too easy to miss the requirement to reimplement it; leaving it abstract means IDEs like NetBeans know subclasses have to implement it ( "think about it").
Notes (policies)
Visit also