test_class.file: plugin-maven/src/test/java/org/eclipse/steady/java/mvn/AbstractVulasMojoTest.java
test_class.identifier: AbstractVulasMojoTest
test_case.body: @Test
    public void testGetParent() {
      // Construct the dependency trail as provided by Artifact.getDependencyTrail()
      final List<String> trail = new ArrayList<String>();
      trail.add("commons-fileupload:commons-fileupload:jar:1.2.1");
      trail.add("commons-codec:commons-codec:jar:1.2.1");
      trail.add("commons-lang:commons-lang:jar:1.2.1");
  
      final MvnPluginReport m = new MvnPluginReport();
      final LibraryId parent = m.getParent(trail);
      assertEquals(new LibraryId("commons-codec", "commons-codec", "1.2.1"), parent);
    }
test_case.class_method_signature: AbstractVulasMojoTest.testGetParent()
test_case.full_signature: @Test public void testGetParent()
test_case.identifier: testGetParent
test_case.invocations: add add add getParent assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetParent()
focal_class.declarator: INCLUDES = "vulas.maven.includes"
focal_class.modifier: private static final
focal_class.original_string: private static final String INCLUDES = "vulas.maven.includes";
focal_class.type: String
focal_class.var_name: INCLUDES
focal_class.declarator: EXCLUDES = "vulas.maven.excludes"
focal_class.modifier: private static final
focal_class.original_string: private static final String EXCLUDES = "vulas.maven.excludes";
focal_class.type: String
focal_class.var_name: EXCLUDES
focal_class.declarator: IGNORE_POMS = "vulas.maven.ignorePoms"
focal_class.modifier: private static final
focal_class.original_string: private static final String IGNORE_POMS = "vulas.maven.ignorePoms";
focal_class.type: String
focal_class.var_name: IGNORE_POMS
focal_class.declarator: PLUGIN_CFG_LAYER = "Maven-Plugin-Config"
focal_class.modifier: protected static final
focal_class.original_string: protected static final String PLUGIN_CFG_LAYER = "Maven-Plugin-Config";
focal_class.type: String
focal_class.var_name: PLUGIN_CFG_LAYER
focal_class.declarator: project
focal_class.modifier: @Parameter(defaultValue = "${project}", property = "project", required = true, readonly = true)
    protected
focal_class.original_string: @Parameter(defaultValue = "${project}", property = "project", required = true, readonly = true)
    protected MavenProject project;
focal_class.type: MavenProject
focal_class.var_name: project
focal_class.declarator: session
focal_class.modifier: @Parameter(defaultValue = "${session}", property = "session", required = true, readonly = true)
    protected
focal_class.original_string: @Parameter(defaultValue = "${session}", property = "session", required = true, readonly = true)
    protected MavenSession session;
focal_class.type: MavenSession
focal_class.var_name: session
focal_class.declarator: layeredConfiguration
focal_class.modifier: @Parameter private
focal_class.original_string: @Parameter private Map<?, ?> layeredConfiguration;
focal_class.type: Map<?, ?>
focal_class.var_name: layeredConfiguration
focal_class.declarator: goal = null
focal_class.modifier: protected
focal_class.original_string: protected AbstractAppGoal goal = null;
focal_class.type: AbstractAppGoal
focal_class.var_name: goal
focal_class.declarator: includeArtifacts = null
focal_class.modifier: private
focal_class.original_string: private StringList includeArtifacts = null;
focal_class.type: StringList
focal_class.var_name: includeArtifacts
focal_class.declarator: excludeArtifacts = null
focal_class.modifier: private
focal_class.original_string: private StringList excludeArtifacts = null;
focal_class.type: StringList
focal_class.var_name: excludeArtifacts
focal_class.declarator: ignorePoms = false
focal_class.modifier: private
focal_class.original_string: private boolean ignorePoms = false;
focal_class.type: boolean
focal_class.var_name: ignorePoms
focal_class.declarator: vulasConfiguration = new VulasConfiguration()
focal_class.modifier: protected
focal_class.original_string: protected VulasConfiguration vulasConfiguration = new VulasConfiguration();
focal_class.type: VulasConfiguration
focal_class.var_name: vulasConfiguration
focal_class.file: plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasMojo.java
focal_class.identifier: AbstractVulasMojo
focal_class.class_method_signature: AbstractVulasMojo.prepareConfiguration()
focal_class.full_signature: public final void prepareConfiguration()
focal_class.identifier: prepareConfiguration
focal_class.modifiers: public final
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void prepareConfiguration()
focal_class.class_method_signature: AbstractVulasMojo.execute()
focal_class.full_signature: public void execute()
focal_class.identifier: execute
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void execute()
focal_class.class_method_signature: AbstractVulasMojo.isPassingFilter(MavenProject _prj)
focal_class.full_signature: protected boolean isPassingFilter(MavenProject _prj)
focal_class.identifier: isPassingFilter
focal_class.modifiers: protected
focal_class.parameters: (MavenProject _prj)
focal_class.return: boolean
focal_class.signature: boolean isPassingFilter(MavenProject _prj)
focal_class.class_method_signature: AbstractVulasMojo.createGoal()
focal_class.full_signature: protected abstract void createGoal()
focal_class.identifier: createGoal
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void createGoal()
focal_class.class_method_signature: AbstractVulasMojo.executeGoal()
focal_class.full_signature: protected void executeGoal()
focal_class.identifier: executeGoal
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void executeGoal()
focal_class.class_method_signature: AbstractVulasMojo.setKnownDependencies()
focal_class.full_signature: private final void setKnownDependencies()
focal_class.identifier: setKnownDependencies
focal_class.modifiers: private final
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void setKnownDependencies()
focal_class.class_method_signature: AbstractVulasMojo.getParent(List<String> _trail)
focal_class.full_signature: protected final LibraryId getParent(List<String> _trail)
focal_class.identifier: getParent
focal_class.modifiers: protected final
focal_class.parameters: (List<String> _trail)
focal_class.return: LibraryId
focal_class.signature: LibraryId getParent(List<String> _trail)
focal_class.class_method_signature: AbstractVulasMojo.parseGAPV(@NotNull String _string)
focal_class.full_signature: protected final LibraryId parseGAPV(@NotNull String _string)
focal_class.identifier: parseGAPV
focal_class.modifiers: protected final
focal_class.parameters: (@NotNull String _string)
focal_class.return: LibraryId
focal_class.signature: LibraryId parseGAPV(@NotNull String _string)
focal_class.superclass: extends AbstractMojo
focal_method.body: protected final LibraryId getParent(List<String> _trail) {
      LibraryId parent = null;
      // Should not occur
      if (_trail == null || _trail.size() < 2) {
        getLog().warn("Invalid dependency trail [" + _trail + "]");
      }
      // Dependency is direct, there's no parent
      else if (_trail.size() == 2) {
        ;
      }
      // Dependency is transitive, get parent
      else {
        parent = this.parseGAPV(_trail.get(_trail.size() - 2));
      }
      return parent;
    }
focal_method.class_method_signature: AbstractVulasMojo.getParent(List<String> _trail)
focal_method.full_signature: protected final LibraryId getParent(List<String> _trail)
focal_method.identifier: getParent
focal_method.invocations: size warn getLog size parseGAPV get size
focal_method.modifiers: protected final
focal_method.parameters: (List<String> _trail)
focal_method.return: LibraryId
focal_method.signature: LibraryId getParent(List<String> _trail)