package org.org.eclipse.dws.core;
import org.org.repository.crawler.items.IPatternSet;
import org.org.repository.crawler.items.immutable.ImmutablePatternSet;
import org.org.repository.crawler.items.mutable.PatternSet;
public class LabelPatternSet implements IPatternSet {
private IPatternSet patternSet;
private final String extensionLabel;
public LabelPatternSet(String patternExtensionLabel) {
this.extensionLabel = patternExtensionLabel;
this.patternSet = DWSCorePlugin.getDefault().getPatternSetWithLabel(patternExtensionLabel);
}
private void checkPatternSet() {
if (patternSet == null) {
synchronized (this) {
this.patternSet = DWSCorePlugin.getDefault().getPatternSetWithLabel(extensionLabel);
if (patternSet == null) {
throw new NullPointerException("Pattern set with extension id: \"" + extensionLabel + "\" is not available.");
}
}
}
}
public String getDirectoryEntryPattern() {
checkPatternSet();
return patternSet.getDirectoryEntryPattern();
}
public String getEntryPattern() {
checkPatternSet();
return patternSet.getEntryPattern();
}
public String getFileEntryPattern() {
checkPatternSet();
return patternSet.getFileEntryPattern();
}
public ImmutablePatternSet getImmutable() {
checkPatternSet();
return patternSet.getImmutable();
}
public String getLabel() {
checkPatternSet();
return patternSet.getLabel();
}
public PatternSet getMutable() {
checkPatternSet();
return patternSet.getMutable();
}
public String getParentDirectoryPattern() {
checkPatternSet();
return patternSet.getParentDirectoryPattern();
}
}