Skip to content

Commit 2d13edc

Browse files
committed
using mixins rather than contributions
1 parent 3cdc268 commit 2d13edc

16 files changed

+490
-303
lines changed

app/src/main/java/todoapp/app/viewmodels/dashboard/ToDoAppDashboard.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import org.apache.isis.applib.value.Blob;
3232

3333
import todoapp.app.services.export.ExportToWordService;
34-
import todoapp.dom.relativepriority.RelativePriorityContributions;
34+
import todoapp.dom.relativepriority.RelativePriorityService;
3535
import todoapp.dom.todoitem.ToDoItem;
3636
import todoapp.dom.todoitem.ToDoItems;
3737

@@ -50,7 +50,7 @@ public String title() {
5050
editing = Editing.DISABLED
5151
)
5252
@CollectionLayout(
53-
sortedBy = RelativePriorityContributions.Comparator.class
53+
sortedBy = RelativePriorityService.Comparator.class
5454
)
5555
public List<ToDoItem> getNotYetComplete() {
5656
return toDoItems.notYetCompleteNoUi();
@@ -73,7 +73,7 @@ public List<ToDoItem> getComplete() {
7373
public Blob exportToWordDoc() {
7474

7575
final List items = getNotYetComplete();
76-
Collections.sort(items, relativePriorityContributions.comparator());
76+
Collections.sort(items, relativePriorityService.comparator());
7777
return toDoItemsExportService.exportToWordDoc(items);
7878
}
7979
//endregion
@@ -86,7 +86,7 @@ public Blob exportToWordDoc() {
8686
private ExportToWordService toDoItemsExportService;
8787

8888
@javax.inject.Inject
89-
private RelativePriorityContributions relativePriorityContributions;
89+
private RelativePriorityService relativePriorityService;
9090

9191
//endregion
9292

app/src/main/java/todoapp/app/viewmodels/todoitem/ContentMappingServiceForToDoItem.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import org.apache.isis.applib.conmap.ContentMappingService;
3131

3232
import todoapp.app.viewmodels.todoitem.v1.ToDoItemV1_1;
33-
import todoapp.dom.similarto.SimilarToContributions;
33+
import todoapp.dom.similarto.SimilarToService;
3434
import todoapp.dom.todoitem.ToDoItem;
3535

3636
@DomainService(
@@ -79,7 +79,7 @@ public ToDoItemV1_1 newToDoItemV1_1(final ToDoItem toDoItem) {
7979
dto.setSubcategory(nameOf(toDoItem.getSubcategory()));
8080
dto.setCost(toDoItem.getCost());
8181
dto.setToDoItem(toDoItem);
82-
dto.setSimilarItems(similarToContributions.similarTo(toDoItem));
82+
dto.setSimilarItems(similarToService.similarTo(toDoItem));
8383

8484
return dto;
8585
}
@@ -89,6 +89,6 @@ private static String nameOf(final Enum<?> e) {
8989
}
9090

9191
@Inject
92-
SimilarToContributions similarToContributions;
92+
SimilarToService similarToService;
9393

9494
}

dom/src/main/java/todoapp/dom/categories/Categorized.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import todoapp.dom.todoitem.ToDoItem;
2222

2323
/**
24-
* Enables {@link UpdateCategoryContributions#updateCategory(Categorized, Category, Subcategory)} to be contributed to
24+
* Enables {@link Categorized_updateCategory#$$(Category, Subcategory)} to be contributed to
2525
* both the {@link ToDoItem} (entity).
2626
*/
2727
public interface Categorized {

dom/src/main/java/todoapp/dom/categories/UpdateCategoryContributions.java dom/src/main/java/todoapp/dom/categories/Categorized_updateCategory.java

+19-33
Original file line numberDiff line numberDiff line change
@@ -20,61 +20,47 @@
2020

2121
import java.util.List;
2222

23-
import org.apache.isis.applib.AbstractFactoryAndRepository;
2423
import org.apache.isis.applib.annotation.Action;
2524
import org.apache.isis.applib.annotation.ActionLayout;
26-
import org.apache.isis.applib.annotation.DomainService;
27-
import org.apache.isis.applib.annotation.NatureOfService;
25+
import org.apache.isis.applib.annotation.Mixin;
2826
import org.apache.isis.applib.annotation.Optionality;
2927
import org.apache.isis.applib.annotation.Parameter;
3028
import org.apache.isis.applib.annotation.SemanticsOf;
31-
import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
3229

33-
import todoapp.dom.todoitem.ToDoItems;
30+
@Mixin
31+
public class Categorized_updateCategory {
3432

35-
@DomainService(nature = NatureOfService.VIEW_CONTRIBUTIONS_ONLY)
36-
public class UpdateCategoryContributions extends AbstractFactoryAndRepository {
33+
private final Categorized categorized;
34+
35+
public Categorized_updateCategory(final Categorized categorized) {
36+
this.categorized = categorized;
37+
}
3738

38-
//region > updateCategory (contributed action)
3939

4040
@ActionLayout(
4141
describedAs = "Update category and subcategory"
4242
)
4343
@Action(semantics = SemanticsOf.IDEMPOTENT)
44-
public Categorized updateCategory(
45-
final Categorized item,
44+
public Categorized $$(
4645
final Category category,
4746
final @Parameter(optionality = Optionality.OPTIONAL) Subcategory subcategory) {
48-
item.setCategory(category);
49-
item.setSubcategory(subcategory);
50-
return item;
47+
categorized.setCategory(category);
48+
categorized.setSubcategory(subcategory);
49+
return categorized;
5150
}
52-
public Category default1UpdateCategory(
53-
final Categorized item) {
54-
return item != null? item.getCategory(): null;
51+
public Category default0$$() {
52+
return categorized != null? categorized.getCategory(): null;
5553
}
56-
public Subcategory default2UpdateCategory(
57-
final Categorized item) {
58-
return item != null? item.getSubcategory(): null;
54+
public Subcategory default1$$() {
55+
return categorized != null? categorized.getSubcategory(): null;
5956
}
6057

61-
public List<Subcategory> choices2UpdateCategory(
62-
final Categorized item, final Category category) {
58+
public List<Subcategory> choices1$$(final Category category) {
6359
return Subcategory.listFor(category);
6460
}
6561

66-
public String validateUpdateCategory(
67-
final Categorized item, final Category category, final Subcategory subcategory) {
62+
public String validate$$(
63+
final Category category, final Subcategory subcategory) {
6864
return Subcategory.validate(category, subcategory);
6965
}
70-
//endregion
71-
72-
//region > injected services
73-
@javax.inject.Inject
74-
private ToDoItems toDoItems;
75-
76-
@javax.inject.Inject
77-
private QueryResultsCache queryResultsCache;
78-
//endregion
79-
8066
}

dom/src/main/java/todoapp/dom/relativepriority/RelativePriorityContributions.java

-213
This file was deleted.

0 commit comments

Comments
 (0)