public Set<BlockUri> getAvailableBlockFamilies() { return assetManager.getAvailableAssets(BlockFamilyDefinition.class) .stream().<Optional<BlockFamilyDefinition>>map(urn -> assetManager.getAsset(urn, BlockFamilyDefinition.class)) .filter(def -> def.isPresent() && def.get().isLoadable() && !def.get().isFreeform()) .map(r -> new BlockUri(r.get().getUrn())).collect(Collectors.toSet()); }
public Set<BlockUri> getFreeformBlockFamilies() { return assetManager.getAvailableAssets(BlockFamilyDefinition.class) .stream().<Optional<BlockFamilyDefinition>>map(urn -> assetManager.getAsset(urn, BlockFamilyDefinition.class)) .filter(def -> def.isPresent() && def.get().isLoadable() && def.get().isFreeform()) .map(r -> new BlockUri(r.get().getUrn())).collect(Collectors.toSet()); } }
/** * List blocks that match searched string * * @param searchLowercase searched string * @return List of blocks that match searched string */ private List<String> findBlockMatches(String searchLowercase) { return assetManager.getAvailableAssets(BlockFamilyDefinition.class) .stream().<Optional<BlockFamilyDefinition>>map(urn -> assetManager.getAsset(urn, BlockFamilyDefinition.class)) .filter(def -> def.isPresent() && def.get().isLoadable() && matchesSearch(searchLowercase, def.get())) .map(r -> new BlockUri(r.get().getUrn()).toString()).collect(Collectors.toList()); }
private List<String> findBlockMatches(String searchLowercase) { return assetManager.getAvailableAssets(BlockFamilyDefinition.class) .stream().<Optional<BlockFamilyDefinition>>map(urn -> assetManager.getAsset(urn, BlockFamilyDefinition.class)) .filter(def -> def.isPresent() && def.get().isLoadable() && matchesSearch(searchLowercase, def.get())) .map(r -> new BlockUri(r.get().getUrn()).toString()).collect(Collectors.toList()); }
private Optional<BlockFamily> loadFamily(BlockUri uri) { Optional<BlockFamilyDefinition> familyDef = assetManager.getAsset(uri.getBlockFamilyDefinitionUrn(), BlockFamilyDefinition.class); if (familyDef.isPresent() && familyDef.get().isLoadable()) { if (familyDef.get().isFreeform()) { ResourceUrn shapeUrn; if (uri.getShapeUrn().isPresent()) { shapeUrn = uri.getShapeUrn().get(); } else { shapeUrn = CUBE_SHAPE_URN; } Optional<BlockShape> shape = assetManager.getAsset(shapeUrn, BlockShape.class); if (shape.isPresent()) { return Optional.of(familyDef.get().createFamily(shape.get(), blockBuilder)); } } else if (!familyDef.get().isFreeform()) { return Optional.of(familyDef.get().createFamily(blockBuilder)); } } else { logger.error("Family not available: {}", uri); } return Optional.empty(); }