package javax.safetycritical;
import javax.realtime.PriorityParameters;
final class ManagedSchedMethods {
static PriorityParameters getPriorityParameter(ManagedSchedulable target)
{
if (target instanceof ManagedEventHandler)
return ((ManagedEventHandler)target).priority;
else if (target instanceof ManagedThread)
return ((ManagedThread)target).priority;
else if (target instanceof ManagedLongEventHandler)
return ((ManagedLongEventHandler)target).priority;
else
return null;
}
static ScjProcess getScjProcess(ManagedSchedulable target)
{
if (target instanceof ManagedEventHandler)
return ((ManagedEventHandler)target).process;
else if (target instanceof ManagedThread)
return ((ManagedThread)target).process;
else if (target instanceof ManagedLongEventHandler)
return ((ManagedLongEventHandler)target).process;
else
return null;
}
static StorageParameters getStorage(ManagedSchedulable target)
{
if (target instanceof ManagedEventHandler)
return ((ManagedEventHandler)target).storage;
else if (target instanceof ManagedThread)
return ((ManagedThread)target).storage;
else if (target instanceof ManagedLongEventHandler)
return ((ManagedLongEventHandler)target).storage;
else
return null;
}
private static ScjProcess createScjProcess(ManagedSchedulable target, int[] ps) {
if (target instanceof PeriodicEventHandler) {
return new ScjPeriodicEventHandlerProcess(target, ps);
} else if (target instanceof OneShotEventHandler) {
return new ScjOneShotEventHandlerProcess(target, ps);
} else if (target instanceof MissionSequencer<?>) {
return new ScjMissionSequencerProcess(target, ps);
} else if (target instanceof AperiodicEventHandler) {
return new ScjAperiodicEventHandlerProcess(target, ps);
} else if (target instanceof ManagedThread) {
return new ScjManagedThreadProcess(target, ps);
} else {
return null;
}
}
static ScjProcess createScjProcess(ManagedSchedulable target)
{
return createScjProcess(target, new int[(int)getStorage(target).configurationSizes[0]]);
}
static Mission getMission (ManagedSchedulable target)
{
if (target instanceof ManagedEventHandler)
return ((ManagedEventHandler)target).mission;
else if (target instanceof ManagedThread)
return ((ManagedThread)target).mission;
else if (target instanceof ManagedLongEventHandler)
return ((ManagedLongEventHandler)target).mission;
else
return null;
}
static boolean isRegistered (ManagedSchedulable target)
{
if (target instanceof ManagedEventHandler)
return ((ManagedEventHandler)target).isRegistered;
else if (target instanceof ManagedThread)
return ((ManagedThread)target).isRegistered;
else if (target instanceof ManagedLongEventHandler)
return ((ManagedLongEventHandler)target).isRegistered;
else
return false;
}
static boolean isInMissionScope (ManagedSchedulable target)
{
if (target instanceof ManagedEventHandler)
return ((ManagedEventHandler)target).isInMissionScope;
else if (target instanceof ManagedThread)
return ((ManagedThread)target).isInMissionScope;
else if (target instanceof ManagedLongEventHandler)
return ((ManagedLongEventHandler)target).isInMissionScope;
else
return false;
}
}