Skip to content

Package: RepositoryBrowserSupport

RepositoryBrowserSupport

nameinstructionbranchcomplexitylinemethod
RepositoryBrowserSupport(Function)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
getRoot()
M: 0 C: 18
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
lambda$new$0(Function)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%

Coverage

1: /*
2: * *********************************************************************************************************************
3: *
4: * blueMarine II: Semantic Media Centre
5: * http://tidalwave.it/projects/bluemarine2
6: *
7: * Copyright (C) 2015 - 2021 by Tidalwave s.a.s. (http://tidalwave.it)
8: *
9: * *********************************************************************************************************************
10: *
11: * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
12: * the License. You may obtain a copy of the License at
13: *
14: * http://www.apache.org/licenses/LICENSE-2.0
15: *
16: * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
17: * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations under the License.
19: *
20: * *********************************************************************************************************************
21: *
22: * git clone https://bitbucket.org/tidalwave/bluemarine2-src
23: * git clone https://github.com/tidalwave-it/bluemarine2-src
24: *
25: * *********************************************************************************************************************
26: */
27: package it.tidalwave.bluemarine2.model.impl.catalog.browser;
28:
29: import javax.annotation.Nonnull;
30: import javax.inject.Inject;
31: import java.util.function.Function;
32: import it.tidalwave.util.Finder;
33: import it.tidalwave.role.SimpleComposite;
34: import it.tidalwave.bluemarine2.model.MediaCatalog;
35: import it.tidalwave.bluemarine2.model.role.EntityBrowser;
36: import it.tidalwave.bluemarine2.model.spi.Entity;
37: import it.tidalwave.bluemarine2.model.spi.EntityWithRoles;
38: import static it.tidalwave.util.Parameters.r;
39: import static it.tidalwave.role.ui.Displayable._Displayable_;
40:
41: /***********************************************************************************************************************
42: *
43: * @author Fabrizio Giudici
44: *
45: **********************************************************************************************************************/
46: public class RepositoryBrowserSupport extends EntityWithRoles implements EntityBrowser
47: {
48: @Inject
49: private MediaCatalog catalog;
50:
51: @Nonnull
52: protected final SimpleComposite<? extends Entity> compositeForRootEntity;
53:
54: protected RepositoryBrowserSupport (@Nonnull final Function<MediaCatalog, Finder<? extends Entity>> finderFactory)
55: {
56: compositeForRootEntity = () -> finderFactory.apply(catalog).withContext(RepositoryBrowserSupport.this);
57: }
58:
59: @Override @Nonnull
60: public Entity getRoot()
61: {
62: // FIXME: review if first should be prioritised
63: return new EntityWithRoles(r(compositeForRootEntity, this.as(_Displayable_))); // FIXME: what about an
64: // EntityDecorator?
65: }
66: }