package ecologylab.bigsemantics.tools;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import ecologylab.bigsemantics.collecting.SemanticsSessionScope;
import ecologylab.bigsemantics.cyberneko.CybernekoWrapper;
import ecologylab.bigsemantics.generated.library.RepositoryMetadataTypesScope;
import ecologylab.bigsemantics.metametadata.ExampleUrl;
import ecologylab.bigsemantics.metametadata.MetaMetadata;
import ecologylab.bigsemantics.metametadata.MetaMetadataSelector;
public class ListWrappersMissingExampleUrls
{
SemanticsSessionScope scope;
List<String> names;
public ListWrappersMissingExampleUrls()
{
scope = new SemanticsSessionScope(RepositoryMetadataTypesScope.get(),
CybernekoWrapper.class);
}
public void list()
{
names = new ArrayList<String>();
Collection<MetaMetadata> mmds = scope.getMetaMetadataRepository().getMetaMetadataCollection();
for (MetaMetadata mmd : mmds)
{
if (mmd.isBuiltIn())
{
continue;
}
ArrayList<MetaMetadataSelector> selectors = mmd.getSelectors();
if (selectors != null && selectors.size() > 0)
{
if (hasUrlBasedSelector(selectors))
{
ArrayList<ExampleUrl> exampleUrls = mmd.getExampleUrls();
if (exampleUrls == null || exampleUrls.size() == 0)
{
names.add(mmd.getName());
}
}
}
}
output(names);
}
private boolean hasUrlBasedSelector(ArrayList<MetaMetadataSelector> selectors)
{
for (MetaMetadataSelector selector : selectors)
{
if (isUrlBased(selector))
{
return true;
}
}
return false;
}
private boolean isUrlBased(MetaMetadataSelector selector)
{
if (selector.getUrlStripped() != null && selector.getUrlStripped().toString().length() > 0)
{
return true;
}
if (selector.getUrlPathTree() != null && selector.getUrlPathTree().toString().length() > 0)
{
return true;
}
if (selector.getUrlRegex() != null && selector.getUrlRegex().pattern().length() > 0)
{
return true;
}
if (selector.getUrlRegexFragment() != null
&& selector.getUrlRegexFragment().pattern().length() > 0)
{
return true;
}
return false;
}
private void output(List<String> names)
{
Collections.sort(names);
for (String name : names)
{
System.out.println(name);
}
}
public static void main(String[] args)
{
ListWrappersMissingExampleUrls l = new ListWrappersMissingExampleUrls();
l.list();
}
}