dgk/django-business-logic

View on GitHub
docs/static/uml/Program.svg

Summary

Maintainability
Test Coverage
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="274.33056640625" height="722"><defs/><g><g transform="translate(-529,2) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="546" y="354" width="254.33056640625" height="77" opacity="0.2"/></g><g transform="translate(-529,2) scale(1,1)"><rect fill="#ffffff" stroke="none" x="539" y="347" width="254.33056640625" height="77"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 347 L 793.33056640625 347 L 793.33056640625 424 L 539 424 L 539 347 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 372 L 793.33056640625 372" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="615.948974609375" y="366.5">ProgramInterface</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="389.5">+title: String {unique}</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="404.5">+environment: ExecutionEnvironment[0..1]</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="419.5">+arguments: ProgramArgument[1..*]</text></g></g><g transform="translate(-529,2) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="546" y="211" width="254.33056640625" height="77" opacity="0.2"/></g><g transform="translate(-529,2) scale(1,1)"><rect fill="#ffffff" stroke="none" x="539" y="204" width="254.33056640625" height="77"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 204 L 793.33056640625 204 L 793.33056640625 281 L 539 281 L 539 204 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 229 L 793.33056640625 229" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="641.2412109375" y="223.5">Program</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="246.5">+title</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="261.5">+code</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="276.5">+environment: ExecutionEnvironment[0..1]</text></g></g><g transform="translate(-529,2) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="546" y="15" width="254.33056640625" height="130" opacity="0.2"/></g><g transform="translate(-529,2) scale(1,1)"><rect fill="#ffffff" stroke="none" x="539" y="8" width="254.33056640625" height="130"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 8 L 793.33056640625 8 L 793.33056640625 138 L 539 138 L 539 8 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 33 L 793.33056640625 33" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 116 L 793.33056640625 116" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="619.560791015625" y="27.5">ProgramVersion</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="50.5">+title: String</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="65.5">+description: String</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="80.5">+environment: ExecutionEnvironment[0..1]</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="95.5">+entry_point: Node</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="110.5">+is_default: Boolean = false</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="133.5">+execute()</text></g></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 666 282 L 666 346" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="#000000" stroke="none" d="M 661.790482243984 335.83732514237585 L 666 346 L 670.209517756016 335.83732514237585 L 666 324"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 661.790482243984 335.83732514237585 L 666 346 L 670.209517756016 335.83732514237585 L 666 324 L 661.790482243984 335.83732514237585" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 666 139 L 666 203" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="#000000" stroke="none" d="M 661.790482243984 192.83732514237585 L 666 203 L 670.209517756016 192.83732514237585 L 666 181"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 661.790482243984 192.83732514237585 L 666 203 L 670.209517756016 192.83732514237585 L 666 181 L 661.790482243984 192.83732514237585" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="546" y="497" width="254.33056640625" height="77" opacity="0.2"/></g><g transform="translate(-529,2) scale(1,1)"><rect fill="#ffffff" stroke="none" x="539" y="490" width="254.33056640625" height="77"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 490 L 793.33056640625 490 L 793.33056640625 567 L 539 567 L 539 490 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 515 L 793.33056640625 515" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="613.060791015625" y="509.5">ProgramArgument</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="532.5">+name: String</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="547.5">+content_type: ContentType</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="562.5">+fields: ProgramArgumentField</text></g></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 666 489 L 666 425" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="#000000" stroke="none" d="M 670.209517756016 435.16267485762415 L 666 425 L 661.790482243984 435.16267485762415 L 666 447"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 670.209517756016 435.16267485762415 L 666 425 L 661.790482243984 435.16267485762415 L 666 447 L 670.209517756016 435.16267485762415" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="616.5" y="450.5">+arguments</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="668.5" y="473.5">1..*</text></g></g><g transform="translate(-529,2) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="546" y="640" width="254.33056640625" height="77" opacity="0.2"/></g><g transform="translate(-529,2) scale(1,1)"><rect fill="#ffffff" stroke="none" x="539" y="633" width="254.33056640625" height="77"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 633 L 793.33056640625 633 L 793.33056640625 710 L 539 710 L 539 633 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 539 658 L 793.33056640625 658" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="598.97216796875" y="652.5">ProgramArgumentField</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="675.5">+name: String</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="690.5">+title: String</text></g></g><g transform="translate(-529,2) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="544" y="705.5">+variable_definition: VariableDefinition</text></g></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 666 632 L 666 568" stroke-miterlimit="10"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="#000000" stroke="none" d="M 670.209517756016 578.1626748576241 L 666 568 L 661.790482243984 578.1626748576241 L 666 590"/></g><g transform="translate(-529,2) scale(1,1)"><path fill="none" stroke="#000000" d="M 670.209517756016 578.1626748576241 L 666 568 L 661.790482243984 578.1626748576241 L 666 590 L 670.209517756016 578.1626748576241" stroke-miterlimit="10"/></g></g></svg>