Move UML/ directory and Architecture.md from Docs/ to docs/. Rename Architecture.md to UML_ARCHITECTURE.md to avoid collision with existing docs/ARCHITECTURE.md (docs organization file). Update all references in README.md, CONTRIBUTING.md, CLAUDE.md, and the architecture file itself. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
451 lines
8.0 KiB
HTML
451 lines
8.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>TemplateMethodDetector</title>
|
|
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,300italic,400italic,700italic|Source+Code+Pro:300,400,700' rel='stylesheet' type='text/css'>
|
|
<link rel="stylesheet" href="../assets/css/bootstrap.css">
|
|
<link rel="stylesheet" href="../assets/css/jquery.bonsai.css">
|
|
<link rel="stylesheet" href="../assets/css/main.css">
|
|
<link rel="stylesheet" href="../assets/icon-font/icons.css">
|
|
<script type="text/javascript" src="../assets/js/jquery-2.1.0.min.js"></script>
|
|
<script type="text/javascript" src="../assets/js/bootstrap.js"></script>
|
|
<script type="text/javascript" src="../assets/js/jquery.bonsai.js"></script>
|
|
<script type="text/javascript" src="../assets/js/imageMapResizer.min.js"></script>
|
|
|
|
</head>
|
|
<body>
|
|
<div>
|
|
|
|
<!-- Name Title -->
|
|
|
|
<h1>TemplateMethodDetector</h1>
|
|
|
|
<!-- Type and Stereotype -->
|
|
|
|
<section style="margin-top: .5em;">
|
|
<span class="alert alert-info">
|
|
<span class="node-icon staruml-icon icon-UMLClass"></span>
|
|
UMLClass
|
|
</span>
|
|
|
|
</section>
|
|
|
|
<!-- Path -->
|
|
|
|
<section style="margin-top: 10px">
|
|
|
|
|
|
|
|
|
|
<span class="label label-info"><a href='cf9c8b720f3815adeccaf3ef6e48c6c4.html'><span class='node-icon staruml-icon icon-Project'></span>Skill Seekers</a></span>
|
|
|
|
<span>::</span>
|
|
<span class="label label-info"><a href='6a4361334e8b649314ed681b9e6798c3.html'><span class='node-icon staruml-icon icon-UMLModel'></span>skill_seekers</a></span>
|
|
|
|
<span>::</span>
|
|
<span class="label label-info"><a href='136e9c05d710dc4dc71692abb7b4072c.html'><span class='node-icon staruml-icon icon-UMLPackage'></span>Analysis</a></span>
|
|
|
|
<span>::</span>
|
|
<span class="label label-info"><a href='30a6785552ff78bf2d4a2b56fe89bd41.html'><span class='node-icon staruml-icon icon-UMLClass'></span>TemplateMethodDetector</a></span>
|
|
|
|
</section>
|
|
|
|
<!-- Diagram -->
|
|
|
|
|
|
|
|
<!-- Description -->
|
|
|
|
|
|
<section>
|
|
<h3>Description</h3>
|
|
<div>
|
|
|
|
<p>Detects Template Method pattern. Template Method defines skeleton of algorithm in base class, letting subclasses override specific steps without changing structure. Detection: Surface (Abstract/Base class with subclasses), Deep (hook methods like prepare/validate/finalize + abstract methods + subclass implementations).</p>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
|
|
<!-- Specification -->
|
|
|
|
|
|
|
|
<!-- Directed Relationship -->
|
|
|
|
|
|
|
|
<!-- Undirected Relationship -->
|
|
|
|
|
|
|
|
<!-- Classifier -->
|
|
|
|
|
|
|
|
|
|
<section class="element-list">
|
|
<h3>Generalized Elements</h3>
|
|
<ul class="nav nav-list">
|
|
|
|
<li><a href='c62ddcef75e050f272ff1343b9b3aea8.html'><span class='node-icon staruml-icon icon-UMLClass'></span>BasePatternDetector</a></li>
|
|
|
|
</ul>
|
|
</section>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Interface -->
|
|
|
|
|
|
|
|
<!-- Component -->
|
|
|
|
|
|
|
|
<!-- Node -->
|
|
|
|
|
|
|
|
<!-- Actor -->
|
|
|
|
|
|
|
|
<!-- Use Case -->
|
|
|
|
|
|
|
|
<!-- Template Parameters -->
|
|
|
|
|
|
|
|
<!-- Literals -->
|
|
|
|
|
|
|
|
<!-- Attributes -->
|
|
|
|
|
|
<section>
|
|
<h3>Attributes</h3>
|
|
<table class="table table-striped table-bordered">
|
|
<tr>
|
|
<th>Visibility</th>
|
|
<th>Name</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>public</td>
|
|
<td><a href="df6817e27d1b4d59876eb739917fdaeb.html">pattern_type</a></td>
|
|
<td>str </td>
|
|
<td></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>public</td>
|
|
<td><a href="ac2032ad95957ef4b6cee6bfec57477c.html">category</a></td>
|
|
<td>str </td>
|
|
<td></td>
|
|
</tr>
|
|
|
|
</table>
|
|
</section>
|
|
|
|
|
|
<!-- Operations -->
|
|
|
|
|
|
<section>
|
|
<h3>Operations</h3>
|
|
<table class="table table-striped table-bordered">
|
|
<tr>
|
|
<th>Visibility</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>public</td>
|
|
<td><a href="8e52d8383b7e54c6388b8ca43814fd42.html">detect_surface()</a></td>
|
|
<td></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>public</td>
|
|
<td><a href="6ca8230b4e6914468315588a78adfdc1.html">detect_deep()</a></td>
|
|
<td></td>
|
|
</tr>
|
|
|
|
</table>
|
|
</section>
|
|
|
|
|
|
<!-- Receptions -->
|
|
|
|
|
|
|
|
<!-- Extension Points -->
|
|
|
|
|
|
|
|
<!-- Parameters -->
|
|
|
|
|
|
|
|
<!-- Diagrams -->
|
|
|
|
|
|
|
|
|
|
<!-- Behavior -->
|
|
|
|
|
|
|
|
<!-- Action -->
|
|
|
|
|
|
|
|
<!-- Interaction -->
|
|
|
|
|
|
|
|
<!-- CombinedFragment -->
|
|
|
|
|
|
|
|
<!-- Activity -->
|
|
|
|
|
|
|
|
<!-- State Machine -->
|
|
|
|
|
|
|
|
<!-- State Machine -->
|
|
|
|
|
|
|
|
<!-- State -->
|
|
|
|
|
|
|
|
<!-- Vertex -->
|
|
|
|
|
|
|
|
<!-- Transition -->
|
|
|
|
|
|
|
|
<!-- Data Model (ERD) -->
|
|
|
|
|
|
|
|
<!-- Columns (ERD) -->
|
|
|
|
|
|
|
|
<!-- Related Entities (ERD) -->
|
|
|
|
|
|
|
|
<!-- Data Flows (DFD) -->
|
|
|
|
|
|
|
|
<!-- Flows (Flowchart) -->
|
|
|
|
|
|
|
|
<!-- Properties -->
|
|
|
|
<section>
|
|
<h3>Properties</h3>
|
|
|
|
<table class="table table-striped table-bordered">
|
|
<tr>
|
|
<th width="50%">Name</th>
|
|
<th width="50%">Value</th>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
<td>name</td>
|
|
<td>TemplateMethodDetector</td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
<td>stereotype</td>
|
|
<td><span class='label label-info'>null</span></td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
<td>visibility</td>
|
|
<td>public</td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
<td>isAbstract</td>
|
|
<td><span class='label label-info'>false</span></td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
<td>isFinalSpecialization</td>
|
|
<td><span class='label label-info'>false</span></td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
<td>isLeaf</td>
|
|
<td><span class='label label-info'>false</span></td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
<td>isActive</td>
|
|
<td><span class='label label-info'>false</span></td>
|
|
</tr>
|
|
|
|
|
|
|
|
</table>
|
|
|
|
</section>
|
|
|
|
<!-- Tags -->
|
|
|
|
|
|
|
|
<!-- Constraints, Dependencies, Dependants -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Relationships -->
|
|
|
|
|
|
|
|
<section class="element-list">
|
|
<h3>Relationships</h3>
|
|
<ul class="nav nav-list">
|
|
|
|
<li><a href='26061f7c81c44b51584c9ecc23969809.html'><span class='node-icon staruml-icon icon-UMLGeneralization'></span>(TemplateMethodDetector→BasePatternDetector)</a></li>
|
|
|
|
</ul>
|
|
</section>
|
|
|
|
|
|
|
|
<!-- Owned Elements -->
|
|
|
|
|
|
|
|
<section class="element-list">
|
|
<h3>Owned Elements</h3>
|
|
<ul class="nav nav-list">
|
|
|
|
<li><a href='26061f7c81c44b51584c9ecc23969809.html'><span class='node-icon staruml-icon icon-UMLGeneralization'></span>(TemplateMethodDetector→BasePatternDetector)</a></li>
|
|
|
|
</ul>
|
|
</section>
|
|
|
|
|
|
|
|
<!-- Diagrams -->
|
|
|
|
|
|
|
|
<section class="element-list">
|
|
<h3>Diagrams</h3>
|
|
<ul class="nav nav-list">
|
|
|
|
<li><a href='40a3cc19e818cfc3b0828c8a326d9171.html'><span class='node-icon staruml-icon icon-UMLClassDiagram'></span>Analysis</a></li>
|
|
|
|
</ul>
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<!-- Image Map Resizer (https://github.com/davidjbradshaw/image-map-resizer) -->
|
|
<script>
|
|
imageMapResize();
|
|
</script>
|
|
</div>
|
|
</body>
|
|
</html>
|