/** * Parse the CDTEXTFILE command. * <p/> * CDTEXTFILE [filename] * File that contains cd text data. Not mandatory. * * @param input */ private static void parseCdTextFile(final LineOfInput input) { CueParser.logger.entering(CueParser.class.getCanonicalName(), "parseCdTextFile(LineOfInput)", input); Matcher cdTextFileMatcher = PATTERN_CDTEXTFILE.matcher(input.getInput()); if (startsWith(input, "CDTEXTFILE") && cdTextFileMatcher.matches()) { if (input.getAssociatedSheet().getCdTextFile() != null) { CueParser.logger.warning(WARNING_DATUM_APPEARS_TOO_OFTEN); input.getAssociatedSheet().addWarning(input, WARNING_DATUM_APPEARS_TOO_OFTEN); } // If the file name is enclosed in quotes, remove those. String file = cdTextFileMatcher.group(1); if (file.length() > 0 && file.charAt(0) == '"' && file.charAt(file.length() - 1) == '"') { file = file.substring(1, file.length() - 1); } input.getAssociatedSheet().setCdTextFile(file); } else { addWarning(input, WARNING_UNPARSEABLE_INPUT); } CueParser.logger.exiting(CueParser.class.getCanonicalName(), "parseCdTextFile(LineOfInput)"); }
addAttribute(cueSheetElement, "title", cueSheet.getTitle()); addAttribute(cueSheetElement, "songwriter", cueSheet.getSongwriter()); addAttribute(cueSheetElement, "cdtextfile", cueSheet.getCdTextFile());
break; case CDTEXTFILE: result = this.getCdTextFile()==null?"":this.getCdTextFile(); break; case COMMENT:
/** * Serialize the CueSheet. * * @param builder The StringBuilder to serialize to. * @param cueSheet The CueSheet to serialize. * @param indentation The current indentation. */ private void serializeCueSheet(final StringBuilder builder, final CueSheet cueSheet, final String indentation) { CueSheetSerializer.logger.entering (CueSheetSerializer.class.getCanonicalName() , "serializeCueSheet(StringBuilder,CueSheet,String)" , new Object[]{builder, cueSheet, indentation} ); CueSheetSerializer.logger.fine("Serializing cue sheet to cue format."); addField(builder, "REM GENRE", indentation, cueSheet.getGenre()); addField(builder, "REM DATE", indentation, cueSheet.getYear()); addField(builder, "REM DISCID", indentation, cueSheet.getDiscid()); addField(builder, "REM COMMENT", indentation, cueSheet.getComment()); addField(builder, "CATALOG", indentation, cueSheet.getCatalog()); addField(builder, "PERFORMER", indentation, cueSheet.getPerformer()); addField(builder, "TITLE", indentation, cueSheet.getTitle()); addField(builder, "SONGWRITER", indentation, cueSheet.getSongwriter()); addField(builder, "CDTEXTFILE", indentation, cueSheet.getCdTextFile()); for (FileData fileData : cueSheet.getFileData()) { serializeFileData(builder, fileData, indentation); } CueSheetSerializer.logger.exiting (CueSheetSerializer.class.getCanonicalName(), "serializeCueSheet(StringBuilder,CueSheet,String)"); }