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
010/**
011 * Visitor pattern interface for GML shapes.
012 */
013public interface GMLObjectSwitch {
014
015    /**
016     * Invoked when the instance visited is a {@link Point}.
017     */
018    void casePoint(Point point);
019
020    /**
021     * Invoked when the instance visited is a {@link Polygon}.
022     */
023    void casePolygon(Polygon polygon);
024
025    /**
026     * Invoked when the instance visited is a {@link Circle}.
027     */
028    void caseCircle(Circle circle);
029
030    /**
031     * Invoked when the instance visited is a {@link Ellipse}.
032     */
033    void caseEllipse(Ellipse ellipse);
034
035    /**
036     * Invoked when the instance visited is a {@link ArcBand}.
037     */
038    void caseArcBand(ArcBand arcBand);
039
040    /**
041     * Invoked when the instance visited is a {@link Sphere}.
042     */
043    void caseSphere(Sphere sphere);
044
045    /**
046     * Invoked when the instance visited is a {@link Ellipsoid}.
047     */
048    void caseEllipsoid(Ellipsoid ellipsoid);
049
050    /**
051     * Invoked when the instance visited is a {@link Prism}.
052     */
053    void casePrism(Prism prism);
054
055    /**
056     * Invoked when the instance visited is a {@link LineString}.
057     */
058    void caseLineString(LineString lineString);
059
060    /**
061     * Invoked when the instance visited is a {@link LinearRing}.
062     */
063    void caseLinearRing(LinearRing linearRing);
064}
065