Package org.sonar.api.design

Examples of org.sonar.api.design.Dependency


  public void save() {
    final Collection<Directory> packages = packagesGraph.getVertices();
    for (Directory dir : packages) {
      //Save dependencies (cross-directories, including cross-directory file dependencies)
      for (DirectoryEdge edge : packagesGraph.getOutgoingEdges(dir)) {
        Dependency dependency = new Dependency(dir, edge.getTo())
            .setUsage("references")
            .setWeight(edge.getWeight())
            .setParent(null);
        context.saveDependency(dependency);
        dependencyIndex.put(edge, dependency);
View Full Code Here


    }
  }

  private void saveFileEdge(FileEdge edge, Dependency parent) {
    if (!dependencyIndex.containsKey(edge)) {
      Dependency dependency = new Dependency(edge.getFrom(), edge.getTo())
          .setUsage("includes")
          .setWeight(edge.getWeight())
          .setParent(parent);
      context.saveDependency(dependency);
      dependencyIndex.put(edge, dependency);
View Full Code Here

  private void serializeCell(int y, int x) {
    DsmCell cell = dsm.cell(x, y);
    json.append('{');
    if (cell != null && cell.getEdge() != null && cell.getWeight() > 0) {
      Dependency dep = (Dependency) cell.getEdge();
      json.append("\"i\":");
      json.append(dep.getId());
      json.append(",\"w\":");
      json.append(cell.getWeight());
    }
    json.append('}');
  }
View Full Code Here

    if (sonarIndex.getEdge(fromResource, toResource) != null) {
      throw new IllegalStateException("Dependency between " + dep.from() + " and " + dep.to() + " was already saved.");
    }
    Directory fromParent = fromResource.getParent();
    Directory toParent = toResource.getParent();
    Dependency parentDep = null;
    if (!fromParent.equals(toParent)) {
      parentDep = sonarIndex.getEdge(fromParent, toParent);
      if (parentDep != null) {
        parentDep.setWeight(parentDep.getWeight() + 1);
      } else {
        parentDep = new Dependency(fromParent, toParent).setUsage(USES).setWeight(1);
        parentDep = sensorContext.saveDependency(parentDep);
      }
    }
    sensorContext.saveDependency(new Dependency(fromResource, toResource)
      .setUsage(USES)
      .setWeight(dep.weight())
      .setParent(parentDep));
  }
View Full Code Here

  }

  private void saveDependencies(Resource from, Collection<InputDependency> deps, SensorContext context) {
    for (InputDependency inputDep : deps) {
      Resource to = toResource(inputDep, context);
      Dependency dependency = new Dependency(from, to);
      dependency.setUsage(inputDep.scope());
      dependency.setWeight(1);
      context.saveDependency(dependency);
      if (!inputDep.dependencies().isEmpty()) {
        saveDependencies(to, inputDep.dependencies(), context);
      }
    }
View Full Code Here

  }

  protected void saveDependency(final Project project, DependencyNode node, SensorContext context) {
    Resource from = (node.getParent().getParent() == null) ? index.getProject() : toResource(project, node.getParent().getArtifact(), context);
    Resource to = toResource(project, node.getArtifact(), context);
    Dependency dependency = new Dependency(from, to);
    dependency.setUsage(node.getArtifact().getScope());
    dependency.setWeight(1);
    context.saveDependency(dependency);
  }
View Full Code Here

  //
  //

  @Override
  public Dependency addDependency(Dependency dependency) {
    Dependency existingDep = getEdge(dependency.getFrom(), dependency.getTo());
    if (existingDep != null) {
      return existingDep;
    }

    Dependency parentDependency = dependency.getParent();
    if (parentDependency != null) {
      addDependency(parentDependency);
    }

    if (registerDependency(dependency)) {
View Full Code Here

    File foo = File.create("src/Foo.java");
    File bar = File.create("src/Bar.java");
    when(sensorContext.getResource(foo)).thenReturn(foo);
    when(sensorContext.getResource(bar)).thenReturn(bar);
    when(sonarIndex.getEdge(foo, bar)).thenReturn(new Dependency(foo, bar));

    thrown.expect(IllegalStateException.class);
    thrown.expectMessage("Dependency between [moduleKey=foo, relative=src/Foo.java, abs=null] and [moduleKey=foo, relative=src/Bar.java, abs=null] was already saved.");

    adaptor.store(new DefaultDependency()
View Full Code Here

    ArgumentCaptor<Dependency> argumentCaptor = ArgumentCaptor.forClass(Dependency.class);

    verify(sensorContext, times(2)).saveDependency(argumentCaptor.capture());
    assertThat(argumentCaptor.getAllValues()).hasSize(2);
    Dependency value1 = argumentCaptor.getAllValues().get(0);
    assertThat(value1.getFrom()).isEqualTo(Directory.create("src1"));
    assertThat(value1.getTo()).isEqualTo(Directory.create("src2"));
    assertThat(value1.getWeight()).isEqualTo(1);
    assertThat(value1.getUsage()).isEqualTo("USES");

    Dependency value2 = argumentCaptor.getAllValues().get(1);
    assertThat(value2.getFrom()).isEqualTo(foo);
    assertThat(value2.getTo()).isEqualTo(bar);
    assertThat(value2.getWeight()).isEqualTo(3);
    assertThat(value2.getUsage()).isEqualTo("USES");
  }
View Full Code Here

    File bar = File.create("src2/Bar.java");
    Directory src1 = Directory.create("src1");
    Directory src2 = Directory.create("src2");
    when(sensorContext.getResource(foo)).thenReturn(foo);
    when(sensorContext.getResource(bar)).thenReturn(bar);
    Dependency parentDep = new Dependency(src1, src2).setWeight(4);
    when(sonarIndex.getEdge(src1, src2)).thenReturn(parentDep);

    adaptor.store(new DefaultDependency()
      .from(new DefaultInputFile("foo", "src1/Foo.java").setType(Type.MAIN))
      .to(new DefaultInputFile("foo", "src2/Bar.java").setType(Type.MAIN))
      .weight(3));

    ArgumentCaptor<Dependency> argumentCaptor = ArgumentCaptor.forClass(Dependency.class);

    verify(sensorContext).saveDependency(argumentCaptor.capture());

    assertThat(parentDep.getWeight()).isEqualTo(5);

    Dependency value = argumentCaptor.getValue();
    assertThat(value.getFrom()).isEqualTo(foo);
    assertThat(value.getTo()).isEqualTo(bar);
    assertThat(value.getWeight()).isEqualTo(3);
    assertThat(value.getUsage()).isEqualTo("USES");
  }
View Full Code Here

TOP

Related Classes of org.sonar.api.design.Dependency

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.