/** * */ package org.javabuilders.swing.handler.type; import javax.swing.Action; import org.javabuilders.BuildException; import org.javabuilders.BuildProcess; import org.javabuilders.Node; import org.javabuilders.handler.ITypeAsValueHandler; /** * Handler for Action references * @author Jacek Furmankiewicz * */ public class ActionAsValueHandler implements ITypeAsValueHandler<Action> { private static final ActionAsValueHandler singleton = new ActionAsValueHandler(); /** * @return Singleton */ public static ActionAsValueHandler getInstance() {return singleton;} private ActionAsValueHandler() {} /* (non-Javadoc) * @see org.javabuilders.handler.ITypeAsValueHandler#getInputValueSample() */ public String getInputValueSample() { return "saveAction"; } /* (non-Javadoc) * @see org.javabuilders.handler.ITypeAsValueHandler#getRegex() */ public String getRegex() { return ".+"; } public Action getValue(BuildProcess process, Node node, String key, Object inputValue) throws BuildException { Action action = null; String name = node.getStringProperty(key); Object value = process.getByName(name); if (value == null) { throw new BuildException("No Action found for name {0}. Values named objects are: {1}",name, process.getBuildResult().toString()); } else if (value instanceof Action) { action = (Action) value; } else { throw new BuildException("Object identified by {0} is not an Action, but a {1}.",name, value.getClass()); } return action; } /* (non-Javadoc) * @see org.javabuilders.IApplicable#getApplicableClass() */ public Class<Action> getApplicableClass() { return Action.class; } }