package org.bundlemaker.core.internal.parser; import java.util.Collections; import java.util.LinkedList; import java.util.List; import org.bundlemaker.core.parser.IProblem; import org.bundlemaker.core.project.IProjectContentEntry; import org.bundlemaker.core.spi.parser.IParsableResource; import org.bundlemaker.core.spi.parser.IParser; import org.bundlemaker.core.spi.parser.IParserFactory; import org.eclipse.core.runtime.CoreException; /** */ public interface IParserService { /** * <p> * </p> * * @param content * @param resource * @param parseReferences * @return * @throws CoreException */ List<IProblem> parseResource(IProjectContentEntry content, IParsableResource resource, boolean parseReferences) throws CoreException; /** * <p> * </p> */ public static class Factory { /** * @author GWUETHER */ private static final class ParserService implements IParserService { /** - */ private List<IParser> _parsers; /** * <p> * </p> */ public ParserService() { // _parsers = new LinkedList<IParser>(); // for (IParserFactory parserFactory : XYZService.instance().getParserFactoryRegistry().getParserFactories()) { try { // _parsers.add(parserFactory.createParser()); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** */ @Override public List<IProblem> parseResource(IProjectContentEntry content, IParsableResource resource, boolean parseReferences) throws CoreException { // for (IParser parser : _parsers) { if (parser.canParse(resource)) { return parser.parseResource(content, resource, parseReferences, false); } } return Collections.emptyList(); } } // TODO: Evil singleton private static IParserService _parserService; /** * @return */ public static IParserService getParserService() { // if (_parserService == null) { // _parserService = new ParserService(); } // return _parserService; } } }