001
002/*
003 * Copyright (C) 2010 Archie L. Cobbs. All rights reserved.
004 *
005 * $Id$
006 */
007
008package org.dellroad.jibxbindings.pidf.lo.gml;
009
010import java.net.URI;
011
012/**
013 * GML polygon.
014 */
015public class Polygon extends Surface {
016
017    private LinearRing exterior;
018
019    public Polygon() {
020    }
021
022    public Polygon(String gid, URI srsName, int srsDimension, LinearRing exterior) {
023        super(gid, srsName, srsDimension);
024        this.setExterior(exterior);
025    }
026
027    /**
028     * The polygon's {@code <gml:exterior>}.
029     */
030    public LinearRing getExterior() {
031        return this.exterior;
032    }
033    public void setExterior(LinearRing exterior) {
034        this.exterior = exterior;
035    }
036
037    @Override
038    public void visit(GMLObjectSwitch gmlObjectSwitch) {
039        gmlObjectSwitch.casePolygon(this);
040    }
041
042// Cloneable
043
044    @Override
045    public Polygon clone() {
046        final Polygon clone = (Polygon)super.clone();
047        clone.exterior = this.exterior != null ? this.exterior.clone() : null;
048        return clone;
049    }
050}
051