package com.revolsys.record.io.format.mapguide;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.revolsys.collection.Parent;
import com.revolsys.webservice.WebServiceResource;
public class Folder extends MapGuideResource implements Parent<MapGuideResource> {
private int numberOfFolders;
private int numberOfDocuments;
private List<MapGuideResource> resources = new ArrayList<>();
private final Map<String, MapGuideResource> resourceByName = new HashMap<>();
public Folder(final Map<String, ? extends Object> properties) {
setProperties(properties);
}
public void addResource(final MapGuideResource resource) {
this.resources.add(resource);
final String name = resource.getName().toLowerCase();
this.resourceByName.put(name, resource);
resource.setParent(this);
}
@SuppressWarnings("unchecked")
@Override
public <R extends WebServiceResource> R getChild(final String name) {
if (name == null) {
return null;
} else {
return (R)this.resourceByName.get(name.toLowerCase());
}
}
@Override
public List<MapGuideResource> getChildren() {
return getResources();
}
@Override
public String getIconName() {
return "folder:world";
}
public int getNumberOfDocuments() {
return this.numberOfDocuments;
}
public int getNumberOfFolders() {
return this.numberOfFolders;
}
public List<MapGuideResource> getResources() {
return this.resources;
}
public void setNumberOfDocuments(final int numberOfDocuments) {
this.numberOfDocuments = numberOfDocuments;
}
public void setNumberOfFolders(final int numberOfFolders) {
this.numberOfFolders = numberOfFolders;
}
public void setResources(final List<MapGuideResource> resources) {
this.resources = resources;
}
}