Package edu.stanford.bmir.protege.web.client.dispatch.cache

Source Code of edu.stanford.bmir.protege.web.client.dispatch.cache.LookupEntitiesActionResultCachingStrategy

package edu.stanford.bmir.protege.web.client.dispatch.cache;

import edu.stanford.bmir.protege.web.shared.entity.EntityLookupResult;
import edu.stanford.bmir.protege.web.shared.entity.LookupEntitiesAction;
import edu.stanford.bmir.protege.web.shared.entity.LookupEntitiesResult;
import edu.stanford.bmir.protege.web.shared.event.*;
import edu.stanford.bmir.protege.web.shared.project.ProjectId;
import org.semanticweb.owlapi.model.OWLEntity;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
* Author: Matthew Horridge<br>
* Stanford University<br>
* Bio-Medical Informatics Research Group<br>
* Date: 15/11/2013
*/
public class LookupEntitiesActionResultCachingStrategy extends AbstractResultCachingStrategy<LookupEntitiesAction, LookupEntitiesResult, OWLEntity> {

    public LookupEntitiesActionResultCachingStrategy(ProjectId projectId) {
        super(projectId);
    }

    @Override
    public Class<LookupEntitiesAction> getActionClass() {
        return LookupEntitiesAction.class;
    }

    @Override
    public boolean shouldCache(LookupEntitiesAction action, LookupEntitiesResult result) {
        return false;//!result.getEntityLookupResults().isEmpty();
    }

    @Override
    public Collection<OWLEntity> getInvalidationKeys(LookupEntitiesAction action, LookupEntitiesResult result) {
        List<OWLEntity> entities = new ArrayList<OWLEntity>();
        for(EntityLookupResult res : result.getEntityLookupResults()) {
            OWLEntity entity = res.getOWLEntityData().getEntity();
            entities.add(entity);
        }
        return entities;
    }

    @Override
    public void registerEventHandlers() {
        registerProjectEventHandler(ClassFrameChangedEvent.TYPE, new ClassFrameChangedEventHandler() {
            @Override
            public void classFrameChanged(ClassFrameChangedEvent event) {
                fireResultsInvalidatedEvent(event.getEntity());
            }
        });
        registerProjectEventHandler(ObjectPropertyFrameChangedEvent.TYPE, new ObjectPropertyFrameChangedEventHandler() {
            @Override
            public void objectPropertyFrameChanged(ObjectPropertyFrameChangedEvent event) {
                fireResultsInvalidatedEvent(event.getEntity());
            }
        });
        registerProjectEventHandler(DataPropertyFrameChangedEvent.TYPE, new DataPropertyFrameChangedEventHandler() {
            @Override
            public void dataPropertyFrameChanged(DataPropertyFrameChangedEvent event) {
                fireResultsInvalidatedEvent(event.getEntity());
            }
        });
        registerProjectEventHandler(AnnotationPropertyFrameChangedEvent.TYPE, new AnnotationPropertyFrameChangedEventHandler() {
            @Override
            public void annotationPropertyFrameChanged(AnnotationPropertyFrameChangedEvent event) {
                fireResultsInvalidatedEvent(event.getEntity());
            }
        });
        registerProjectEventHandler(NamedIndividualFrameChangedEvent.TYPE, new NamedIndividualFrameChangedEventHandler() {
            @Override
            public void namedIndividualFrameChanged(NamedIndividualFrameChangedEvent event) {
                fireResultsInvalidatedEvent(event.getEntity());
            }
        });
        registerProjectEventHandler(DatatypeFrameChangedEvent.TYPE, new DatatypeFrameChangedEventHandler() {
            @Override
            public void datatypeFrameChanged(DatatypeFrameChangedEvent event) {
                fireResultsInvalidatedEvent(event.getEntity());
            }
        });
    }
}
TOP

Related Classes of edu.stanford.bmir.protege.web.client.dispatch.cache.LookupEntitiesActionResultCachingStrategy

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.