Skip to content

Commit

Permalink
#28 Adapt Chronograph for Passage Operator
Browse files Browse the repository at this point in the history
Introduce Data interface
Rename DataRegistry to PlainData

Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
  • Loading branch information
ruspl-afed committed May 16, 2020
1 parent b444e77 commit 861159b
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 3 deletions.
@@ -0,0 +1,32 @@
/*******************************************************************************
* Copyright (c) 2020 ArSysOp
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0/.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* ArSysOp - initial API and implementation
*******************************************************************************/
package org.eclipse.chronograph.internal.api;

import java.util.List;
import java.util.function.Predicate;

/**
*
* Encapsulates the storage of objects to be displayed
*
*/
public interface Data {

/**
*
* @param predicate the predicate to filter the bricks
* @return
*/
List<Brick> query(Predicate<Brick> predicate);

}
Expand Up @@ -19,9 +19,11 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Predicate;
import java.util.stream.Collectors;

import org.eclipse.chronograph.internal.api.Brick;
import org.eclipse.chronograph.internal.api.Data;
import org.eclipse.chronograph.internal.api.Group;
import org.eclipse.chronograph.internal.api.Section;
import org.eclipse.chronograph.internal.api.providers.BrickContentProvider;
Expand All @@ -34,16 +36,15 @@
* Class intended to aggregate data
*
*/
//FIXME extract interface
public class DataRegistry {
public class PlainData implements Data {

private final ContainerProvider provider;
private final Map<String, Section> sectionsById = new HashMap<>();
private final Map<String, List<Group>> groupsBySection = new HashMap<>();
private final Map<Group, List<Group>> subGroupsBygroup = new HashMap<>();
private final Map<Group, List<Brick>> bricksBySubgroup = new HashMap<>();

public DataRegistry(ContainerProvider provider) {
public PlainData(ContainerProvider provider) {
this.provider = provider;
}

Expand Down Expand Up @@ -133,4 +134,12 @@ public List<Brick> getBricks() {
.flatMap(List::stream) //
.collect(Collectors.toList());
}

@Override
public List<Brick> query(Predicate<Brick> predicate) {
return bricksBySubgroup.values().stream() //
.flatMap(List::stream) //
.filter(predicate) //
.collect(Collectors.toList());
}
}

0 comments on commit 861159b

Please sign in to comment.