/*
* Copyright (C) 2010 Medo <smaxein@googlemail.com>
*
* This file is part of GmkSplitter.
* GmkSplitter is free software and comes with ABSOLUTELY NO WARRANTY.
* See LICENSE for details.
*/
package com.ganggarrison.gmdec.dupes;
import java.util.ArrayList;
import java.util.List;
import org.lateralgm.file.GmFile;
import org.lateralgm.resources.Room;
import org.lateralgm.resources.sub.Instance;
import org.lateralgm.resources.sub.Instance.PInstance;
import com.ganggarrison.gmdec.GmkSplitter;
import com.ganggarrison.gmdec.GmkSplitter.IdPreservation;
public class InstanceAccessor implements ItemAccessor<Instance> {
private final GmFile gmFile;
public InstanceAccessor(GmFile gmFile) {
this.gmFile = gmFile;
}
@Override
public List<Instance> getItems() {
ArrayList<Instance> items = new ArrayList<Instance>();
for (Room room : gmFile.resMap.getList(Room.class)) {
for (Instance instance : room.instances) {
items.add(instance);
}
}
return items;
}
@Override
public Integer getId(Instance item) {
Integer id = item.properties.get(PInstance.ID);
if (id == null || id < getFirstValidId()) {
return null;
} else {
return id;
}
}
@Override
public void setId(Instance item, int id) {
item.properties.put(PInstance.ID, id);
}
@Override
public int getFirstValidId() {
return 100001;
}
@Override
public void setMaxId(int id) {
gmFile.lastInstanceId = id;
}
@Override
public String getItemName() {
return "Instance";
}
@Override
public boolean informAboutNewIds() {
return GmkSplitter.preserveIds == IdPreservation.ALL;
}
}