question: public void drawLine ( List < mxPoint > pts , Map < String , Object > style ) { Color penColor = mxUtils . getStyleStrokeColor ( style , Color . BLACK ) ; float penWidth = mxUtils . getStyleStrokeWidth ( style , ( float ) 1 ) ; if ( penColor != null && penWidth > 0 ) { String shape = mxUtils . getString ( style , mxConstants . STYLE_SHAPE , "" ) ; if ( shape . equals ( mxConstants . SHAPE_ARROW ) ) { setStroke ( penWidth , style ) ; mxPoint p0 = pts . get ( 0 ) ; mxPoint pe = pts . get ( pts . size ( ) - 1 ) ; Rectangle bounds = new Rectangle ( p0 . getPoint ( ) ) ; bounds . add ( pe . getPoint ( ) ) ; Color fillColor = mxUtils . getStyleFillColor ( style ) ; Paint fillPaint = getFillPaint ( bounds , fillColor , style ) ; boolean shadow = mxUtils . isTrue ( style , mxConstants . STYLE_SHADOW , false ) ; drawArrow ( pts , fillColor , fillPaint , penColor , shadow ) ; } else { Object startMarker = style . get ( mxConstants . STYLE_STARTARROW ) ; Object endMarker = style . get ( mxConstants . STYLE_ENDARROW ) ; float startSize = ( float ) ( mxUtils . getFloat ( style , mxConstants . STYLE_STARTSIZE , mxConstants . DEFAULT_MARKERSIZE ) ) ; float endSize = ( float ) ( mxUtils . getFloat ( style , mxConstants . STYLE_ENDSIZE , mxConstants . DEFAULT_MARKERSIZE ) ) ; boolean rounded = mxUtils . isTrue ( style , mxConstants . STYLE_ROUNDED , false ) ; drawConnector ( pts , penWidth , penColor , startMarker , startSize , endMarker , endSize , rounded , style ) ; } } }
target:  Draws the given lines as segments between all points of the given list of mxPoints.