/** Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 9 ĠT ob ia ĠDe ĠKon in ck Ċ Ġ* Ċ Ġ* ĠĠ Ġ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 Ġbe . led fan . geojson dsl Ċ Ċ import Ġcom . be ust . kl ax on . JsonObject Ċ import Ġcom . be ust . kl ax on . json Ċ import Ġbe . led fan . geojson dsl . Geometry Ċ Ċ class ĠPolygon Ġ: ĠGeometry Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġcoordinates Ġ= ĠArrayList < Ring >() ĊĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" Polygon " ĊĊĠĠĠ Ġfun Ġring ( ring : ĠRing . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= ĠRing () ĊĠĠĠĠĠĠĠ Ġr . apply ( ring ) ĊĠĠĠĠĠĠĠ Ġr . ensure Valid () ĊĠĠĠĠĠĠĠ Ġcoordinates . add ( r ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoJson (): ĠJsonObject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ" For ĠPoly gons Ġwith Ġmore Ġthan Ġone Ġof Ġthese Ġr ings , Ġthe Ġfirst ĠMUST Ġbe ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġthe Ġex terior Ġring , Ġand Ġany Ġothers ĠMUST Ġbe Ġinterior Ġr ings . Ġ ĠThe ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġex terior Ġring Ġbounds Ġthe Ġsurface , Ġand Ġthe Ġinterior Ġr ings Ġ( if ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġpresent ) Ġbound Ġholes Ġwithin Ġthe Ġsurface ." ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġis Ġnot Ġchecked . Ġ( TODO ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġjson Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobj ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type " Ġto Ġtype , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" coordinates " Ġto Ġarray ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinates . map Ġ{ Ġit . toJson () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ