/** * Returns the name generator for XML content file names.<p> * * @return the name generator for XML content file names. */ public I_CmsFileNameGenerator getNameGenerator() { if (m_nameGenerator == null) { m_nameGenerator = new CmsDefaultFileNameGenerator(); } return m_nameGenerator; }
/** * @see org.opencms.loader.I_CmsFileNameGenerator#getNewFileName(org.opencms.file.CmsObject, java.lang.String, int) */ public String getNewFileName(CmsObject cms, String namePattern, int defaultDigits) throws CmsException { return getNewFileName(cms, namePattern, defaultDigits, false); }
/** * Checks the given pattern for the number macro.<p> * * @param pattern the pattern to check * * @return <code>true</code> if the pattern contains the macro */ public static boolean hasNumberMacro(String pattern) { // check both macro variants return hasNumberMacro( pattern, "" + I_CmsMacroResolver.MACRO_DELIMITER + I_CmsMacroResolver.MACRO_START, "" + I_CmsMacroResolver.MACRO_END) || hasNumberMacro( pattern, "" + I_CmsMacroResolver.MACRO_DELIMITER_OLD + I_CmsMacroResolver.MACRO_START_OLD, "" + I_CmsMacroResolver.MACRO_END_OLD); }
final boolean explorerMode) { if (!hasNumberMacro(checkPattern)) { throw new IllegalArgumentException( Messages.get().getBundle().key(Messages.ERR_FILE_NAME_PATTERN_WITHOUT_NUMBER_MACRO_1, checkPattern)); name = CmsFileUtil.removeTrailingSeparator(name); extensionlessNames.add(removeExtension(name)); } while (extensionlessNames.contains(removeExtension(checkFileName)) || extensionlessNames.contains(removeExtension(checkTempFileName)));
/** * @see org.opencms.loader.I_CmsFileNameGenerator#getCopyFileName(org.opencms.file.CmsObject, java.lang.String, java.lang.String) */ public String getCopyFileName(CmsObject cms, String parentFolder, String baseName) { String name = baseName; int dot = name.lastIndexOf("."); if (dot > 0) { if (!name.substring(0, dot).endsWith(COPY_FILE_NAME_INSERT)) { name = name.substring(0, dot) + COPY_FILE_NAME_INSERT + name.substring(dot); } } else { if (!name.endsWith(COPY_FILE_NAME_INSERT)) { name += COPY_FILE_NAME_INSERT; } } return getUniqueFileName(cms, parentFolder, name); }
return getNewFileNameFromList(fileNames, checkPattern, defaultDigits, explorerMode);
/** * @see org.opencms.loader.I_CmsFileNameGenerator#getUniqueFileName(org.opencms.file.CmsObject, java.lang.String, java.lang.String) */ public String getUniqueFileName(CmsObject cms, String parentFolder, String baseName) { Iterator<String> nameIterator = getUrlNameSequence(baseName); String result = nameIterator.next(); CmsObject onlineCms = null; try { onlineCms = OpenCms.initCmsObject(cms); onlineCms.getRequestContext().setCurrentProject(cms.readProject(CmsProject.ONLINE_PROJECT_ID)); } catch (CmsException e) { // should not happen, nothing to do } String path = CmsStringUtil.joinPaths(parentFolder, result); // use CmsResourceFilter.ALL because we also want to skip over deleted resources while (cms.existsResource(path, CmsResourceFilter.ALL) || ((onlineCms != null) && onlineCms.existsResource(path, CmsResourceFilter.ALL))) { result = nameIterator.next(); path = CmsStringUtil.joinPaths(parentFolder, result); } return result; }
if ((createParam != null) && CmsDefaultFileNameGenerator.hasNumberMacro(createParam)) {