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 * Adapter class for the {@link GMLObjectSwitch} interface. 012 */ 013public class AbstractGMLObjectSwitch implements GMLObjectSwitch { 014 015 protected AbstractGMLObjectSwitch() { 016 } 017 018 /** 019 * {@inheritDoc} 020 * 021 * <p> 022 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseDefault}. 023 * </p> 024 */ 025 @Override 026 public void casePoint(Point point) { 027 caseDefault(point); 028 } 029 030 /** 031 * {@inheritDoc} 032 * 033 * <p> 034 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseSurface}. 035 * </p> 036 */ 037 @Override 038 public void casePolygon(Polygon polygon) { 039 caseSurface(polygon); 040 } 041 042 /** 043 * {@inheritDoc} 044 * 045 * <p> 046 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseSurface}. 047 * </p> 048 */ 049 @Override 050 public void caseCircle(Circle circle) { 051 caseSurface(circle); 052 } 053 054 /** 055 * {@inheritDoc} 056 * 057 * <p> 058 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseSurface}. 059 * </p> 060 */ 061 @Override 062 public void caseEllipse(Ellipse ellipse) { 063 caseSurface(ellipse); 064 } 065 066 /** 067 * {@inheritDoc} 068 * 069 * <p> 070 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseSurface}. 071 * </p> 072 */ 073 @Override 074 public void caseArcBand(ArcBand arcBand) { 075 caseSurface(arcBand); 076 } 077 078 /** 079 * {@inheritDoc} 080 * 081 * <p> 082 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseSolid}. 083 * </p> 084 */ 085 @Override 086 public void caseSphere(Sphere sphere) { 087 caseSolid(sphere); 088 } 089 090 /** 091 * {@inheritDoc} 092 * 093 * <p> 094 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseSolid}. 095 * </p> 096 */ 097 @Override 098 public void caseEllipsoid(Ellipsoid ellipsoid) { 099 caseSolid(ellipsoid); 100 } 101 102 /** 103 * {@inheritDoc} 104 * 105 * <p> 106 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseSolid}. 107 * </p> 108 */ 109 @Override 110 public void casePrism(Prism prism) { 111 caseSolid(prism); 112 } 113 114 /** 115 * {@inheritDoc} 116 * 117 * <p> 118 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseDefault}. 119 * </p> 120 */ 121 @Override 122 public void caseLineString(LineString lineString) { 123 caseDefault(lineString); 124 } 125 126 /** 127 * {@inheritDoc} 128 * 129 * <p> 130 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseDefault}. 131 * </p> 132 */ 133 @Override 134 public void caseLinearRing(LinearRing linearRing) { 135 caseDefault(linearRing); 136 } 137 138 /** 139 * Roll-up method for {@link Surface} subclasses. 140 * 141 * <p> 142 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseDefault}. 143 * </p> 144 */ 145 protected void caseSurface(Surface surface) { 146 caseDefault(surface); 147 } 148 149 /** 150 * Roll-up method for {@link Solid} subclasses. 151 * 152 * <p> 153 * The implementation in {@link AbstractGMLObjectSwitch} delegates to {@link #caseDefault}. 154 * </p> 155 */ 156 protected void caseSolid(Solid solid) { 157 caseDefault(solid); 158 } 159 160 /** 161 * Roll-up method for all cases. 162 * 163 * <p> 164 * The implementation in {@link AbstractGMLObjectSwitch} does nothing. 165 * </p> 166 */ 167 protected void caseDefault(GMLObject object) { 168 } 169} 170