1 package net.mograsim.plugin.nature;
3 import java.util.Optional;
5 import org.eclipse.core.resources.IProject;
6 import org.eclipse.core.resources.IResourceChangeEvent;
8 public class ProjectContextEvent
10 private final MachineContext machineContext;
11 private final ProjectContextEventType eventType;
13 public ProjectContextEvent(MachineContext machineContext, ProjectContextEventType eventType)
15 this.machineContext = machineContext;
16 this.eventType = eventType;
19 public final MachineContext getMachineContext()
21 return machineContext;
24 public final ProjectContextEventType getEventType()
29 public final IProject getProject()
31 return machineContext.getProject();
34 public enum ProjectContextEventType
36 NEW, MACHINE_DEFINITION_CHANGE, OTHER_CHANGE, REFRESH, CLOSE, DELETE;
38 static ProjectContextEventType ofResourceChangeEvent(int id)
42 case IResourceChangeEvent.POST_CHANGE:
44 case IResourceChangeEvent.PRE_CLOSE:
46 case IResourceChangeEvent.PRE_DELETE:
48 case IResourceChangeEvent.PRE_REFRESH:
55 Optional<MachineContextStatus> getForcedStatus()
60 return Optional.of(MachineContextStatus.CLOSED);
62 return Optional.of(MachineContextStatus.DEAD);
64 return Optional.empty();