Skip to content

Refactor: split up feature model anomaly solver into different anomaly types#40

Merged
Elscrux merged 4 commits intorefactor/controllersfrom
refactor/feature-model-anomaly
Sep 8, 2023
Merged

Refactor: split up feature model anomaly solver into different anomaly types#40
Elscrux merged 4 commits intorefactor/controllersfrom
refactor/feature-model-anomaly

Conversation

@schweikart
Copy link
Copy Markdown
Member

No description provided.

@schweikart schweikart changed the title Refactor: split up feature model anomaly solver into different anomalies Refactor: split up feature model anomaly solver into different anomaly types Aug 1, 2023
@schweikart schweikart force-pushed the refactor/feature-model-anomaly branch from 94475db to b7f96fd Compare August 1, 2023 14:38
Copy link
Copy Markdown
Member

@Elscrux Elscrux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The separate feature model solvers are much better now. Since we are using the Webflux framework now, the only real overhead of this approach is the additional meta solver, which is valid and perhaps even desired.

Comment thread src/main/java/edu/kit/provideq/toolbox/meta/ProblemType.java Outdated
@schweikart
Copy link
Copy Markdown
Member Author

the only real overhead of this approach is the additional meta solver, which is valid and perhaps even desired.

We might even be able to get rid of that. We could implement an abstract SingletonProblemSolver extends ProblemSolver implements MetaSolver that implements the MetaSolver methods automatically. This could be used for problems with only a single solver.

@Elscrux
Copy link
Copy Markdown
Member

Elscrux commented Aug 6, 2023

We might even be able to get rid of that. We could implement an abstract SingletonProblemSolver extends ProblemSolver implements MetaSolver that implements the MetaSolver methods automatically. This could be used for problems with only a single solver.

I'd rather keep it as it is, as a SingletonProblemSolver kind of goes against the point of a MetaSolver which should handle multiple solvers. We might not want to create another solver for something like a dead features anomaly in feature models, but at least we support it.

@schweikart schweikart force-pushed the refactor/feature-model-anomaly branch 2 times, most recently from 8876daa to 729aa13 Compare September 2, 2023 20:04
@schweikart
Copy link
Copy Markdown
Member Author

I've fixed toolbox-web to use this new route scheme in ProvideQ/toolbox-web#25

@schweikart
Copy link
Copy Markdown
Member Author

I've finally gotten to revising this PR now 😅

If this works for you now, please merge this PR into refactor/controllers first so the tests over there pass as well. Then we can merge #39 as well :)

@schweikart schweikart requested a review from Elscrux September 7, 2023 10:56
* needed
*/
public record SubRoutineDefinition(ProblemType type, String url, String description) {
public record SubRoutineDefinition(ProblemType type, String description) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We still need the url as part of the record. See here for its usage: https://github.com/ProvideQ/toolbox-web/blob/develop/src/components/solvers/SolverPicker.tsx#L123

What we should do here instead is only require the problem type and description in the constructor for SubRoutineDefinition so the url part can be inferred from the type.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants