\ru\ifmo\alarm\Main.java

package ru.ifmo.alarm; 
 
import ru.ifmo.alarm.controlled.LightDiode; 
import ru.ifmo.alarm.controlled.Lights; 
import ru.ifmo.alarm.controlled.Sounds; 
import ru.ifmo.alarm.controlled.StateTimerStarter; 
import ru.ifmo.alarm.controlled.Commentator; 
import ru.ifmo.alarm.event.HitSensor; 
import ru.ifmo.alarm.event.RemoteControl; 
import ru.ifmo.alarm.event.StateTimer; 
 
import com.evelopers.unimod.runtime.ModelEngine; 
import com.evelopers.unimod.runtime.QueuedHandler; 
import com.evelopers.unimod.runtime.ControlledObjectsManager; 
import com.evelopers.unimod.runtime.ControlledObject; 
import com.evelopers.unimod.runtime.EventProvidersManager; 
import com.evelopers.unimod.runtime.EventProvider; 
import com.evelopers.common.exception.CommonException; 
 
 
public class Main { 
     
    public static void main(String[] args) { 
 
        try { 
 
            ModelEngine me = ModelEngine.createStandAlone( 
                new QueuedHandler(), 
                new Model1EventProcessor(), 
                new ControlledObjectsManager() { 
                    Lights o1 = new Lights(); 
                    StateTimerStarter o2 = new StateTimerStarter(); 
                    Sounds o3 = new Sounds(); 
                    LightDiode o4 = new LightDiode(); 
                    Commentator o5 = new Commentator(); 
                     
                    public void init(ModelEngine engine) throws CommonException {} 
                    public void dispose() {} 
                    public ControlledObject getControlledObject(String coName) { 
                        if (coName.equals("o1")) { return o1; }  
                        else if (coName.equals("o2")) { return o2; }  
                        else if (coName.equals("o3")) { return o3; } 
                        else if (coName.equals("o4")) { return o4; } 
                        else if (coName.equals("o5")) { return o5; } 
                        else { 
                            System.out.println("No such object (look Main.java)"); 
                            return null;  
                        } 
                    } 
                }, 
                new EventProvidersManager() { 
                    RemoteControl p1 = new RemoteControl(); 
                    HitSensor p2 = new HitSensor(); 
                    StateTimer p3 = new StateTimer(); 
                     
                    public void init(ModelEngine engine) throws CommonException { 
                        p1.init(engine); 
                        p2.init(engine); 
                        p3.init(engine); 
                    } 
                    public void dispose() { 
                        p1.dispose(); 
                        p2.dispose(); 
                        p3.dispose(); 
                    } 
                    public EventProvider getEventProvider(String epName) { 
                        if (epName.equals("p1")) { return p1; }  
                        else if (epName.equals("p2")) { return p2; }  
                        else { return p3; } 
                } 
            }); 
             
            me.start(); 
             
        } catch(CommonException e) { 
            System.out.println(e.toString()); 
        } 
         
    } 
 
}