/*
* 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.creator.model.creator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.common.collect.Lists;
import com.skcraft.launcher.creator.model.swing.ListingType;
import lombok.Data;
import java.io.File;
import java.io.IOException;
import java.util.List;
@Data
public class Workspace {
public static final String DIR_NAME = ".modpacks";
public static final String FILENAME = "workspace.json";
@JsonIgnore private File directory;
private List<Pack> packs = Lists.newArrayList();
private List<ManifestEntry> packageListingEntries = Lists.newArrayList();
private ListingType packageListingType = ListingType.STATIC;
public void setPacks(List<Pack> packs) {
this.packs = packs != null ? packs : Lists.<Pack>newArrayList();
}
public void setPackageListingEntries(List<ManifestEntry> entries) {
this.packageListingEntries = entries != null ? entries : Lists.newArrayList();
}
public void setPackageListingType(ListingType packageListingType) {
this.packageListingType = packageListingType != null ? packageListingType : ListingType.STATIC;
}
public boolean hasPack(File dir) {
for (Pack pack : packs) {
try {
if (pack.getDirectory().getCanonicalPath().equals(dir.getCanonicalPath())) {
return true;
}
} catch (IOException ignored) {
}
}
return false;
}
public void load() {
for (Pack pack : getPacks()) {
pack.setWorkspace(this);
}
}
@Override
public boolean equals(Object o) {
return super.equals(o);
}
@Override
public int hashCode() {
return super.hashCode();
}
public static File getDataDir(File workspaceDir) {
return new File(workspaceDir, DIR_NAME);
}
public static File getWorkspaceFile(File workspaceDir) {
return new File(getDataDir(workspaceDir), FILENAME);
}
}