char ChoreoPresetFormatter::next() { char c = '\0'; switch(m_nextState) { case START: c = readStartTagChar(TAG_PRESET, PRESET_TAG); break; case PRESET_TAG: c = readTagChar(NAME_START); break; case NAME_START: c = '"'; m_nextState = NAME; m_nextChar = m_preset->getName(); break; case NAME: c = readValueChar(NAME_END); break; case NAME_END: c = '"'; m_nextState = END; break; case END: default: c = '\0'; } return c; }
char ChoreoOutputFormatter::next() { char c = '\0'; switch(m_nextState) { case START: c = readStartTagChar(TAG_OUTPUTS_START, OUTPUTS_TAG); break; case OUTPUTS_TAG: c = readTagChar(OUTPUT_START); if (m_nextState == OUTPUT_START) { m_currentOutput = m_outputSet->getFirstOutput(); } break; case OUTPUT_START: c = '{'; m_nextChar = TAG_NAME; m_nextState = NAME_TAG; break; case NAME_TAG: c = readTagChar(NAME_START); break; case NAME_START: c = '"'; m_nextChar = m_currentOutput->getName(); if ((NULL == m_nextChar) || ('\0' == *m_nextChar)) { m_nextState = NAME_END; } else { m_nextState = NAME; } break; case NAME: c = readValueChar(NAME_END); break; case NAME_END: c = '"'; m_nextState = NAME_PATH_SEPARATOR; break; case NAME_PATH_SEPARATOR: c = ','; m_nextState = PATH_TAG; m_nextChar = TAG_PATH; break; case PATH_TAG: c = readTagChar(PATH_START); break; case PATH_START: c = '"'; m_nextChar = m_currentOutput->getPath(); if ((NULL == m_nextChar) || ('\0' == *m_nextChar)) { m_nextState = PATH_END; } else { m_nextState = PATH; } break; case PATH: c = readValueChar(PATH_END); break; case PATH_END: c = '"'; m_nextState = PATH_VAR_SEPARATOR; break; case PATH_VAR_SEPARATOR: c = ','; m_nextState = VAR_TAG; m_nextChar = TAG_VAR; break; case VAR_TAG: c = readTagChar(VAR_START); break; case VAR_START: c = '"'; m_nextChar = m_currentOutput->getVariable(); if ((NULL == m_nextChar) || ('\0' == *m_nextChar)) { m_nextState = VAR_END; } else { m_nextState = VAR; } break; case VAR: c = readValueChar(VAR_END); break; case VAR_END: c = '"'; m_nextState = OUTPUT_END; break; case OUTPUT_END: c = '}'; m_currentOutput = m_currentOutput->getNext(); if (m_currentOutput != NULL) { m_nextState = NEXT_OUTPUT; } else { m_nextState = OUTPUTS_END; } break; case NEXT_OUTPUT: c = ','; m_nextChar = m_currentOutput->getName(); m_nextState = OUTPUT_START; break; case OUTPUTS_END: c = ']'; m_nextState = END; break; case END: default: c = '\0'; } return c; }
char ChoreoInputFormatter::next() { char c; switch(m_nextState) { case START: c = readStartTagChar(TAG_INPUTS_START, INPUTS_TAG); break; case INPUTS_TAG: c = readTagChar(NAME_START); if (m_nextState == NAME_START) { m_currentInput= m_inputSet->getFirstInput(); } break; case NAME_START: c = '"'; m_nextChar = m_currentInput->getName(); if ((NULL == m_nextChar) || ('\0' == *m_nextChar)) { m_nextState = NAME_END; } else { m_nextState = NAME; } break; case NAME: c = readValueChar(NAME_END); break; case NAME_END: c = '"'; m_nextState = NAME_VALUE_SEPARATOR; break; case NAME_VALUE_SEPARATOR: c = ':'; m_nextState = VALUE_START; break; case VALUE_START: c = '"'; m_nextChar = m_currentInput->getValue(); if ((NULL == m_nextChar) || ('\0' == *m_nextChar)) { m_nextState = VALUE_END; } else { m_nextState = VALUE; } break; case VALUE: c = readValueChar(VALUE_END); break; case VALUE_END: c = '"'; m_currentInput = m_currentInput->getNext(); if (m_currentInput != NULL) { m_nextState = NEXT_INPUT; } else { m_nextState = INPUTS_END; } break; case NEXT_INPUT: c = ','; m_nextChar = m_currentInput->getName(); m_nextState = NAME_START; break; case INPUTS_END: c = '}'; m_nextState = END; break; case END: default: c = '\0'; } return c; }