package ol.style;

import jsinterop.annotations.JsProperty;
import jsinterop.annotations.JsType;

import ol.Options;

/**
 * Options for the circle style.
 *
 * @author Tino Desjardins
 *
 */
@JsType(isNative = true)
public interface CircleOptions extends Options {

    /**
     * Fill style.
     * 
     * @param fill {@link Fill}
     */
    @JsProperty
    void setFill(Fill fill);

    /**
     * Circle radius. Required.
     * 
     * @param radius radius
     */
    @JsProperty
    void setRadius(double radius);

    /**
     * If true integral numbers of pixels are used as the X and Y pixel
     * coordinate when drawing the circle in the output canvas. If false
     * fractional numbers may be used. Using true allows for "sharp" rendering
     * (no blur), while using false allows for "accurate" rendering. Note that
     * accuracy is important if the circle's position is animated. Without it,
     * the circle may jitter noticeably. Default value is true.
     * 
     * @param snapToPixel snap to pixels?
     */
    @JsProperty
    void setSnapToPixel(boolean snapToPixel);

    /**
     * Stroke style.
     * 
     * @param stroke {@link Stroke}
     */
    @JsProperty
    void setStroke(Stroke stroke);

}

@@ -8,24 +8,64 @@
  ol.style;%0A%0A
+import jsinterop.annotations.JsPackage;%0A
 import jsint
@@ -93,16 +93,16 @@
 operty;%0A
-
 import j
@@ -252,26 +252,69 @@
 true
-)%0Apublic interface
+, namespace = JsPackage.GLOBAL, name = %22Object%22)%0Apublic class
  Cir
@@ -328,14 +328,17 @@
 ons 
-extend
+implement
 s Op
@@ -433,32 +433,46 @@
 @JsProperty%0A    
+public native 
 void setFill(Fil
@@ -577,32 +577,46 @@
 @JsProperty%0A    
+public native 
 void setRadius(d
@@ -1155,32 +1155,46 @@
 @JsProperty%0A    
+public native 
 void setSnapToPi
@@ -1317,20 +1317,34 @@
 roperty%0A
-
     
+public native 
 void set

Convert CircleOptions interface to class