svn.filsa.org sketches

Rev

Blame | Last modification | View Log | RSS feed

package org.filsa.devfest.patchwork;

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
 *
 * @author Phil Suh (http://filsa.net/)
 */

public class Area implements Comparable<Area> {

        private Set<GridCell> areaCells = new HashSet<GridCell>();
       
        private final GridCell firstCell;
        private final char color;

        public Area (GridCell cell) {
                this.color = cell.getColor();
                this.firstCell = cell;
        }
       
        public void add(GridCell oneCell) {
                if (oneCell.getColor() != this.color) {
                        throw new IllegalArgumentException("");
                }
                areaCells.add(oneCell);
        }
       
       
        public int size() {
                return this.areaCells.size();
        }

       
        public String toString() {
                return "Area@" + this.hashCode() + "[color=" + firstCell.getColor()
                        + ", Row="+ firstCell.getRow() + ",Col=" + firstCell.getCol()
                        + ", size=" + this.size() + "]";
        }

        public int compareTo(Area obj) {
                if (obj == null) { return this.size(); }
                return this.size() - obj.size();                       
        }
       
       
        public Set<GridCell> getAllCells() {
                return Collections.unmodifiableSet(this.areaCells);
        }
}