createDeclareId method
Given a fully specified id, like XXXScreenID.myScreen, creates an entry for it in the id file.
Implementation
void createDeclareId(String id) {
final splitVals = id.split(".");
if(splitVals.length != 2) {
throw AFException("Expected IDClass.idName, found $id");
}
final clz = splitVals[0];
final identifier = splitVals[1];
final idFile = generator.modifyFile(this, generator.pathIdFile);
final regexClz = RegExp("class\\s+$clz");
final idxOpenClass = idFile.findFirstLineContaining(this, regexClz);
if(idxOpenClass < 0) {
throw AFException("Could not find $regexClz in id file");
}
final lineOpen = idFile.buffer.lines[idxOpenClass];
final isClassDecl = lineOpen.contains("extends");
var lines = <String>[];
if(isClassDecl) {
// finally, add the id we are using.
final declareTestID = SnippetDeclareClassTestIDT().toBuffer(this, insertions: {
SnippetDeclareClassTestIDT.insertTestId: identifier,
SnippetDeclareClassTestIDT.insertClassId: clz,
});
lines = declareTestID.lines;
} else {
final declareTestID = SnippetDeclareStringTestIDT().toBuffer(this, insertions: {
SnippetDeclareStringTestIDT.insertTestId: identifier,
});
lines = declareTestID.lines;
}
idFile.addLinesAfterIdx(this, idxOpenClass, lines);
}