CPD Results
The following document contains the results of PMD's CPD 7.3.0.
Duplications
File |
Line |
org/joda/collect/grid/DenseGrid.java |
146 |
org/joda/collect/grid/DenseImmutableGrid.java |
100 |
private DenseGrid(DenseImmutableGrid<V> grid) {
this.rowCount = grid.rowCount();
this.columnCount = grid.columnCount();
this.size = grid.size();
this.values = grid.valuesArray();
}
//-----------------------------------------------------------------------
@Override
public int rowCount() {
return rowCount;
}
@Override
public int columnCount() {
return columnCount;
}
@Override
public int size() {
return size;
}
@Override
public boolean contains(int row, int column) {
if (exists(row, column)) {
return values[row * columnCount + column] != null;
}
return false;
}
@Override
public boolean containsValue(Object valueToFind) {
if (valueToFind != null) {
for (Object value : values) {
if (valueToFind.equals(value)) {
return true;
}
}
}
return false;
}
@Override
public V get(int row, int column) {
if (exists(row, column)) {
return values[row * columnCount + column];
}
return null;
}
@Override
public Cell<V> cell(int row, int column) {
V value = get(row, column);
return (value != null ? ImmutableCell.of(row, column, value) : null);
}
//-----------------------------------------------------------------------
@Override
public Set<Cell<V>> cells() {
return new Cells<V>(this);
}
/**
* View onto the grid.
*/
static class Cells<V> extends AbstractSet<Cell<V>> {
private final DenseGrid<V> grid;
|
File |
Line |
org/joda/collect/grid/DenseGrid.java |
215 |
org/joda/collect/grid/DenseImmutableGrid.java |
169 |
Cells(DenseGrid<V> grid) {
this.grid = grid;
}
@Override
public int size() {
return grid.size;
}
@Override
public boolean contains(Object obj) {
Cell<?> cell = (Cell<?>) obj;
return Objects.equal(cell.getValue(), grid.get(cell.getRow(), cell.getColumn()));
}
@Override
public Iterator<Cell<V>> iterator() {
return new Iterator<Cell<V>>() {
private MutableCell<V> cell = new MutableCell<V>();
private int count;
private int current = -1;
@Override
public boolean hasNext() {
return (count < grid.size);
}
@Override
public Cell<V> next() {
if (!hasNext()) {
throw new NoSuchElementException("No more elements");
}
current++;
for ( ; current < grid.values.length; current++) {
if (grid.values[current] != null) {
break;
}
}
V value = grid.values[current];
count++;
cell.set(current / grid.columnCount, current % grid.columnCount, value);
return cell;
}
@Override
public void remove() {
|
File |
Line |
org/joda/collect/grid/DenseGrid.java |
289 |
org/joda/collect/grid/DenseImmutableGrid.java |
216 |
}
}
//-----------------------------------------------------------------------
@Override
@SuppressWarnings("unchecked")
public ImmutableCollection<V> values() {
Object[] array = new Object[size];
int index = 0;
for (Object object : values) {
if (object != null) {
array[index++] = object;
}
}
return ImmutableList.copyOf((V[]) array);
}
//-----------------------------------------------------------------------
@Override
public List<V> row(int row) {
Preconditions.checkElementIndex(row, rowCount(), "Row index");
int base = row * rowCount;
return new Inner<V>(this, base, columnCount, 1);
}
@Override
public List<List<V>> rows() {
return new Outer<V>(this, rowCount, columnCount, columnCount, 1);
}
@Override
public List<V> column(int column) {
Preconditions.checkElementIndex(column, columnCount(), "Column index");
return new Inner<V>(this, column, rowCount, columnCount);
}
@Override
public List<List<V>> columns() {
return new Outer<V>(this, columnCount, 1, rowCount, columnCount);
}
static class Outer<V> extends AbstractList<List<V>> {
private final DenseGrid<V> grid;
|
File |
Line |
org/joda/collect/grid/DenseGrid.java |
458 |
org/joda/collect/grid/DenseImmutableGrid.java |
328 |
DenseGrid<?> other = (DenseGrid<?>) obj;
return Arrays.equals(values, other.values);
}
return super.equals(obj);
}
@Override
public int hashCode() {
int hash = 0;
for (int i = 0; i < values.length; i++) {
Object value = values[i];
if (value != null) {
int row = i / columnCount;
int column = i % columnCount;
hash += (row ^ Integer.rotateLeft(column, 16) ^ value.hashCode());
}
}
return rowCount ^ Integer.rotateLeft(columnCount, 16) ^ hash;
}
}
|
File |
Line |
org/joda/collect/grid/DenseGrid.java |
337 |
org/joda/collect/grid/DenseImmutableGrid.java |
264 |
Outer(DenseGrid<V> grid, int size, int gap, int innerSize, int innerGap) {
this.grid = grid;
this.size = size;
this.gap = gap;
this.innerSize = innerSize;
this.innerGap = innerGap;
}
@Override
public int size() {
return size;
}
@Override
public List<V> get(int index) {
Preconditions.checkElementIndex(index, size);
int base = index * gap;
return new Inner<V>(grid, base, innerSize, innerGap);
}
}
static class Inner<V> extends AbstractList<V> {
private final DenseGrid<V> grid;
|