This repository has been archived on 2022-12-21. You can view files and clone it, but cannot push or open issues or pull requests.
sdm03/src/main/java/com/github/dtschust/zork/parser/strategies/ZorkContainerParseStrategy....

39 lines
1.4 KiB
Java

package com.github.dtschust.zork.parser.strategies;
import com.github.dtschust.zork.ZorkTrigger;
import com.github.dtschust.zork.objects.ZorkContainer;
import com.github.dtschust.zork.parser.Property;
import com.github.dtschust.zork.parser.PropertyParseStrategy;
import com.github.dtschust.zork.parser.TriggerPropertyParseStrategy;
import java.util.List;
import java.util.stream.Collectors;
public class ZorkContainerParseStrategy implements PropertyParseStrategy<ZorkContainer> {
private final TriggerPropertyParseStrategy triggerStrategy;
public ZorkContainerParseStrategy(TriggerPropertyParseStrategy triggerStrategy) {
this.triggerStrategy = triggerStrategy;
}
@Override
public ZorkContainer parse(final Property element) {
final String name = element.subPropertyValue("name", "");
final String description = element.subPropertyValue("description", "");
final List<ZorkTrigger> triggers = element.subPropertiesByName("trigger").stream()
.map(triggerStrategy.parse(element))
.collect(Collectors.toList());
final String status = element.subPropertyValue("status", "");
final List<String> accepts = element.subPropertyValues("accept");
final List<String> items = element.subPropertyValues("item");
return new ZorkContainer(name, description, status, items, accepts, triggers);
}
}