import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+
import java.net.URI;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
+
import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.ModuleImport;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
+import org.opendaylight.yangtools.yang.parser.util.TopologicalSort.Node;
import org.opendaylight.yangtools.yang.parser.util.TopologicalSort.NodeImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Date DEFAULT_REVISION = new Date(0);
private static final Logger LOGGER = LoggerFactory.getLogger(ModuleDependencySort.class);
+ private static final Function<Node, Module> TOPOLOGY_FUNCTION = new Function<TopologicalSort.Node, Module>() {
+ @Override
+ public Module apply(final TopologicalSort.Node input) {
+ ModuleOrModuleBuilder moduleOrModuleBuilder = ((ModuleNodeImpl) input).getReference();
+ return moduleOrModuleBuilder.getModule();
+ }
+ };
/**
* It is not desirable to instance this class
List<TopologicalSort.Node> sorted = sortInternal(ModuleOrModuleBuilder.fromAll(asList(modules),
Collections.<ModuleBuilder>emptyList()));
// Cast to Module from Node and return
- return Lists.transform(sorted, new Function<TopologicalSort.Node, Module>() {
-
- @Override
- public Module apply(final TopologicalSort.Node input) {
- ModuleOrModuleBuilder moduleOrModuleBuilder = ((ModuleNodeImpl) input).getReference();
- return moduleOrModuleBuilder.getModule();
- }
- });
+ return Lists.transform(sorted, TOPOLOGY_FUNCTION);
}
private static List<TopologicalSort.Node> sortInternal(final Iterable<ModuleOrModuleBuilder> modules) {
private final Optional<Module> maybeModule;
private final Optional<ModuleBuilder> maybeModuleBuilder;
- ModuleOrModuleBuilder(Module module) {
+ ModuleOrModuleBuilder(final Module module) {
maybeModule = Optional.of(module);
maybeModuleBuilder = Optional.absent();
}
- ModuleOrModuleBuilder(ModuleBuilder moduleBuilder) {
+ ModuleOrModuleBuilder(final ModuleBuilder moduleBuilder) {
maybeModule = Optional.absent();
maybeModuleBuilder = Optional.of(moduleBuilder);
}
return maybeModuleBuilder.get();
}
- static List<ModuleOrModuleBuilder> fromAll(Collection<Module> modules, Collection<ModuleBuilder> moduleBuilders) {
+ static List<ModuleOrModuleBuilder> fromAll(final Collection<Module> modules, final Collection<ModuleBuilder> moduleBuilders) {
List<ModuleOrModuleBuilder> result = new ArrayList<>(modules.size() + moduleBuilders.size());
for(Module m: modules){
result.add(new ModuleOrModuleBuilder(m));