Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import dagger.assisted.AssistedFactory;
import de.ii.xtraplatform.base.domain.LogContext;
import de.ii.xtraplatform.entities.domain.AbstractEntityFactory;
import de.ii.xtraplatform.entities.domain.AutoEntity;
import de.ii.xtraplatform.entities.domain.AutoEntityFactory;
import de.ii.xtraplatform.entities.domain.EntityData;
import de.ii.xtraplatform.entities.domain.EntityDataBuilder;
import de.ii.xtraplatform.entities.domain.EntityFactory;
Expand All @@ -22,14 +24,20 @@
import de.ii.xtraplatform.features.domain.ImmutableProviderCommonData;
import de.ii.xtraplatform.tiles.domain.ImmutableMinMax;
import de.ii.xtraplatform.tiles.domain.ImmutableTileProviderFeaturesData;
import de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeatures;
import de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeatures.Builder;
import de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeaturesDefaults;
import de.ii.xtraplatform.tiles.domain.TileProviderData;
import de.ii.xtraplatform.tiles.domain.TileProviderFeaturesData;
import de.ii.xtraplatform.tiles.domain.TilesetFeatures;
import java.util.AbstractMap.SimpleEntry;
import java.util.AbstractMap.SimpleImmutableEntry;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
import java.util.function.Consumer;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.slf4j.Logger;
Expand All @@ -39,7 +47,7 @@
@AutoBind
public class TileProviderFeaturesFactory
extends AbstractEntityFactory<TileProviderFeaturesData, TileProviderFeatures>
implements EntityFactory {
implements EntityFactory, AutoEntityFactory {

private static final Logger LOGGER = LoggerFactory.getLogger(TileProviderFeaturesFactory.class);

Expand Down Expand Up @@ -71,6 +79,11 @@ public Optional<String> subType() {
return Optional.of(TileProviderFeaturesData.ENTITY_SUBTYPE);
}

@Override
public Optional<AutoEntityFactory> auto() {
return Optional.of(this);
}

@Override
public Class<? extends PersistentEntity> entityClass() {
return TileProviderFeatures.class;
Expand Down Expand Up @@ -207,6 +220,40 @@ private TileProviderFeaturesData generateTilesetsIfNecessary(TileProviderFeature
.build();
}

@Override
public <T extends AutoEntity> Map<String, String> check(T entityData) {
return Map.of();
}

@Override
public <T extends AutoEntity> Map<String, List<String>> analyze(T entityData) {
return Map.of();
}

@Override
public <T extends AutoEntity> T generate(
T entityData, Map<String, List<String>> types, Consumer<Map<String, List<String>>> tracker) {
if (!(entityData instanceof TileProviderFeaturesData)) {
return entityData;
}

TileProviderFeaturesData data = (TileProviderFeaturesData) entityData;

Map<String, TilesetFeatures> collections =
types.values().stream()
.flatMap(Collection::stream)
.map(
type -> {
ImmutableTilesetFeatures collection = new Builder().id(type).build();

return new SimpleImmutableEntry<>(type, collection);
})
.collect(ImmutableMap.toImmutableMap(Entry::getKey, Entry::getValue));

return (T)
new ImmutableTileProviderFeaturesData.Builder().from(data).tilesets(collections).build();
}

@AssistedFactory
public interface TileProviderFeaturesFactoryAssisted
extends FactoryAssisted<TileProviderFeaturesData, TileProviderFeatures> {
Expand Down