package org.openflexo.foundation.toc; import org.openflexo.foundation.wkf.FlexoProcess; import org.openflexo.foundation.xml.FlexoTOCBuilder; public class ProcessSection extends ModelObjectSection<FlexoProcess> { protected static final String DOC_TEMPLATE = "docx_tocentry_process.xml.vm"; protected static final String OPERATION_TABLE_TEMPLATE = "docx_tocentry_operationtable.xml.vm"; protected static final String RACI_MATRIX_TEMPLATE = "docx_tocentry_raci.xml.vm"; protected static final String SIPOC_LEVEL2_TEMPLATE = "docx_tocentry_sipoc2.xml.vm"; protected static final String SIPOC_LEVEL3_TEMPLATE = "docx_tocentry_sipoc3.xml.vm"; public static enum ProcessDocSectionSubType { Doc { @Override public String getDefaultTemplateName() { return DOC_TEMPLATE; } }, OperationTable { @Override public String getDefaultTemplateName() { return OPERATION_TABLE_TEMPLATE; } }, RaciMatrix { @Override public String getDefaultTemplateName() { return RACI_MATRIX_TEMPLATE; } }, SIPOCLevel2 { @Override public String getDefaultTemplateName() { return SIPOC_LEVEL2_TEMPLATE; } }, SIPOCLevel3 { @Override public String getDefaultTemplateName() { return SIPOC_LEVEL3_TEMPLATE; } }; public abstract String getDefaultTemplateName(); } private ProcessDocSectionSubType subType; public ProcessSection(FlexoTOCBuilder builder) { this(builder.tocData); initializeDeserialization(builder); } public ProcessSection(TOCData data) { super(data); } @Override public ModelObjectType getModelObjectType() { return ModelObjectType.Process; } @Override public ProcessDocSectionSubType getSubType() { return subType; } @Override public void setSubType(ProcessDocSectionSubType subType) { this.subType = subType; } public FlexoProcess getProcess() { return getModelObject(true); } public void setProcess(FlexoProcess process) { setModelObject(process); } @Override public String getDefaultTemplateName() { if (getSubType() != null) { return getSubType().getDefaultTemplateName(); } return null; } @Override public boolean isProcessesSection() { return true; } }