/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher.builder; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.Lists; import com.skcraft.launcher.model.modpack.LaunchModifier; import com.skcraft.launcher.model.modpack.Manifest; import lombok.Data; import java.util.List; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Strings.emptyToNull; @Data public class BuilderConfig { private String name; private String title; private String gameVersion; @JsonProperty("launch") private LaunchModifier launchModifier = new LaunchModifier(); private List<FeaturePattern> features = Lists.newArrayList(); private FnPatternList userFiles = new FnPatternList(); public void setLaunchModifier(LaunchModifier launchModifier) { this.launchModifier = launchModifier != null ? launchModifier : new LaunchModifier(); } public void setFeatures(List<FeaturePattern> features) { this.features = features != null ? features : Lists.<FeaturePattern>newArrayList(); } public void setUserFiles(FnPatternList userFiles) { this.userFiles = userFiles != null ? userFiles : new FnPatternList(); } public void update(Manifest manifest) { manifest.updateName(getName()); manifest.updateTitle(getTitle()); manifest.updateGameVersion(getGameVersion()); manifest.setLaunchModifier(getLaunchModifier()); } public void registerProperties(PropertiesApplicator applicator) { if (features != null) { for (FeaturePattern feature : features) { checkNotNull(emptyToNull(feature.getFeature().getName()), "Empty feature name found"); applicator.register(feature); } } applicator.setUserFiles(userFiles); } }