package org.jboss.tools.jsf.model.handlers;
import java.util.Properties;
import org.jboss.tools.common.meta.action.impl.handlers.DefaultCreateHandler;
import org.jboss.tools.common.meta.action.impl.handlers.DefaultCreateSupport;
import org.jboss.tools.common.model.XModelException;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
public class AddOrderingSupport extends DefaultCreateSupport {
static String ATTR_AFTER_NAME = "after name";
static String ATTR_AFTER_OTHERS = "after others";
static String ATTR_BEFORE_NAME = "before name";
static String ATTR_BEFORE_OTHERS = "before others";
public AddOrderingSupport() {}
protected void finish() throws XModelException {
String entity = getEntityName();
Properties p = extractStepData(0);
XModelObject c = XModelObjectLoaderUtil.createValidObject(getTarget().getModel(), entity, p);
String afterName = p.getProperty(ATTR_AFTER_NAME);
if(afterName == null || afterName.length() > 0) {
XModelObject n = XModelObjectLoaderUtil.createValidObject(getTarget().getModel(), c.getChildByPath("After").getModelEntity().getChildren()[0].getName());
n.setAttributeValue("name", afterName);
c.getChildByPath("After").addChild(n);
}
String afterOthers = p.getProperty(ATTR_AFTER_OTHERS);
if("true".equals(afterOthers)) {
c.getChildByPath("After").setAttributeValue("others", "true");
}
String beforeName = p.getProperty(ATTR_BEFORE_NAME);
if(beforeName == null || beforeName.length() > 0) {
XModelObject n = XModelObjectLoaderUtil.createValidObject(getTarget().getModel(), c.getChildByPath("Before").getModelEntity().getChildren()[0].getName());
n.setAttributeValue("name", beforeName);
c.getChildByPath("Before").addChild(n);
}
String beforeOthers = p.getProperty(ATTR_BEFORE_OTHERS);
if("true".equals(beforeOthers)) {
c.getChildByPath("Before").setAttributeValue("others", "true");
}
DefaultCreateHandler.addCreatedObject(getTarget(), c, getProperties());
}
}