package ol.style;

import javax.annotation.Nullable;

import jsinterop.annotations.JsType;

import ol.geom.Geometry;

/**
 * Container for vector feature rendering styles. Any changes made to the style
 * or its children through `set*()` methods will not take effect until the
 * feature or layer that uses the style is re-rendered.
 *
 * @author Tino Desjardins
 */
@JsType(isNative = true)
public interface Style {
    /**
     * Get the fill style.
     *
     * @return {ol.style.Fill} Fill style.
     */
    @Nullable
    Fill getFill();

    /**
     * Get the geometry to be rendered.
     *
     * @return {string|ol.geom.Geometry|ol.style.GeometryFunction} Feature
     *         property or geometry or function that returns the geometry that
     *         will be rendered with this style.
     */
    @Nullable
    Geometry getGeometry();

    /**
     * Get the image style.
     * 
     * @return {ol.style.Image} Image style.
     */
    Image getImage();

    /**
     * Get the stroke style.
     *
     * @return {ol.style.Stroke} Stroke style.
     */
    @Nullable
    Stroke getStroke();

    /**
     * Get the text style.
     *
     * @return {ol.style.Text} Text style.
     */
    @Nullable
    Text getText();

    /**
     * Get the z-index for the style.
     *
     * @return {number|undefined} ZIndex.
     */
    int getZIndex();

    /**
     * Set a geometry that is rendered instead of the feature's geometry.
     *
     * @param geometry
     *            Feature property or geometry or function returning a geometry
     *            to render for this style.
     */
    void setGeometry(Geometry geometry);

    /**
     * Set the z-index.
     *
     * @param zIndex
     *            ZIndex.
     */
    void setZIndex(int zIndex);

    /**
     * Clones the style.
     */
    Style clone();

}

@@ -396,25 +396,93 @@
 lic 
-interface Style %7B
+class Style %7B%0A%0A    public Style() %7B%7D%0A%0A    public Style(StyleOptions styleOptions) %7B%7D%0A
 %0A   
@@ -589,16 +589,30 @@
 ble%0A    
+public native 
 Fill get
@@ -904,16 +904,30 @@
 ble%0A    
+public native 
 Geometry
@@ -985,17 +985,16 @@
 .%0A     *
- 
 %0A     * 
@@ -1043,16 +1043,30 @@
  */%0A    
+public native 
 Image ge
@@ -1193,16 +1193,30 @@
 ble%0A    
+public native 
 Stroke g
@@ -1339,16 +1339,30 @@
 ble%0A    
+public native 
 Text get
@@ -1477,16 +1477,30 @@
  */%0A    
+public native 
 int getZ
@@ -1749,32 +1749,46 @@
 le.%0A     */%0A    
+public native 
 void setGeometry
@@ -1907,16 +1907,30 @@
  */%0A    
+public native 
 void set
@@ -1991,20 +1991,34 @@
      */%0A
-
     
+public native 
 Style cl

Convert Style interface to class