code: private Paint getStylePaint(StyleRow style, FeatureDrawType drawType) {
  
  		Paint paint = featurePaintCache.getPaint(style, drawType);
  
  		if (paint == null) {
  
  			mil.nga.geopackage.style.Color color = null;
  			Float strokeWidth = null;
  
  			switch (drawType) {
  			case CIRCLE:
  				color = style.getColorOrDefault();
  				break;
  			case STROKE:
  				color = style.getColorOrDefault();
  				strokeWidth = this.scale * (float) style.getWidthOrDefault();
  				break;
  			case FILL:
  				color = style.getFillColor();
  				strokeWidth = this.scale * (float) style.getWidthOrDefault();
  				break;
  			default:
  				throw new GeoPackageException("Unsupported Draw Type: "
  						+ drawType);
  			}
  
  			Paint stylePaint = new Paint();
  			stylePaint.setColor(new Color(color.getColorWithAlpha(), true));
  			if (strokeWidth != null) {
  				stylePaint.setStrokeWidth(strokeWidth);
  			}
  
  			synchronized (featurePaintCache) {
  
  				paint = featurePaintCache.getPaint(style, drawType);
  
  				if (paint == null) {
  					featurePaintCache.setPaint(style, drawType, stylePaint);
  					paint = stylePaint;
  				}
  
  			}
  		}
  
  		return paint;
  	}
docs: Get the style paint from cache, or create and cache it
  
  @param style
  style row
  @param drawType
  draw type
  @return paint