aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraph.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraph.java')
-rw-r--r--framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraph.java523
1 files changed, 0 insertions, 523 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraph.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraph.java
deleted file mode 100644
index 55b02504..00000000
--- a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraph.java
+++ /dev/null
@@ -1,523 +0,0 @@
-package org.apache.maven.repository.metadata;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeSet;
-
-import org.apache.maven.artifact.ArtifactScopeEnum;
-
-/**
- * maven dependency metadata graph
- *
- * @author <a href="oleg@codehaus.org">Oleg Gusakov</a>
- *
- */
-public class MetadataGraph
-{
- public static final int DEFAULT_VERTICES = 32;
- public static final int DEFAULT_EDGES = 64;
-
- // flags to indicate the granularity of vertices
- private boolean versionedVertices = false;
- private boolean scopedVertices = false;
- /**
- * the entry point we started building the graph from
- */
- MetadataGraphVertex entry;
-
- // graph vertices
- TreeSet<MetadataGraphVertex> vertices;
-
- /**
- * incident and excident edges per node
- */
- Map<MetadataGraphVertex, List<MetadataGraphEdge>> incidentEdges;
- Map<MetadataGraphVertex, List<MetadataGraphEdge>> excidentEdges;
-
- /**
- * null in dirty graph, actual
- * scope for conflict-resolved graph
- */
- ArtifactScopeEnum scope;
-
- //------------------------------------------------------------------------
- /**
- * init graph
- */
- public MetadataGraph( int nVertices )
- {
- init( nVertices, 2 * nVertices );
- }
- public MetadataGraph( int nVertices, int nEdges )
- {
- init( nVertices, nEdges );
- }
- //------------------------------------------------------------------------
- /**
- * construct a single vertex
- */
- public MetadataGraph( MetadataGraphVertex entry )
- throws MetadataResolutionException
- {
- checkVertex( entry );
- checkVertices( 1 );
-
- entry.setCompareVersion( versionedVertices );
- entry.setCompareScope( scopedVertices );
-
- vertices.add( entry );
- this.entry = entry;
- }
- //------------------------------------------------------------------------
- /**
- * construct graph from a "dirty" tree
- */
- public MetadataGraph( MetadataTreeNode tree )
- throws MetadataResolutionException
- {
- this( tree, false, false );
- }
- //------------------------------------------------------------------------
- /**
- * construct graph from a "dirty" tree
- *
- * @param tree "dirty" tree root
- * @param versionedVertices true if graph nodes should be versioned (different versions -> different nodes)
- * @param scopedVertices true if graph nodes should be versioned and scoped (different versions and/or scopes -> different nodes)
- *
- */
- public MetadataGraph( MetadataTreeNode tree, boolean versionedVertices, boolean scopedVertices )
- throws MetadataResolutionException
- {
- if ( tree == null )
- {
- throw new MetadataResolutionException( "tree is null" );
- }
-
- setVersionedVertices( versionedVertices );
- setScopedVertices( scopedVertices );
-
- this.versionedVertices = scopedVertices || versionedVertices;
- this.scopedVertices = scopedVertices;
-
- int count = countNodes( tree );
-
- init( count, count + ( count / 2 ) );
-
- processTreeNodes( null, tree, 0, 0 );
- }
- //------------------------------------------------------------------------
- private void processTreeNodes( MetadataGraphVertex parentVertex, MetadataTreeNode node, int depth, int pomOrder )
- throws MetadataResolutionException
- {
- if ( node == null )
- {
- return;
- }
-
- MetadataGraphVertex vertex = new MetadataGraphVertex( node.md, versionedVertices, scopedVertices );
- if ( !vertices.contains( vertex ) )
- {
- vertices.add( vertex );
- }
-
- if ( parentVertex != null ) // then create the edge
- {
- ArtifactMetadata md = node.getMd();
- MetadataGraphEdge e =
- new MetadataGraphEdge( md.version, md.resolved, md.artifactScope, md.artifactUri, depth, pomOrder );
- addEdge( parentVertex, vertex, e );
- }
- else
- {
- entry = vertex;
- }
-
- MetadataTreeNode[] kids = node.getChildren();
- if ( kids == null || kids.length < 1 )
- {
- return;
- }
-
- for ( int i = 0; i < kids.length; i++ )
- {
- MetadataTreeNode n = kids[i];
- processTreeNodes( vertex, n, depth + 1, i );
- }
- }
- //------------------------------------------------------------------------
- public MetadataGraphVertex findVertex( ArtifactMetadata md )
- {
- if ( md == null || vertices == null || vertices.size() < 1 )
- {
- return null;
- }
-
- MetadataGraphVertex v = new MetadataGraphVertex( md );
- v.setCompareVersion( versionedVertices );
- v.setCompareScope( scopedVertices );
-
- for ( MetadataGraphVertex gv : vertices )
- {
- if ( gv.equals( v ) )
- {
- return gv;
- }
- }
-
- return null;
- }
- //------------------------------------------------------------------------
- public MetadataGraphVertex addVertex( ArtifactMetadata md )
- {
- if ( md == null )
- {
- return null;
- }
-
- checkVertices();
-
- MetadataGraphVertex v = findVertex( md );
- if ( v != null )
- {
- return v;
- }
-
- v = new MetadataGraphVertex( md );
-
- v.setCompareVersion( versionedVertices );
- v.setCompareScope( scopedVertices );
-
- vertices.add( v );
- return v;
- }
- //------------------------------------------------------------------------
- /**
- * init graph
- */
- private void init( int nVertices, int nEdges )
- {
- int nV = nVertices;
- if ( nVertices < 1 )
- {
- nV = 1;
- }
-
- checkVertices( nV );
-
- int nE = nVertices;
- if ( nEdges <= nV )
- {
- nE = 2 * nE;
- }
-
- checkEdges( nE );
- }
-
- private void checkVertices()
- {
- checkVertices( DEFAULT_VERTICES );
- }
-
- private void checkVertices( int nVertices )
- {
- if ( vertices == null )
- {
- vertices = new TreeSet<MetadataGraphVertex>();
- }
- }
- private void checkEdges()
- {
- int count = DEFAULT_EDGES;
-
- if ( vertices != null )
- {
- count = vertices.size() + vertices.size() / 2;
- }
-
- checkEdges( count );
- }
- private void checkEdges( int nEdges )
- {
- if ( incidentEdges == null )
- {
- incidentEdges = new HashMap<MetadataGraphVertex, List<MetadataGraphEdge>>( nEdges );
- }
- if ( excidentEdges == null )
- {
- excidentEdges = new HashMap<MetadataGraphVertex, List<MetadataGraphEdge>>( nEdges );
- }
- }
- //------------------------------------------------------------------------
- private static void checkVertex( MetadataGraphVertex v )
- throws MetadataResolutionException
- {
- if ( v == null )
- {
- throw new MetadataResolutionException( "null vertex" );
- }
- if ( v.getMd() == null )
- {
- throw new MetadataResolutionException( "vertex without metadata" );
- }
- }
- //------------------------------------------------------------------------
- private static void checkEdge( MetadataGraphEdge e )
- throws MetadataResolutionException
- {
- if ( e == null )
- {
- throw new MetadataResolutionException( "badly formed edge" );
- }
- }
- //------------------------------------------------------------------------
- public List<MetadataGraphEdge> getEdgesBetween( MetadataGraphVertex vFrom, MetadataGraphVertex vTo )
- {
- List<MetadataGraphEdge> edges = getIncidentEdges( vTo );
- if ( edges == null || edges.isEmpty() )
- {
- return null;
- }
-
- List<MetadataGraphEdge> res = new ArrayList<MetadataGraphEdge>( edges.size() );
-
- for ( MetadataGraphEdge e : edges )
- {
- if ( e.getSource().equals( vFrom ) )
- {
- res.add( e );
- }
- }
-
- return res;
- }
- //------------------------------------------------------------------------
- public MetadataGraph addEdge( MetadataGraphVertex vFrom, MetadataGraphVertex vTo, MetadataGraphEdge e )
- throws MetadataResolutionException
- {
- checkVertex( vFrom );
- checkVertex( vTo );
-
- checkVertices();
-
- checkEdge( e );
- checkEdges();
-
- e.setSource( vFrom );
- e.setTarget( vTo );
-
- vFrom.setCompareVersion( versionedVertices );
- vFrom.setCompareScope( scopedVertices );
-
- List<MetadataGraphEdge> exList = excidentEdges.get( vFrom );
- if ( exList == null )
- {
- exList = new ArrayList<MetadataGraphEdge>();
- excidentEdges.put( vFrom, exList );
- }
-
- if ( !exList.contains( e ) )
- {
- exList.add( e );
- }
-
- List<MetadataGraphEdge> inList = incidentEdges.get( vTo );
- if ( inList == null )
- {
- inList = new ArrayList<MetadataGraphEdge>();
- incidentEdges.put( vTo, inList );
- }
-
- if ( !inList.contains( e ) )
- {
- inList.add( e );
- }
-
- return this;
- }
- //------------------------------------------------------------------------
- public MetadataGraph removeVertex( MetadataGraphVertex v )
- {
- if ( vertices != null && v != null )
- {
- vertices.remove( v );
- }
-
- if ( incidentEdges != null )
- {
- incidentEdges.remove( v );
- }
-
- if ( excidentEdges != null )
- {
- excidentEdges.remove( v );
- }
-
- return this;
-
- }
- //------------------------------------------------------------------------
- private static int countNodes( MetadataTreeNode tree )
- {
- if ( tree == null )
- {
- return 0;
- }
-
- int count = 1;
- MetadataTreeNode[] kids = tree.getChildren();
- if ( kids == null || kids.length < 1 )
- {
- return count;
- }
- for ( MetadataTreeNode n : kids )
- {
- count += countNodes( n );
- }
-
- return count;
- }
-
- //------------------------------------------------------------------------
- public MetadataGraphVertex getEntry()
- {
- return entry;
- }
-
- public void setEntry( MetadataGraphVertex entry )
- {
- this.entry = entry;
- }
-
- public TreeSet<MetadataGraphVertex> getVertices()
- {
- return vertices;
- }
-
- public List<MetadataGraphEdge> getIncidentEdges( MetadataGraphVertex vertex )
- {
- checkEdges();
- return incidentEdges.get( vertex );
- }
-
- public List<MetadataGraphEdge> getExcidentEdges( MetadataGraphVertex vertex )
- {
- checkEdges();
- return excidentEdges.get( vertex );
- }
-
- public boolean isVersionedVertices()
- {
- return versionedVertices;
- }
-
- public void setVersionedVertices( boolean versionedVertices )
- {
- this.versionedVertices = versionedVertices;
- }
-
- public boolean isScopedVertices()
- {
- return scopedVertices;
- }
-
- public void setScopedVertices( boolean scopedVertices )
- {
- this.scopedVertices = scopedVertices;
-
- // scoped graph is versioned by definition
- if ( scopedVertices )
- {
- versionedVertices = true;
- }
- }
-
- public ArtifactScopeEnum getScope()
- {
- return scope;
- }
-
- public void setScope( ArtifactScopeEnum scope )
- {
- this.scope = scope;
- }
-
- // ------------------------------------------------------------------------
- public boolean isEmpty()
- {
- return entry == null || vertices == null || vertices.isEmpty();
- }
-
- //------------------------------------------------------------------------
- public boolean isEmptyEdges()
- {
- return isEmpty() || incidentEdges == null || incidentEdges.isEmpty();
- }
- //------------------------------------------------------------------------
- @Override
- public String toString()
- {
- StringBuilder sb = new StringBuilder( 512 );
- if ( isEmpty() )
- {
- return "empty";
- }
- for ( MetadataGraphVertex v : vertices )
- {
- sb.append( "Vertex: " ).append( v.getMd().toString() ).append( "\n" );
- List<MetadataGraphEdge> ins = getIncidentEdges( v );
- if ( ins != null )
- {
- for ( MetadataGraphEdge e : ins )
- {
- sb.append( " from : " ).append( e.toString() ).append( "\n" );
- }
- }
- else
- {
- sb.append( " no entries\n" );
- }
-
- List<MetadataGraphEdge> outs = getExcidentEdges( v );
- if ( outs != null )
- {
- for ( MetadataGraphEdge e : outs )
- {
- sb.append( " to : " ).append( e.toString() ).append( "\n" );
- }
- }
- else
- {
- sb.append( " no exit\n" );
- }
-
- sb.append( "-------------------------------------------------\n" );
- }
- sb.append( "=============================================================\n" );
- return sb.toString();
- }
-
- //------------------------------------------------------------------------
- //------------------------------------------------------------------------
-}