package com.celements.filebase.matcher; import java.util.regex.Pattern; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xwiki.component.annotation.Component; import org.xwiki.component.annotation.InstantiationStrategy; import org.xwiki.component.descriptor.ComponentInstantiationStrategy; import com.xpn.xwiki.doc.XWikiAttachment; @Component(AttNameWithoutExtMatcher.ATT_NAME_WITHOUT_EXT_MATCHER) @InstantiationStrategy(ComponentInstantiationStrategy.PER_LOOKUP) public class AttNameWithoutExtMatcher implements IAttFileNameMatcherRole { private static Logger LOGGER = LoggerFactory.getLogger(AttNameWithoutExtMatcher.class); public static final String ATT_NAME_WITHOUT_EXT_MATCHER = "attNameWithoutExtMatcher"; static final Pattern ATT_NAME_MATCH_WITHOUT_EXT = Pattern.compile("\\.[^.]+$"); private String fileNamePattern; @Override public boolean accept(XWikiAttachment attachment) { if ((attachment == null) || (fileNamePattern == null)) { LOGGER.debug("accept failed with Attachment [" + attachment + "] and " + "fileNamePattern [" + fileNamePattern + "]"); return false; } String[] split = ATT_NAME_MATCH_WITHOUT_EXT.split(attachment.getFilename()); return (split.length == 1) && split[0].equals(fileNamePattern); } @Override public void setFileNamePattern(String fileNamePattern) { this.fileNamePattern = fileNamePattern; } @Override public String getFileNamePattern() { return fileNamePattern; } }