/** * Copyright (c) 2009-2011, The HATS Consortium. All rights reserved. * This file is licensed under the terms of the Modified BSD License. */ package abs.backend.java; import abs.backend.java.lib.runtime.ABSException; import abs.backend.java.lib.types.ABSString; import abs.backend.java.lib.types.ABSValue; import abs.backend.java.observing.*; public class TestSystemObserver implements SystemObserver, ObjectCreationObserver { @Override public void systemStarted() { System.out.println("SYSTEM STARTED"); } @Override public void newCOGCreated(COGView cog, ObjectView initialObject) { System.out.println("NEW COG CREATED"); COGView mainCOG = cog; mainCOG.registerObjectCreationListener(this); mainCOG.getScheduler().registerTaskSchedulerObserver(new TaskSchedulerObserver() { TaskView mainTask; @Override public void taskCreated(TaskView task) { if (mainTask == null) { mainTask = task; mainTask.registerTaskListener(new EmptyTaskObserver() { @Override public void taskFinished(TaskView task) { if (task == mainTask) System.out.println("MAIN TERMINATED"); } }); } String sourceClass = "INIT"; if (task.getSource() != null) sourceClass = task.getSource().getClassName(); System.out.print("TASK CREATED: " + sourceClass + " --> " + task.getTarget().getClassName() + "." + task.getMethodName() + "("); int i = 0; for (ABSValue v : task.getArgs()) { if (i > 0) System.out.print(", "); System.out.print(v); i++; } System.out.println(")"); } @Override public void taskReady(TaskView view) { // TODO Auto-generated method stub } @Override public void taskResumed(TaskView runningTask, GuardView view) { // TODO Auto-generated method stub } @Override public void taskSuspended(TaskView task, GuardView guard) { // TODO Auto-generated method stub } }); } @Override public void objectCreated(ObjectView o) { System.out.println("OBJECT CREATED: " + o.getClassName()); } @Override public void objectInitialized(ObjectView o) { if (o.getClassName().equals("FieldClass")) { try { ABSString s = (ABSString) o.getFieldValue("field"); System.out.println("FIELD VALUE=" + s.getString()); } catch (NoSuchFieldException e) { e.printStackTrace(); } } } @Override public void systemFinished() { System.out.println("SYSTEM FINISHED"); } @Override public void systemError(ABSException e) { // TODO Auto-generated method stub } }