/*
* Copyright 2014 cruxframework.org.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package org.cruxframework.crux.scanner.archiveiterator;
import java.net.URL;
import java.util.List;
import org.cruxframework.crux.scanner.ScannerRegistration;
import org.cruxframework.crux.scanner.ScannerRegistration.ScannerMatch;
/**
* @author Thiago da Rosa de Bustamante
*
*/
public abstract class URLIterator
{
private List<ScannerRegistration> scanners;
public URLIterator(List<ScannerRegistration> scanners)
{
this.scanners = scanners;
}
protected void consumeWhenAccepted(URL parentURL, URL url, String fileName)
{
for (ScannerRegistration scannerRegistration : scanners)
{
Filter filter = scannerRegistration.getFilter();
if (filter == null || filter.accepts(fileName))
{
scannerRegistration.addMatch(new ScannerMatch(parentURL, url));
}
}
}
public abstract void search();
}