// Path: src/main/java/net/technicpack/minecraftcore/mojang/version/io/argument/ArgumentList.java
// public class ArgumentList {
// 
// 	private final List<Argument> args;
// 
// 	private ArgumentList(List<Argument> args) {
// 		this.args = Collections.unmodifiableList(args);
// 	}
// 
// 	public static ArgumentList fromString(String args) {
// 		if (args == null) return null;
// 		Builder argsBuilder = new Builder();
// 		for (String arg : args.split(" ")) argsBuilder.addArgument(Argument.literal(arg));
// 		return argsBuilder.build();
// 	}
// 
// 	public List<Argument> getArguments() {
// 		return args;
// 	}
// 
// 	public List<String> resolve(ILaunchOptions opts, StringSubstitutor derefs) {
// 		List<String> resolved = new ArrayList<>();
// 		if (derefs == null) derefs = new StringSubstitutor();
// 		for (Argument arg : args) {
// 			if (arg.doesApply(opts)) {
// 				for (String argStr : arg.getArgStrings()) {
// 					resolved.add(derefs.replace(argStr));
// 				}
// 			}
// 		}
// 		return resolved;
// 	}
// 
// 	public JsonElement serialize() {
// 		JsonArray json = new JsonArray();
// 		for (Argument arg : args) json.add(arg.serialize());
// 		return json;
// 	}
// 
// 	public static class Builder {
// 
// 		private final List<Argument> args = new ArrayList<>();
// 
// 		public void addArgument(Argument arg) {
// 			args.add(arg);
// 		}
// 
// 		public ArgumentList build() {
// 			return new ArgumentList(args);
// 		}
// 
// 	}
// 
// }


import java.util.Date;
import java.util.List;
import net.technicpack.minecraftcore.mojang.version.io.*;
import net.technicpack.minecraftcore.mojang.version.io.argument.ArgumentList;
/*
 * This file is part of Technic Minecraft Core.
 * Copyright ©2015 Syndicate, LLC
 *
 * Technic Minecraft Core is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Technic Minecraft Core is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License,
 * as well as a copy of the GNU Lesser General Public License,
 * along with Technic Minecraft Core.  If not, see <http://www.gnu.org/licenses/>.
 */

package net.technicpack.minecraftcore.mojang.version;



public interface MojangVersion {

    public String getId();

    public ReleaseType getType();

    public void setType(ReleaseType releaseType);

    public Date getUpdatedTime();

    public void setUpdatedTime(Date updatedTime);

    public Date getReleaseTime();

    public void setReleaseTime(Date releaseTime);

// Path: src/main/java/net/technicpack/minecraftcore/mojang/version/io/argument/ArgumentList.java
// public class ArgumentList {
// 
// 	private final List<Argument> args;
// 
// 	private ArgumentList(List<Argument> args) {
// 		this.args = Collections.unmodifiableList(args);
// 	}
// 
// 	public static ArgumentList fromString(String args) {
// 		if (args == null) return null;
// 		Builder argsBuilder = new Builder();
// 		for (String arg : args.split(" ")) argsBuilder.addArgument(Argument.literal(arg));
// 		return argsBuilder.build();
// 	}
// 
// 	public List<Argument> getArguments() {
// 		return args;
// 	}
// 
// 	public List<String> resolve(ILaunchOptions opts, StringSubstitutor derefs) {
// 		List<String> resolved = new ArrayList<>();
// 		if (derefs == null) derefs = new StringSubstitutor();
// 		for (Argument arg : args) {
// 			if (arg.doesApply(opts)) {
// 				for (String argStr : arg.getArgStrings()) {
// 					resolved.add(derefs.replace(argStr));
// 				}
// 			}
// 		}
// 		return resolved;
// 	}
// 
// 	public JsonElement serialize() {
// 		JsonArray json = new JsonArray();
// 		for (Argument arg : args) json.add(arg.serialize());
// 		return json;
// 	}
// 
// 	public static class Builder {
// 
// 		private final List<Argument> args = new ArrayList<>();
// 
// 		public void addArgument(Argument arg) {
// 			args.add(arg);
// 		}
// 
// 		public ArgumentList build() {
// 			return new ArgumentList(args);
// 		}
// 
// 	}
// 
// }


// Path: src/main/java/net/technicpack/minecraftcore/mojang/version/MojangVersion.java
import java.util.Date;
import java.util.List;
import net.technicpack.minecraftcore.mojang.version.io.*;
import net.technicpack.minecraftcore.mojang.version.io.argument.ArgumentList;

/*
 * This file is part of Technic Minecraft Core.
 * Copyright ©2015 Syndicate, LLC
 *
 * Technic Minecraft Core is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Technic Minecraft Core is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License,
 * as well as a copy of the GNU Lesser General Public License,
 * along with Technic Minecraft Core.  If not, see <http://www.gnu.org/licenses/>.
 */

package net.technicpack.minecraftcore.mojang.version;



public interface MojangVersion {

    public String getId();

    public ReleaseType getType();

    public void setType(ReleaseType releaseType);

    public Date getUpdatedTime();

    public void setUpdatedTime(Date updatedTime);

    public Date getReleaseTime();

    public void setReleaseTime(Date releaseTime);

    public ArgumentList getMinecraftArguments();