Package edu.stanford.bmir.protege.web.client.ui.projectmanager

Source Code of edu.stanford.bmir.protege.web.client.ui.projectmanager.ProjectDetailsCache

package edu.stanford.bmir.protege.web.client.ui.projectmanager;

import com.google.common.base.Optional;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import edu.stanford.bmir.protege.web.shared.project.ProjectDetails;
import edu.stanford.bmir.protege.web.shared.project.ProjectId;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
* @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 11/04/2014
*/
public class ProjectDetailsCache {

    private Map<ProjectId, ProjectDetails> cache = Maps.newHashMap();

    public void add(ProjectDetails projectDetails) {
        cache.put(projectDetails.getProjectId(), projectDetails);
    }

    public boolean remove(ProjectId projectId) {
        return cache.remove(projectId) != null;
    }

    public void setProjectDetails(Collection<ProjectDetails> projectDetails) {
        cache.clear();
        for(ProjectDetails details : projectDetails) {
            cache.put(details.getProjectId(), details);
        }
    }

    public List<ProjectDetails> getProjectDetailsList() {
        List<ProjectDetails> result = Lists.newArrayList(cache.values());
        Collections.sort(result);
        return result;
    }

    public Optional<ProjectDetails> getProjectDetails(ProjectId projectId) {
        ProjectDetails projectDetails = cache.get(projectId);
        return Optional.fromNullable(projectDetails);
    }

    public boolean setInTrash(ProjectId projectId, boolean inTrash) {
        ProjectDetails details = cache.get(projectId);
        if(details == null) {
            return false;
        }
        if(details.isInTrash() == inTrash) {
            return false;
        }
        ProjectDetails replacementDetails = details.builder().setInTrash(inTrash).build();
        cache.put(projectId, replacementDetails);
        return true;
    }


}
TOP

Related Classes of edu.stanford.bmir.protege.web.client.ui.projectmanager.ProjectDetailsCache

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.