package ptolemy.apps.actorsTutorial09;
import ptolemy.actor.TypedAtomicActor;
import ptolemy.actor.TypedIOPort;
import ptolemy.data.StringToken;
import ptolemy.data.expr.StringParameter;
import ptolemy.data.type.BaseType;
import ptolemy.kernel.CompositeEntity;
import ptolemy.kernel.util.IllegalActionException;
import ptolemy.kernel.util.NameDuplicationException;
import ptolemy.kernel.util.Workspace;
public class MyPtolemnizer extends TypedAtomicActor {
public MyPtolemnizer() {
// TODO Auto-generated constructor stub
}
public MyPtolemnizer(Workspace workspace) {
super(workspace);
// TODO Auto-generated constructor stub
}
public MyPtolemnizer(CompositeEntity container, String name)
throws IllegalActionException, NameDuplicationException {
super(container, name);
// TODO Auto-generated constructor stub
input = new TypedIOPort(this, "input");
output = new TypedIOPort(this, "output");
input.setInput(true);
output.setOutput(true);
input.setDisplayName("stringInput");
expression = new StringParameter(this, "expression");
expression.setExpression("t");
output.setTypeEquals(BaseType.STRING);
input.setTypeEquals(BaseType.STRING);
}
public void fire() throws IllegalActionException {
StringToken inString = (StringToken) input.get(0);
String regExp = expression.stringValue();
StringToken outToken = new StringToken(inString.stringValue()
.replaceAll(regExp, "pt"));
output.send(0, outToken);
}
public TypedIOPort input;
public TypedIOPort output;
public StringParameter expression;
}