/* Author: Jeff Dalton * Updated: Tue Jun 12 17:49:19 2001 by Jeff Dalton * Copyright: (c) 2000, AIAI, University of Edinburgh */ package ix.icore.domain; import ix.util.*; import ix.util.match.*; /** * Represents an effect of an action in a process. */ public class Effect implements Cloneable { public Object when; // EffectSymbols.S_START or .S_FINISH public Object pattern; public Object value; public Effect(Object when, Object pattern, Object value) { this.when = when; this.pattern = pattern; this.value = value; } public Effect instantiate(MatchEnv env) { try { Effect e = (Effect)clone(); e.when = env.instantiateTree(e.when); e.pattern = env.instantiateTree(e.pattern); e.value = env.instantiateTree(e.value); return e; } catch (CloneNotSupportedException e) { Debug.noteException(e); return null; } } public String toString() { return "Effect[" + pattern + " = " + value + " at " + when + "]"; } }