{"id":20190575,"url":"https://github.com/datomo/workflow_framework","last_synced_at":"2025-08-03T23:08:26.414Z","repository":{"id":83103021,"uuid":"218806108","full_name":"datomo/workflow_framework","owner":"datomo","description":null,"archived":false,"fork":false,"pushed_at":"2019-11-07T18:28:13.000Z","size":325,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-12T01:41:25.039Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datomo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-31T16:07:13.000Z","updated_at":"2019-11-07T18:28:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"21908880-2b0e-4d4b-a148-3d67f2458a91","html_url":"https://github.com/datomo/workflow_framework","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/datomo/workflow_framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datomo%2Fworkflow_framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datomo%2Fworkflow_framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datomo%2Fworkflow_framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datomo%2Fworkflow_framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datomo","download_url":"https://codeload.github.com/datomo/workflow_framework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datomo%2Fworkflow_framework/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268625009,"owners_count":24280188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T03:43:53.745Z","updated_at":"2025-08-03T23:08:26.387Z","avatar_url":"https://github.com/datomo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Workflow Framework\n\nThis framework is part of a exercise in the \"Software Architecture\" lecture at university Basel.\n\n## Exercise Answers\n\nThe answers to the given exercise can be found in\n[ExerciseAnswers](ExcerciseAnswers.md)\n\n## Additional Functionality Example for exe 4\n```java\n// Example use of our executable message in a simple workflow\nFixedSender\u003cMessage\u003cInteger, ExecutableBody\u003cString, String\u003e\u003e\u003e messageSender = new FixedSender\u003c\u003e(\n        new Message\u003c\u003e(0, new ExecutableBody\u003c\u003e(m -\u003e {\n                System.out.println(m);\n                sender.start();\n            }, \"this is the body\")));\nnew ExecutingReceiver\u003c\u003e(messageSender.getOutput(), \"Hello, World!\");\nmessageSender.start();\n```\n\n## UML\n\n[Link to the UML](package_workflow.png)\n\n\n## Getting Started\n\nSimple example of our workflow framework using Doubles.\n\n```java\nFixedSender\u003cDouble\u003e sender = new FixedSender\u003c\u003e(2.00, 3.00, 4.00, -3.5);\nMultiplier times2 = new Multiplier(sender.getOutput(),2);\nnew PrintReceiver\u003c\u003e(times2.getOutput());\nsender.start();\n```\n```java\n//output\n4.0\n6.0\n8.0\n-7.0\n```\n\nWorkflow nodes for other types can easily be implemented.\nFor instance:\n\n```java\npublic class Reverser extends Transformer\u003cString\u003e {\n\n    public Reverser(Output\u003cString\u003e input){\n        super(input);\n    }\n\n    @Override\n    protected String transform(String value) {\n        return new StringBuilder(value).reverse().toString();\n    }\n}\n```\n\nMore elaborate example can be found in [main](src/ch/gangoffour/workflow/main/Workflow.java)\n\n### Prerequisites\n\nTo run the program java 8 is required.\n\n\n### Caution\n\nThis framework is mostly barebones at the moment so dont expect too much functionality.\n\n## Built With\n\n* [Java 8](https://www.oracle.com/technetwork/java/javase/overview/java8-2100321.html) - Java Language JDK version 8\n\n\n\n## Authors\n\n* **Isabel Geissmann** - [isabelge](https://github.com/isabelge)\n* **Jannik Jaberg** - [cptunderground](https://github.com/cptunderground)\n* **Rik de Graaff** - [overacter](https://github.com/overacter)\n* **David Lengweiler** - [datomo](https://github.com/datomo)\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatomo%2Fworkflow_framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatomo%2Fworkflow_framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatomo%2Fworkflow_framework/lists"}