#!/usr/local/bin/dot
#
# Class diagram 
# Generated by UmlGraph version 4.6 (http://www.spinellis.gr/sw/umlgraph)
#

digraph G {
	edge [fontname="Helvetica",fontsize=10,labelfontname="Helvetica",labelfontsize=10];
	node [fontname="Helvetica",fontsize=10,shape=plaintext];
	// org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase
	c28377 [label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="../AbstractArchivaDatabaseTestCase.html">
		<tr><td><table border="0" cellspacing="0" cellpadding="1">
			<tr><td><font face="Helvetica-Oblique"> AbstractArchivaDatabaseTestCase </font></td></tr>
			<tr><td><font point-size="7.0"> org.apache.maven.archiva.database </font></td></tr>
		</table></td></tr>
		</table>>, fontname="Helvetica", fontcolor="black", fontsize=9.0];
	// org.apache.maven.archiva.database.constraints.ProjectsByArtifactUsageConstraintTest
	c28389 [label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" bgcolor="lemonChiffon" href="./ProjectsByArtifactUsageConstraintTest.html">
		<tr><td><table border="0" cellspacing="0" cellpadding="1">
			<tr><td> ProjectsByArtifactUsageConstraintTest </td></tr>
		</table></td></tr>
		</table>>, fontname="Helvetica", fontcolor="black", fontsize=9.0];
	//org.apache.maven.archiva.database.constraints.ProjectsByArtifactUsageConstraintTest extends org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase
	c28377:p -> c28389:p [dir=back,arrowtail=empty];
	// org.apache.maven.archiva.database.constraints.ProjectsByArtifactUsageConstraintTest DEPEND org.apache.maven.archiva.database.DeclarativeConstraint
	c28389:p -> c28515:p [taillabel="", label="", headlabel="", fontname="Helvetica", fontcolor="black", fontsize=10.0, color="black", arrowhead=open, style=dashed];
	// org.apache.maven.archiva.database.constraints.ProjectsByArtifactUsageConstraintTest DEPEND org.apache.maven.archiva.model.ArchivaArtifact
	c28389:p -> c28516:p [taillabel="", label="", headlabel="", fontname="Helvetica", fontcolor="black", fontsize=10.0, color="black", arrowhead=open, style=dashed];
	// org.apache.maven.archiva.model.ArchivaArtifact
	c28516 [label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://java.sun.com/j2se/1.4.2/docs/api/org/apache/maven/archiva/model/ArchivaArtifact.html">
		<tr><td><table border="0" cellspacing="0" cellpadding="1">
			<tr><td> ArchivaArtifact </td></tr>
			<tr><td><font point-size="7.0"> org.apache.maven.archiva.model </font></td></tr>
		</table></td></tr>
		</table>>, fontname="Helvetica", fontcolor="black", fontsize=9.0];
	// org.apache.maven.archiva.database.DeclarativeConstraint
	c28515 [label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://java.sun.com/j2se/1.4.2/docs/api/org/apache/maven/archiva/database/DeclarativeConstraint.html">
		<tr><td><table border="0" cellspacing="0" cellpadding="1">
			<tr><td> &laquo;interface&raquo; </td></tr>
			<tr><td> DeclarativeConstraint </td></tr>
			<tr><td><font point-size="7.0"> org.apache.maven.archiva.database </font></td></tr>
		</table></td></tr>
		</table>>, fontname="Helvetica", fontcolor="black", fontsize=9.0];
}

