org.apache.maven.mercury.metadata.sat
Class DefaultSatSolver

java.lang.Object
  extended by org.apache.maven.mercury.metadata.sat.DefaultSatSolver
All Implemented Interfaces:
EventGenerator, SatSolver

public class DefaultSatSolver
extends java.lang.Object
implements SatSolver

Default SAT4J implementation.

Version:
$Id: DefaultSatSolver.java 720571 2008-11-25 19:41:05Z ogusakov $
Author:
Oleg Gusakov

Field Summary
protected  org.apache.maven.mercury.metadata.sat.SatContext _context
           
protected  EventManager _eventManager
           
protected  MetadataTreeNode _root
           
protected  org.sat4j.pb.IPBSolver _solver
           
protected static java.util.Comparator<MetadataTreeNode> gaComparator
           
 
Fields inherited from interface org.apache.maven.mercury.metadata.sat.SatSolver
DEFAULT_TREE_SIZE, EVENT_CREATE_SOLVER, EVENT_SOLVE
 
Constructor Summary
DefaultSatSolver(MetadataTreeNode tree)
           
DefaultSatSolver(MetadataTreeNode tree, EventManager eventManager)
           
 
Method Summary
 void applyPolicies(java.util.List<java.util.Comparator<MetadataTreeNode>> comparators)
           
static SatSolver create(MetadataTreeNode tree)
           
static SatSolver create(MetadataTreeNode tree, EventManager eventManager)
           
protected static void fillBuckets(java.util.Map<java.lang.String,java.util.List<MetadataTreeNode>> buckets, MetadataTreeNode node)
           
 void register(MercuryEventListener listener)
           
protected static void removeDuplicateGAVs(java.util.List<MetadataTreeNode> bucket)
           
 void setEventManager(EventManager eventManager)
           
 java.util.List<ArtifactMetadata> solve()
           
 MetadataTreeNode solveAsTree()
           
protected static void sortBucket(java.util.List<MetadataTreeNode> bucket, java.util.Comparator<MetadataTreeNode> comparator, java.util.Comparator<MetadataTreeNode> lastComparator)
          reorders the bucket's lastComparator equal subsets with comparator.
protected static void sortBuckets(java.util.Map<java.lang.String,java.util.List<MetadataTreeNode>> buckets, java.util.List<java.util.Comparator<MetadataTreeNode>> comparators)
           
 void unRegister(MercuryEventListener listener)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_context

protected org.apache.maven.mercury.metadata.sat.SatContext _context

_solver

protected org.sat4j.pb.IPBSolver _solver

_root

protected MetadataTreeNode _root

_eventManager

protected EventManager _eventManager

gaComparator

protected static final java.util.Comparator<MetadataTreeNode> gaComparator
Constructor Detail

DefaultSatSolver

public DefaultSatSolver(MetadataTreeNode tree,
                        EventManager eventManager)
                 throws SatException
Throws:
SatException

DefaultSatSolver

public DefaultSatSolver(MetadataTreeNode tree)
                 throws SatException
Throws:
SatException
Method Detail

create

public static SatSolver create(MetadataTreeNode tree)
                        throws SatException
Throws:
SatException

create

public static SatSolver create(MetadataTreeNode tree,
                               EventManager eventManager)
                        throws SatException
Throws:
SatException

applyPolicies

public final void applyPolicies(java.util.List<java.util.Comparator<MetadataTreeNode>> comparators)
                         throws SatException
Specified by:
applyPolicies in interface SatSolver
Throws:
SatException

sortBuckets

protected static final void sortBuckets(java.util.Map<java.lang.String,java.util.List<MetadataTreeNode>> buckets,
                                        java.util.List<java.util.Comparator<MetadataTreeNode>> comparators)

removeDuplicateGAVs

protected static final void removeDuplicateGAVs(java.util.List<MetadataTreeNode> bucket)

sortBucket

protected static final void sortBucket(java.util.List<MetadataTreeNode> bucket,
                                       java.util.Comparator<MetadataTreeNode> comparator,
                                       java.util.Comparator<MetadataTreeNode> lastComparator)
reorders the bucket's lastComparator equal subsets with comparator.


fillBuckets

protected static final void fillBuckets(java.util.Map<java.lang.String,java.util.List<MetadataTreeNode>> buckets,
                                        MetadataTreeNode node)

solve

public final java.util.List<ArtifactMetadata> solve()
                                             throws SatException
Specified by:
solve in interface SatSolver
Returns:
list of ArtifactMetedata's in the solution
Throws:
SatException

solveAsTree

public final MetadataTreeNode solveAsTree()
                                   throws SatException
Throws:
SatException

register

public void register(MercuryEventListener listener)
Specified by:
register in interface EventGenerator

setEventManager

public void setEventManager(EventManager eventManager)
Specified by:
setEventManager in interface EventGenerator

unRegister

public void unRegister(MercuryEventListener listener)
Specified by:
unRegister in interface EventGenerator


Copyright © 2002-2008 The Apache Software Foundation. All Rights Reserved.