/* * Copyright 2000-2009 JetBrains s.r.o. * * Licensed 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. */ package com.intellij.openapi.diff.impl.highlighting; import com.intellij.openapi.diff.ex.DiffFragment; import java.util.ArrayList; import java.util.List; class List2D { private final List<List<DiffFragment>> myRows = new ArrayList<List<DiffFragment>>(); private List<DiffFragment> myCurrentRow = null; public void add(DiffFragment element) { ensureRowExists(); myCurrentRow.add(element); } private void ensureRowExists() { if (myCurrentRow == null) { myCurrentRow = new ArrayList<DiffFragment>(); myRows.add(myCurrentRow); } } public void newRow() { myCurrentRow = null; } // public DiffFragment[][] toArray() { DiffFragment[][] result = new DiffFragment[myRows.size()][]; for (int i = 0; i < result.length; i++) { List<DiffFragment> row = myRows.get(i); result[i] = new DiffFragment[row.size()]; System.arraycopy(row.toArray(), 0, result[i], 0, row.size()); } return result; } public void addAll(DiffFragment[] line) { ensureRowExists(); for (int i = 0; i < line.length; i++) { DiffFragment value = line[i]; myCurrentRow.add(value); } } }