Author: ogusakov Date: Wed Aug 27 10:14:34 2008 New Revision: 689532 URL: http://svn.apache.org/viewvc?rev=689532&view=rev Log: intermediate state - repository APIs simplified, all tests good. Bug in getVersions - incorrect LATEST, RELEASE or snapshot TS
Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactBasicResults.java maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactResults.java Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactBasicResults.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactBasicResults.java?rev=689532&view=auto ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactBasicResults.java (added) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactBasicResults.java Wed Aug 27 10:14:34 2008 @@ -0,0 +1,120 @@ +package org.apache.maven.mercury.repository.api; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.maven.mercury.artifact.ArtifactBasicMetadata; + +/** + * + * @author Oleg Gusakov + * @version $Id$ + * + */ +public class ArtifactBasicResults +extends AbstractRepOpResult +{ + Map< ArtifactBasicMetadata, List<ArtifactBasicMetadata>> _result = new HashMap<ArtifactBasicMetadata, List<ArtifactBasicMetadata>>(8); + + /** + * first result is ready + */ + public ArtifactBasicResults( ArtifactBasicMetadata query, List<ArtifactBasicMetadata> result ) + { + this._result.put( query, result ); + } + + /** + * optimization opportunity + * + * @param size + */ + public ArtifactBasicResults( int size ) + { + } + + private ArtifactBasicResults() + { + } + + public static ArtifactBasicResults add( final ArtifactBasicResults res, final ArtifactBasicMetadata key, final Exception err ) + { + ArtifactBasicResults ret = res; + if( res == null ) + ret = new ArtifactBasicResults(); + + ret.addError( key, err ); + + return ret; + } + + public static ArtifactBasicResults add( final ArtifactBasicResults res, final ArtifactBasicMetadata key, final List<ArtifactBasicMetadata> result ) + { + ArtifactBasicResults ret = res; + if( res == null ) + ret = new ArtifactBasicResults(); + + ret.add( key, result ); + + return ret; + } + + public static ArtifactBasicResults add( final ArtifactBasicResults res, final ArtifactBasicMetadata key, final ArtifactBasicMetadata result ) + { + ArtifactBasicResults ret = res; + if( res == null ) + ret = new ArtifactBasicResults(); + + ret.add( key, result ); + + return ret; + } + + private List<ArtifactBasicMetadata> getOrCreate( ArtifactBasicMetadata query ) + { + List<ArtifactBasicMetadata> res = _result.get( query ); + if( res == null ) + { + res = new ArrayList<ArtifactBasicMetadata>(8); + _result.put( query, res ); + } + return res; + } + + public void add( ArtifactBasicMetadata query, List<ArtifactBasicMetadata> result ) + { + List<ArtifactBasicMetadata> res = getOrCreate( query ); + res.addAll( result ); + } + + public void add( ArtifactBasicMetadata query, ArtifactBasicMetadata result ) + { + List<ArtifactBasicMetadata> res = getOrCreate( query ); + res.add( result ); + } + + public Map< ArtifactBasicMetadata, List<ArtifactBasicMetadata>> getResults() + { + return _result; + } + + public List<ArtifactBasicMetadata> getResult( ArtifactBasicMetadata query ) + { + return _result.get( query ); + } + + @Override + public boolean hasResults() + { + return ! _result.isEmpty(); + } + + @Override + public boolean hasResults( ArtifactBasicMetadata key ) + { + return ! _result.isEmpty() && _result.containsKey( key ) && ! _result.get( key ).isEmpty(); + } + +} Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactResults.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactResults.java?rev=689532&view=auto ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactResults.java (added) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ArtifactResults.java Wed Aug 27 10:14:34 2008 @@ -0,0 +1,77 @@ +package org.apache.maven.mercury.repository.api; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.maven.mercury.artifact.Artifact; +import org.apache.maven.mercury.artifact.ArtifactBasicMetadata; + +/** + * + * + * @author Oleg Gusakov + * @version $Id$ + */ +public class ArtifactResults +extends AbstractRepOpResult +{ + Map< ArtifactBasicMetadata, List<Artifact>> _result = new HashMap<ArtifactBasicMetadata, List<Artifact>>(8); + + public ArtifactResults() + { + } + + public ArtifactResults( ArtifactBasicMetadata query, List<Artifact> result ) + { + this._result.put( query, result ); + } + + public void add( ArtifactBasicMetadata query, Artifact result ) + { + List<Artifact> res = _result.get( query ); + if( res == null ) + { + res = new ArrayList<Artifact>(8); + _result.put( query, res ); + } + + res.add( result ); + } + + public void addAll( ArtifactBasicMetadata query, List<Artifact> result ) + { + List<Artifact> res = _result.get( query ); + if( res == null ) + { + res = new ArrayList<Artifact>(8); + _result.put( query, res ); + } + + res.addAll( result ); + } + + public Map< ArtifactBasicMetadata, List<Artifact>> getResults() + { + return _result; + } + + public List<Artifact> getResults( ArtifactBasicMetadata query ) + { + return _result.get( query ); + } + + @Override + public boolean hasResults() + { + return ! _result.isEmpty(); + } + + @Override + public boolean hasResults( ArtifactBasicMetadata key ) + { + return ! _result.isEmpty() && _result.containsKey( key ) && ! _result.get( key ).isEmpty(); + } + +}