All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[com.code_intelligence.jazzer.api.FuzzedDataProvider].consumeRemainingAsString()'
      Src: ParseFuzzer:28,1
    - Dst: com.graphbuilder.math.ExpressionTree.parse(String)
      Src: ParseFuzzer:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    JavaMethodInfo:
      argumentGenericTypes:
      - com.code_intelligence.jazzer.api.FuzzedDataProvider
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: true
      superClass: Object
    argCount: 1
    argNames:
    - data
    argTypes:
    - com.code_intelligence.jazzer.api.FuzzedDataProvider
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: '[ParseFuzzer].fuzzerTestOneInput(com.code_intelligence.jazzer.api.FuzzedDataProvider)'
    functionSourceFile: /src/ParseFuzzer.java
    functionUses: 0
    functionsReached:
    - com.graphbuilder.math.ExpressionTree.parse(String)
    - '[com.code_intelligence.jazzer.api.FuzzedDataProvider].consumeRemainingAsString()'
    linkageType: ''
    returnType: void
    signature: '[ParseFuzzer].fuzzerTestOneInput(com.code_intelligence.jazzer.api.FuzzedDataProvider)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: ParseFuzzer
      static: false
      superClass: Object
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: -1
      start: -1
    functionDepth: 0
    functionLinenumber: -1
    functionLinenumberEnd: -1
    functionName: '[ParseFuzzer].<init>()'
    functionSourceFile: /src/ParseFuzzer.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ParseFuzzer
    signature: '[ParseFuzzer].<init>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[Point].<init>()'
      Src: PointFactory:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    JavaMethodInfo:
      argumentGenericTypes:
      - double
      - double
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: Point
      static: false
      superClass: Object
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: '[PointFactory].createPoint(double,double)'
    functionSourceFile: /src/curvesapi/demo/PointFactory.java
    functionUses: 0
    functionsReached:
    - '[Point].<init>()'
    linkageType: ''
    returnType: Point
    signature: '[PointFactory].createPoint(double,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: PointFactory
      static: false
      superClass: Object
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: -1
      start: -1
    functionDepth: 0
    functionLinenumber: -1
    functionLinenumberEnd: -1
    functionName: '[PointFactory].<init>()'
    functionSourceFile: /src/curvesapi/demo/PointFactory.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PointFactory
    signature: '[PointFactory].<init>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[JList].<init>()'
      Src: EditCurvePanel:42,1
    - Dst: '[java.util.Vector].<init>()'
      Src: EditCurvePanel:43,1
    - Dst: '[JButton].<init>(String)'
      Src: EditCurvePanel:44,1
    - Dst: '[JButton].<init>(String)'
      Src: EditCurvePanel:45,1
    - Dst: '[JLabel].<init>(String)'
      Src: EditCurvePanel:47,1
    - Dst: '[JTextField].<init>(int)'
      Src: EditCurvePanel:48,1
    - Dst: '[JCheckBox].<init>(String)'
      Src: EditCurvePanel:49,1
    - Dst: '[JLabel].<init>(String)'
      Src: EditCurvePanel:51,1
    - Dst: '[JLabel].<init>(String)'
      Src: EditCurvePanel:52,1
    - Dst: '[JTextField].<init>(int)'
      Src: EditCurvePanel:53,1
    - Dst: '[JTextField].<init>(int)'
      Src: EditCurvePanel:54,1
    - Dst: '[JLabel].<init>(String)'
      Src: EditCurvePanel:55,1
    - Dst: '[JTextField].<init>(int)'
      Src: EditCurvePanel:56,1
    - Dst: '[JLabel].<init>(String)'
      Src: EditCurvePanel:58,1
    - Dst: '[JTextField].<init>(int)'
      Src: EditCurvePanel:59,1
    - Dst: '[JLabel].<init>(String)'
      Src: EditCurvePanel:61,1
    - Dst: '[JTextField].<init>(int)'
      Src: EditCurvePanel:62,1
    - Dst: '[JLabel].<init>(String)'
      Src: EditCurvePanel:63,1
    - Dst: '[JComboBox].<init>()'
      Src: EditCurvePanel:64,1
    - Dst: '[JCheckBox].<init>(String)'
      Src: EditCurvePanel:65,1
    - Dst: '[JCheckBox].<init>(String)'
      Src: EditCurvePanel:67,1
    - Dst: '[JCheckBox].<init>(String)'
      Src: EditCurvePanel:68,1
    - Dst: '[UnsortedValueVectorPanel].<init>(boolean)'
      Src: EditCurvePanel:70,1
    - Dst: '[UnsortedValueVectorPanel].<init>(boolean)'
      Src: EditCurvePanel:71,1
    - Dst: '[JLabel].<init>(String)'
      Src: EditCurvePanel:72,1
    - Dst: '[JTextField].<init>(int)'
      Src: EditCurvePanel:73,1
    - Dst: '[JLabel].<init>(String)'
      Src: EditCurvePanel:74,1
    - Dst: '[JTextField].<init>(int)'
      Src: EditCurvePanel:75,1
    - Dst: '[JCheckBox].<init>(String)'
      Src: EditCurvePanel:76,1
    - Dst: '[JCheckBox].<init>(String)'
      Src: EditCurvePanel:77,1
    - Dst: '[JCheckBox].<init>(String)'
      Src: EditCurvePanel:79,1
    - Dst: '[JButton].<init>(String)'
      Src: EditCurvePanel:83,1
    - Dst: '[JButton].<init>(String)'
      Src: EditCurvePanel:84,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:86,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:86,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:87,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:87,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:91,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:91,1
    - Dst: '[JButton].<init>(String)'
      Src: EditCurvePanel:92,1
    - Dst: '[JButton].<init>(String)'
      Src: EditCurvePanel:93,1
    - Dst: '[JPanel].<init>()'
      Src: EditCurvePanel:96,1
    - Dst: '[JList].setPrototypeCellValue(String)'
      Src: EditCurvePanel:97,1
    - Dst: '[CurveListCellRenderer].<init>()'
      Src: EditCurvePanel:98,1
    - Dst: '[JList].setCellRenderer(CurveListCellRenderer)'
      Src: EditCurvePanel:98,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:99,1
    - Dst: '[EditCurvePanel].setLayout(BorderLayout)'
      Src: EditCurvePanel:99,1
    - Dst: '[UnsortedValueVectorPanel].addValueVectorListener()'
      Src: EditCurvePanel:100,1
    - Dst: '[UnsortedValueVectorPanel].addValueVectorListener()'
      Src: EditCurvePanel:101,1
    - Dst: '[UnsortedValueVectorPanel].setKnobFillColor(EditCurvePanel)'
      Src: EditCurvePanel:102,1
    - Dst: '[UnsortedValueVectorPanel].setRange(int,int)'
      Src: EditCurvePanel:103,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:105,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:105,1
    - Dst: '[JPanel].add(JButton)'
      Src: EditCurvePanel:106,1
    - Dst: '[JPanel].add(JButton)'
      Src: EditCurvePanel:107,1
    - Dst: '[JPanel].add(JScrollPane,EditCurvePanel)'
      Src: EditCurvePanel:109,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:110,1
    - Dst: '[EditCurvePanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:112,1
    - Dst: '[JButton].addActionListener()'
      Src: EditCurvePanel:114,1
    - Dst: '[JButton].addActionListener()'
      Src: EditCurvePanel:115,1
    - Dst: '[JButton].addActionListener()'
      Src: EditCurvePanel:116,1
    - Dst: '[JButton].addActionListener()'
      Src: EditCurvePanel:117,1
    - Dst: '[JButton].addActionListener()'
      Src: EditCurvePanel:118,1
    - Dst: '[JButton].addActionListener()'
      Src: EditCurvePanel:119,1
    - Dst: '[JList].addListSelectionListener()'
      Src: EditCurvePanel:121,1
    - Dst: '[JCheckBox].addActionListener()'
      Src: EditCurvePanel:122,1
    - Dst: '[JCheckBox].addActionListener()'
      Src: EditCurvePanel:123,1
    - Dst: '[JCheckBox].addActionListener()'
      Src: EditCurvePanel:124,1
    - Dst: '[JCheckBox].addActionListener()'
      Src: EditCurvePanel:125,1
    - Dst: '[JCheckBox].addActionListener()'
      Src: EditCurvePanel:126,1
    - Dst: '[JComboBox].addActionListener()'
      Src: EditCurvePanel:127,1
    - Dst: '[JCheckBox].addActionListener()'
      Src: EditCurvePanel:128,1
    - Dst: '[JCheckBox].addActionListener()'
      Src: EditCurvePanel:129,1
    - Dst: '[JPanel].add(JButton)'
      Src: EditCurvePanel:131,1
    - Dst: '[JPanel].add(JButton)'
      Src: EditCurvePanel:132,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:133,1
    - Dst: '[EditCurvePanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: EditCurvePanel
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 135
    functionName: '[EditCurvePanel].<init>()'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 1
    functionsReached:
    - '[JList].<init>()'
    - '[UnsortedValueVectorPanel].setRange(int,int)'
    - '[JPanel].add(JButton)'
    - '[CurveListCellRenderer].<init>()'
    - '[JPanel].<init>()'
    - '[EditCurvePanel].add(JPanel,EditCurvePanel)'
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - '[JList].setCellRenderer(CurveListCellRenderer)'
    - '[JLabel].<init>(String)'
    - '[JComboBox].<init>()'
    - '[java.util.Vector].<init>()'
    - '[UnsortedValueVectorPanel].addValueVectorListener()'
    - '[FlowLayout].<init>(EditCurvePanel)'
    - '[JPanel].add(JScrollPane,EditCurvePanel)'
    - '[JCheckBox].<init>(String)'
    - '[JButton].<init>(String)'
    - '[JPanel].<init>(BorderLayout)'
    - '[JPanel].<init>(FlowLayout)'
    - '[JList].addListSelectionListener()'
    - '[UnsortedValueVectorPanel].setKnobFillColor(EditCurvePanel)'
    - '[JCheckBox].addActionListener()'
    - '[BorderLayout].<init>()'
    - '[EditCurvePanel].setLayout(BorderLayout)'
    - '[UnsortedValueVectorPanel].<init>(boolean)'
    - '[JComboBox].addActionListener()'
    - '[JButton].addActionListener()'
    - '[JTextField].<init>(int)'
    - '[JList].setPrototypeCellValue(String)'
    linkageType: ''
    returnType: EditCurvePanel
    signature: '[EditCurvePanel].<init>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - JPanel
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - rp
    argTypes:
    - JPanel
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: '[EditCurvePanel].setRepaintPanel(JPanel)'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[EditCurvePanel].setRepaintPanel(JPanel)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[java.util.Vector].<init>()'
      Src: EditCurvePanel:142,1
    - Dst: '[ControlPath].numCurves()'
      Src: EditCurvePanel:143,1
    - Dst: '[ControlPath].getCurve(EditCurvePanel)'
      Src: EditCurvePanel:144,1
    - Dst: '[java.util.Vector].add(EditCurvePanel)'
      Src: EditCurvePanel:144,1
    - Dst: '[JList].setListData(java.util.Vector)'
      Src: EditCurvePanel:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    JavaMethodInfo:
      argumentGenericTypes:
      - ControlPath
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - cp
    argTypes:
    - ControlPath
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: '[EditCurvePanel].setControlPath(ControlPath)'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 1
    functionsReached:
    - '[ControlPath].numCurves()'
    - '[JList].setListData(java.util.Vector)'
    - '[ControlPath].getCurve(EditCurvePanel)'
    - '[java.util.Vector].add(EditCurvePanel)'
    - '[java.util.Vector].<init>()'
    linkageType: ''
    returnType: void
    signature: '[EditCurvePanel].setControlPath(ControlPath)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[ActionEvent].getSource()'
      Src: EditCurvePanel:150,1
    - Dst: '[JList].<init>(EditCurvePanel)'
      Src: EditCurvePanel:155,1
    - Dst: SwingUtilities.windowForComponent()
      Src: EditCurvePanel:157,1
    - Dst: '[JDialog].<init>(Frame,EditCurvePanel)'
      Src: EditCurvePanel:162,1
    - Dst: '[JDialog].<init>(Dialog,EditCurvePanel)'
      Src: EditCurvePanel:164,1
    - Dst: '[JDialog].<init>(Frame,EditCurvePanel)'
      Src: EditCurvePanel:166,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:169,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:169,1
    - Dst: '[JPanel].add(JButton)'
      Src: EditCurvePanel:170,1
    - Dst: '[JPanel].add(JButton)'
      Src: EditCurvePanel:171,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:173,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:173,1
    - Dst: BorderFactory.createLineBorder(EditCurvePanel)
      Src: EditCurvePanel:174,1
    - Dst: '[JList].setBorder(EditCurvePanel)'
      Src: EditCurvePanel:174,1
    - Dst: '[JPanel].add(JList,EditCurvePanel)'
      Src: EditCurvePanel:175,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:176,1
    - Dst: Toolkit.getDefaultToolkit()
      Src: EditCurvePanel:178,1
    - Dst: '[EditCurvePanel].getScreenSize()'
      Src: EditCurvePanel:178,1
    - Dst: '[JDialog].setContentPane(JPanel)'
      Src: EditCurvePanel:179,1
    - Dst: '[JDialog].setModal(boolean)'
      Src: EditCurvePanel:180,1
    - Dst: '[JDialog].pack()'
      Src: EditCurvePanel:181,1
    - Dst: '[JDialog].setLocation(int,int)'
      Src: EditCurvePanel:182,1
    - Dst: '[JDialog].show()'
      Src: EditCurvePanel:185,1
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:188,1
    - Dst: '[EditCurvePanel].createCurve(EditCurvePanel)'
      Src: EditCurvePanel:191,1
    - Dst: '[JList].getSelectedIndex()'
      Src: EditCurvePanel:192,1
    - Dst: '[java.util.Vector].size()'
      Src: EditCurvePanel:193,1
    - Dst: '[java.util.Vector].insertElementAt(Curve,EditCurvePanel)'
      Src: EditCurvePanel:194,1
    - Dst: '[JList].setListData(java.util.Vector)'
      Src: EditCurvePanel:195,1
    - Dst: '[ControlPath].insertCurve(Curve,EditCurvePanel)'
      Src: EditCurvePanel:196,1
    - Dst: '[JList].setSelectedValue(Curve,boolean)'
      Src: EditCurvePanel:197,1
    - Dst: '[JDialog].hide()'
      Src: EditCurvePanel:199,1
    - Dst: '[JList].getSelectedIndices()'
      Src: EditCurvePanel:202,1
    - Dst: '[java.util.Vector].removeElementAt()'
      Src: EditCurvePanel:204,1
    - Dst: '[ControlPath].removeCurve()'
      Src: EditCurvePanel:205,1
    - Dst: '[JList].setListData(java.util.Vector)'
      Src: EditCurvePanel:208,1
    - Dst: '[ControlPath].numCurves()'
      Src: EditCurvePanel:212,1
    - Dst: '[ControlPath].numCurves()'
      Src: EditCurvePanel:213,1
    - Dst: '[JList].setSelectedIndex(EditCurvePanel)'
      Src: EditCurvePanel:215,1
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:220,1
    - Dst: '[JCheckBox].isSelected()'
      Src: EditCurvePanel:221,1
    - Dst: c.setConnect(EditCurvePanel)
      Src: EditCurvePanel:221,1
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:224,1
    - Dst: '[JCheckBox].isSelected()'
      Src: EditCurvePanel:225,1
    - Dst: cbs.setInterpolateEndpoints(EditCurvePanel)
      Src: EditCurvePanel:225,1
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:228,1
    - Dst: '[JCheckBox].isSelected()'
      Src: EditCurvePanel:229,1
    - Dst: lc.setInterpolateFirst(EditCurvePanel)
      Src: EditCurvePanel:229,1
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:232,1
    - Dst: '[JCheckBox].isSelected()'
      Src: EditCurvePanel:233,1
    - Dst: lc.setInterpolateLast(EditCurvePanel)
      Src: EditCurvePanel:233,1
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:236,1
    - Dst: '[JCheckBox].isSelected()'
      Src: EditCurvePanel:237,1
    - Dst: ncs.setClosed(EditCurvePanel)
      Src: EditCurvePanel:237,1
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:240,1
    - Dst: '[JCheckBox].isSelected()'
      Src: EditCurvePanel:241,1
    - Dst: bs.setUseDefaultInterval(EditCurvePanel)
      Src: EditCurvePanel:241,1
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:244,1
    - Dst: '[JComboBox].getSelectedIndex()'
      Src: EditCurvePanel:245,1
    - Dst: bs.setKnotVectorType(EditCurvePanel)
      Src: EditCurvePanel:246,1
    - Dst: '[JCheckBox].setEnabled(EditCurvePanel)'
      Src: EditCurvePanel:247,1
    - Dst: '[UnsortedValueVectorPanel].setDisabled(EditCurvePanel)'
      Src: EditCurvePanel:248,1
    - Dst: '[UnsortedValueVectorPanel].repaint()'
      Src: EditCurvePanel:249,1
    - Dst: '[JCheckBox].isSelected()'
      Src: EditCurvePanel:252,1
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:253,1
    - Dst: ns.setUseWeightVector(EditCurvePanel)
      Src: EditCurvePanel:254,1
    - Dst: '[UnsortedValueVectorPanel].setDisabled()'
      Src: EditCurvePanel:255,1
    - Dst: '[UnsortedValueVectorPanel].repaint()'
      Src: EditCurvePanel:256,1
    - Dst: SwingUtilities.windowForComponent()
      Src: EditCurvePanel:259,1
    - Dst: '[EditCurvePanel].hide()'
      Src: EditCurvePanel:260,1
    - Dst: '[EditCurvePanel].applySettings()'
      Src: EditCurvePanel:263,1
    - Dst: '[JPanel].repaint()'
      Src: EditCurvePanel:266,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 129
    JavaMethodInfo:
      argumentGenericTypes:
      - ActionEvent
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - evt
    argTypes:
    - ActionEvent
    constantsTouched: []
    func_position:
      end: 267
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 267
    functionName: '[EditCurvePanel].actionPerformed(ActionEvent)'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JDialog].setContentPane(JPanel)'
    - ncs.setClosed(EditCurvePanel)
    - '[JPanel].add(JButton)'
    - '[JDialog].pack()'
    - '[ControlPath].numCurves()'
    - ns.setUseWeightVector(EditCurvePanel)
    - '[JList].getSelectedValue()'
    - SwingUtilities.windowForComponent()
    - '[JList].getSelectedIndices()'
    - bs.setUseDefaultInterval(EditCurvePanel)
    - '[UnsortedValueVectorPanel].repaint()'
    - '[JList].setSelectedValue(Curve,boolean)'
    - '[EditCurvePanel].getScreenSize()'
    - '[ControlPath].insertCurve(Curve,EditCurvePanel)'
    - '[JPanel].repaint()'
    - '[EditCurvePanel].applySettings()'
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - '[JList].setSelectedIndex(EditCurvePanel)'
    - '[JDialog].show()'
    - '[JList].getSelectedIndex()'
    - '[JDialog].<init>(Frame,EditCurvePanel)'
    - bs.setKnotVectorType(EditCurvePanel)
    - '[JCheckBox].setEnabled(EditCurvePanel)'
    - lc.setInterpolateFirst(EditCurvePanel)
    - BorderFactory.createLineBorder(EditCurvePanel)
    - '[JDialog].setModal(boolean)'
    - '[java.util.Vector].removeElementAt()'
    - '[ActionEvent].getSource()'
    - '[JDialog].hide()'
    - c.setConnect(EditCurvePanel)
    - '[JDialog].<init>(Dialog,EditCurvePanel)'
    - '[FlowLayout].<init>(EditCurvePanel)'
    - Toolkit.getDefaultToolkit()
    - '[ControlPath].removeCurve()'
    - '[UnsortedValueVectorPanel].setDisabled(EditCurvePanel)'
    - '[EditCurvePanel].hide()'
    - '[JPanel].add(JList,EditCurvePanel)'
    - '[JPanel].<init>(FlowLayout)'
    - '[JPanel].<init>(BorderLayout)'
    - '[JList].<init>(EditCurvePanel)'
    - '[EditCurvePanel].createCurve(EditCurvePanel)'
    - '[java.util.Vector].insertElementAt(Curve,EditCurvePanel)'
    - '[java.util.Vector].size()'
    - '[JComboBox].getSelectedIndex()'
    - '[BorderLayout].<init>()'
    - '[JList].setBorder(EditCurvePanel)'
    - '[JDialog].setLocation(int,int)'
    - '[JList].setListData(java.util.Vector)'
    - lc.setInterpolateLast(EditCurvePanel)
    - '[UnsortedValueVectorPanel].setDisabled()'
    - '[JCheckBox].isSelected()'
    - cbs.setInterpolateEndpoints(EditCurvePanel)
    linkageType: ''
    returnType: void
    signature: '[EditCurvePanel].actionPerformed(ActionEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:273,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:277,1
    - Dst: '[ControlPath].numPoints()'
      Src: EditCurvePanel:277,1
    - Dst: '[GroupIterator].<init>(EditCurvePanel,EditCurvePanel)'
      Src: EditCurvePanel:277,1
    - Dst: c.setGroupIterator(GroupIterator)
      Src: EditCurvePanel:277,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:283,1
    - Dst: Double.parseDouble(EditCurvePanel)
      Src: EditCurvePanel:283,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:285,1
    - Dst: Double.parseDouble(EditCurvePanel)
      Src: EditCurvePanel:285,1
    - Dst: bc.setInterval(EditCurvePanel,EditCurvePanel)
      Src: EditCurvePanel:286,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:288,1
    - Dst: Integer.parseInt(EditCurvePanel)
      Src: EditCurvePanel:288,1
    - Dst: bc.setSampleLimit(EditCurvePanel)
      Src: EditCurvePanel:288,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:293,1
    - Dst: Double.parseDouble(EditCurvePanel)
      Src: EditCurvePanel:293,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:295,1
    - Dst: Double.parseDouble(EditCurvePanel)
      Src: EditCurvePanel:295,1
    - Dst: bs.setInterval(EditCurvePanel,EditCurvePanel)
      Src: EditCurvePanel:296,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:298,1
    - Dst: Integer.parseInt(EditCurvePanel)
      Src: EditCurvePanel:298,1
    - Dst: bs.setSampleLimit(EditCurvePanel)
      Src: EditCurvePanel:298,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:300,1
    - Dst: Integer.parseInt(EditCurvePanel)
      Src: EditCurvePanel:300,1
    - Dst: bs.setDegree(EditCurvePanel)
      Src: EditCurvePanel:300,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:305,1
    - Dst: Double.parseDouble(EditCurvePanel)
      Src: EditCurvePanel:305,1
    - Dst: cs.setAlpha(EditCurvePanel)
      Src: EditCurvePanel:305,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:310,1
    - Dst: Integer.parseInt(EditCurvePanel)
      Src: EditCurvePanel:310,1
    - Dst: lc.setBaseIndex(EditCurvePanel)
      Src: EditCurvePanel:310,1
    - Dst: '[JTextField].getText()'
      Src: EditCurvePanel:312,1
    - Dst: Integer.parseInt(EditCurvePanel)
      Src: EditCurvePanel:312,1
    - Dst: lc.setBaseLength(EditCurvePanel)
      Src: EditCurvePanel:312,1
    - Dst: JOptionPane.showMessageDialog(EditCurvePanel,String,EditCurvePanel)
      Src: EditCurvePanel:315,1
    - Dst: comp.requestFocus()
      Src: EditCurvePanel:318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 319
    functionName: '[EditCurvePanel].applySettings()'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 1
    functionsReached:
    - c.setGroupIterator(GroupIterator)
    - bc.setSampleLimit(EditCurvePanel)
    - bs.setSampleLimit(EditCurvePanel)
    - comp.requestFocus()
    - cs.setAlpha(EditCurvePanel)
    - '[JList].getSelectedValue()'
    - Integer.parseInt(EditCurvePanel)
    - lc.setBaseIndex(EditCurvePanel)
    - bs.setDegree(EditCurvePanel)
    - lc.setBaseLength(EditCurvePanel)
    - bc.setInterval(EditCurvePanel,EditCurvePanel)
    - '[ControlPath].numPoints()'
    - '[JTextField].getText()'
    - '[GroupIterator].<init>(EditCurvePanel,EditCurvePanel)'
    - bs.setInterval(EditCurvePanel,EditCurvePanel)
    - Double.parseDouble(EditCurvePanel)
    - JOptionPane.showMessageDialog(EditCurvePanel,String,EditCurvePanel)
    linkageType: ''
    returnType: void
    signature: '[EditCurvePanel].applySettings()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cp.numPoints()
      Src: EditCurvePanel:323,1
    - Dst: '[GroupIterator].<init>(String,EditCurvePanel)'
      Src: EditCurvePanel:323,1
    - Dst: '[String].equals(String)'
      Src: EditCurvePanel:325,1
    - Dst: '[BezierCurve].<init>(EditCurvePanel,GroupIterator)'
      Src: EditCurvePanel:326,1
    - Dst: '[String].equals(String)'
      Src: EditCurvePanel:327,1
    - Dst: '[BSpline].<init>(EditCurvePanel,GroupIterator)'
      Src: EditCurvePanel:328,1
    - Dst: '[String].equals(String)'
      Src: EditCurvePanel:329,1
    - Dst: '[CardinalSpline].<init>(EditCurvePanel,GroupIterator)'
      Src: EditCurvePanel:330,1
    - Dst: '[String].equals(String)'
      Src: EditCurvePanel:331,1
    - Dst: '[CatmullRomSpline].<init>(EditCurvePanel,GroupIterator)'
      Src: EditCurvePanel:332,1
    - Dst: '[String].equals(String)'
      Src: EditCurvePanel:333,1
    - Dst: '[CubicBSpline].<init>(EditCurvePanel,GroupIterator)'
      Src: EditCurvePanel:334,1
    - Dst: '[String].equals(String)'
      Src: EditCurvePanel:335,1
    - Dst: '[LagrangeCurve].<init>(EditCurvePanel,GroupIterator)'
      Src: EditCurvePanel:336,1
    - Dst: '[String].equals(String)'
      Src: EditCurvePanel:337,1
    - Dst: '[NaturalCubicSpline].<init>(EditCurvePanel,GroupIterator)'
      Src: EditCurvePanel:338,1
    - Dst: '[String].equals(String)'
      Src: EditCurvePanel:339,1
    - Dst: '[NURBSpline].<init>(EditCurvePanel,GroupIterator)'
      Src: EditCurvePanel:340,1
    - Dst: '[Polyline].<init>(EditCurvePanel,GroupIterator)'
      Src: EditCurvePanel:342,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 19
    JavaMethodInfo:
      argumentGenericTypes:
      - String
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: Curve
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - name
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 343
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 343
    functionName: '[EditCurvePanel].createCurve(String)'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[GroupIterator].<init>(String,EditCurvePanel)'
    - '[Polyline].<init>(EditCurvePanel,GroupIterator)'
    - '[BezierCurve].<init>(EditCurvePanel,GroupIterator)'
    - '[LagrangeCurve].<init>(EditCurvePanel,GroupIterator)'
    - '[CardinalSpline].<init>(EditCurvePanel,GroupIterator)'
    - '[CubicBSpline].<init>(EditCurvePanel,GroupIterator)'
    - '[String].equals(String)'
    - cp.numPoints()
    - '[BSpline].<init>(EditCurvePanel,GroupIterator)'
    - '[NURBSpline].<init>(EditCurvePanel,GroupIterator)'
    - '[NaturalCubicSpline].<init>(EditCurvePanel,GroupIterator)'
    - '[CatmullRomSpline].<init>(EditCurvePanel,GroupIterator)'
    linkageType: ''
    returnType: Curve
    signature: '[EditCurvePanel].createCurve(String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[JList].getSelectedValue()'
      Src: EditCurvePanel:346,1
    - Dst: c.getGroupIterator()
      Src: EditCurvePanel:349,1
    - Dst: '[EditCurvePanel].getControlString()'
      Src: EditCurvePanel:349,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:349,1
    - Dst: c.getConnect()
      Src: EditCurvePanel:350,1
    - Dst: '[JCheckBox].setSelected(EditCurvePanel)'
      Src: EditCurvePanel:350,1
    - Dst: '[JPanel].removeAll()'
      Src: EditCurvePanel:353,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:354,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:357,1
    - Dst: bc.t_min()
      Src: EditCurvePanel:360,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:360,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:360,1
    - Dst: bc.t_max()
      Src: EditCurvePanel:361,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:361,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:361,1
    - Dst: bc.getSampleLimit()
      Src: EditCurvePanel:362,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:362,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:362,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:367,1
    - Dst: bs.t_min()
      Src: EditCurvePanel:369,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:369,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:369,1
    - Dst: bs.t_max()
      Src: EditCurvePanel:370,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:370,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:370,1
    - Dst: bs.getSampleLimit()
      Src: EditCurvePanel:371,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:371,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:371,1
    - Dst: bs.getDegree()
      Src: EditCurvePanel:372,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:372,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:372,1
    - Dst: bs.getKnotVectorType()
      Src: EditCurvePanel:373,1
    - Dst: '[JComboBox].setSelectedIndex(EditCurvePanel)'
      Src: EditCurvePanel:374,1
    - Dst: bs.getUseDefaultInterval()
      Src: EditCurvePanel:375,1
    - Dst: '[JCheckBox].setSelected(EditCurvePanel)'
      Src: EditCurvePanel:375,1
    - Dst: '[JCheckBox].setEnabled(EditCurvePanel)'
      Src: EditCurvePanel:376,1
    - Dst: bs.getKnotVector()
      Src: EditCurvePanel:377,1
    - Dst: '[UnsortedValueVectorPanel].setValueVector(EditCurvePanel)'
      Src: EditCurvePanel:377,1
    - Dst: ns.getUseWeightVector()
      Src: EditCurvePanel:381,1
    - Dst: ns.getWeightVector()
      Src: EditCurvePanel:382,1
    - Dst: '[UnsortedValueVectorPanel].setValueVector(EditCurvePanel)'
      Src: EditCurvePanel:382,1
    - Dst: '[JCheckBox].setSelected(EditCurvePanel)'
      Src: EditCurvePanel:383,1
    - Dst: '[UnsortedValueVectorPanel].setDisabled()'
      Src: EditCurvePanel:384,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:388,1
    - Dst: cs.getAlpha()
      Src: EditCurvePanel:390,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:390,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:390,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:393,1
    - Dst: cbs.getInterpolateEndpoints()
      Src: EditCurvePanel:395,1
    - Dst: '[JCheckBox].setSelected(EditCurvePanel)'
      Src: EditCurvePanel:395,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:398,1
    - Dst: lc.getBaseIndex()
      Src: EditCurvePanel:400,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:400,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:400,1
    - Dst: lc.getBaseLength()
      Src: EditCurvePanel:401,1
    - Dst: String.valueOf(EditCurvePanel)
      Src: EditCurvePanel:401,1
    - Dst: '[JTextField].setText(EditCurvePanel)'
      Src: EditCurvePanel:401,1
    - Dst: '[JCheckBox].isSelected()'
      Src: EditCurvePanel:402,1
    - Dst: '[JCheckBox].setSelected(EditCurvePanel)'
      Src: EditCurvePanel:402,1
    - Dst: '[JCheckBox].isSelected()'
      Src: EditCurvePanel:403,1
    - Dst: '[JCheckBox].setSelected(EditCurvePanel)'
      Src: EditCurvePanel:403,1
    - Dst: lc.getKnotVector()
      Src: EditCurvePanel:404,1
    - Dst: '[UnsortedValueVectorPanel].setValueVector(EditCurvePanel)'
      Src: EditCurvePanel:404,1
    - Dst: '[UnsortedValueVectorPanel].setDisabled(boolean)'
      Src: EditCurvePanel:405,1
    - Dst: '[UnsortedValueVectorPanel].repaint()'
      Src: EditCurvePanel:406,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:409,1
    - Dst: ncs.getClosed()
      Src: EditCurvePanel:411,1
    - Dst: '[JCheckBox].setSelected(EditCurvePanel)'
      Src: EditCurvePanel:411,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:414,1
    - Dst: '[EditCurvePanel].revalidate()'
      Src: EditCurvePanel:417,1
    - Dst: '[EditCurvePanel].repaint()'
      Src: EditCurvePanel:418,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 97
    JavaMethodInfo:
      argumentGenericTypes:
      - ListSelectionEvent
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - evt
    argTypes:
    - ListSelectionEvent
    constantsTouched: []
    func_position:
      end: 419
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 419
    functionName: '[EditCurvePanel].valueChanged(ListSelectionEvent)'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - ns.getWeightVector()
    - '[JList].getSelectedValue()'
    - '[JTextField].setText(EditCurvePanel)'
    - bc.t_max()
    - '[UnsortedValueVectorPanel].repaint()'
    - bc.getSampleLimit()
    - lc.getKnotVector()
    - lc.getBaseLength()
    - lc.getBaseIndex()
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - bs.getUseDefaultInterval()
    - c.getConnect()
    - bs.getKnotVector()
    - cs.getAlpha()
    - '[EditCurvePanel].repaint()'
    - bc.t_min()
    - '[JCheckBox].setEnabled(EditCurvePanel)'
    - '[UnsortedValueVectorPanel].setValueVector(EditCurvePanel)'
    - '[UnsortedValueVectorPanel].setDisabled(boolean)'
    - '[JCheckBox].setSelected(EditCurvePanel)'
    - '[JComboBox].setSelectedIndex(EditCurvePanel)'
    - bs.getSampleLimit()
    - ncs.getClosed()
    - bs.t_min()
    - '[EditCurvePanel].revalidate()'
    - bs.getDegree()
    - ns.getUseWeightVector()
    - '[JPanel].removeAll()'
    - bs.t_max()
    - '[EditCurvePanel].getControlString()'
    - bs.getKnotVectorType()
    - String.valueOf(EditCurvePanel)
    - '[UnsortedValueVectorPanel].setDisabled()'
    - c.getGroupIterator()
    - cbs.getInterpolateEndpoints()
    - '[JCheckBox].isSelected()'
    linkageType: ''
    returnType: void
    signature: '[EditCurvePanel].valueChanged(ListSelectionEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[JPanel].repaint()'
      Src: EditCurvePanel:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - ValueVector
      - int
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 3
    argNames:
    - v
    - index
    - value
    argTypes:
    - ValueVector
    - int
    - double
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: '[EditCurvePanel].valueInserted(ValueVector,int,double)'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].repaint()'
    linkageType: ''
    returnType: void
    signature: '[EditCurvePanel].valueInserted(ValueVector,int,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[JPanel].repaint()'
      Src: EditCurvePanel:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - ValueVector
      - int
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 3
    argNames:
    - v
    - index
    - oldValue
    argTypes:
    - ValueVector
    - int
    - double
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: '[EditCurvePanel].valueRemoved(ValueVector,int,double)'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].repaint()'
    linkageType: ''
    returnType: void
    signature: '[EditCurvePanel].valueRemoved(ValueVector,int,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[JPanel].repaint()'
      Src: EditCurvePanel:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - ValueVector
      - int
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 3
    argNames:
    - v
    - index
    - oldValue
    argTypes:
    - ValueVector
    - int
    - double
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: '[EditCurvePanel].valueChanged(ValueVector,int,double)'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].repaint()'
    linkageType: ''
    returnType: void
    signature: '[EditCurvePanel].valueChanged(ValueVector,int,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:434,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:434,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:435,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:435,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:436,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:437,1
    - Dst: '[JPanel].add(JCheckBox)'
      Src: EditCurvePanel:438,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: JPanel
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 441
    functionName: '[EditCurvePanel].getCurvePanel()'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 6
    functionsReached:
    - '[JPanel].add(JLabel)'
    - '[JPanel].<init>(BorderLayout)'
    - '[JPanel].<init>(FlowLayout)'
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - '[FlowLayout].<init>(EditCurvePanel)'
    - '[BorderLayout].<init>()'
    - '[JPanel].add(JTextField)'
    - '[JPanel].add(JCheckBox)'
    linkageType: ''
    returnType: JPanel
    signature: '[EditCurvePanel].getCurvePanel()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[EditCurvePanel].getCurvePanel()'
      Src: EditCurvePanel:444,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:445,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:445,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:446,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:447,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:448,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:449,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:450,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:450,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:451,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:452,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:453,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:453,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:454,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:455,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: JPanel
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 458
    functionName: '[EditCurvePanel].getBezierCurvePanel()'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].<init>(FlowLayout)'
    - '[JPanel].add(JLabel)'
    - '[JPanel].<init>(BorderLayout)'
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - '[EditCurvePanel].getCurvePanel()'
    - '[FlowLayout].<init>(EditCurvePanel)'
    - '[BorderLayout].<init>()'
    - '[JPanel].add(JTextField)'
    linkageType: ''
    returnType: JPanel
    signature: '[EditCurvePanel].getBezierCurvePanel()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[EditCurvePanel].getCurvePanel()'
      Src: EditCurvePanel:461,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:462,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:462,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:463,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:464,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:465,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:466,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:467,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:467,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:468,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:469,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:470,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:471,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:473,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:473,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:474,1
    - Dst: '[JPanel].add(JComboBox)'
      Src: EditCurvePanel:475,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:476,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:476,1
    - Dst: '[JPanel].add(JCheckBox)'
      Src: EditCurvePanel:477,1
    - Dst: '[JPanel].add(JCheckBox)'
      Src: EditCurvePanel:478,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:480,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:480,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:481,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:482,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:484,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:484,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:485,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:486,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:488,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:488,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:489,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:490,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:492,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:492,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:493,1
    - Dst: '[GridLayout].<init>(int,int)'
      Src: EditCurvePanel:497,1
    - Dst: '[JPanel].<init>(GridLayout)'
      Src: EditCurvePanel:497,1
    - Dst: '[JPanel].add(UnsortedValueVectorPanel)'
      Src: EditCurvePanel:498,1
    - Dst: '[JPanel].add(UnsortedValueVectorPanel)'
      Src: EditCurvePanel:499,1
    - Dst: '[JPanel].add(EditCurvePanel,EditCurvePanel)'
      Src: EditCurvePanel:504,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: JPanel
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - nurbs
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 507
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 507
    functionName: '[EditCurvePanel].getBSplinePanel(boolean)'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].add(EditCurvePanel,EditCurvePanel)'
    - '[JPanel].<init>(FlowLayout)'
    - '[JPanel].add(JLabel)'
    - '[JPanel].<init>(BorderLayout)'
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - '[JPanel].add(UnsortedValueVectorPanel)'
    - '[EditCurvePanel].getCurvePanel()'
    - '[FlowLayout].<init>(EditCurvePanel)'
    - '[BorderLayout].<init>()'
    - '[GridLayout].<init>(int,int)'
    - '[JPanel].add(JTextField)'
    - '[JPanel].add(JCheckBox)'
    - '[JPanel].<init>(GridLayout)'
    - '[JPanel].add(JComboBox)'
    linkageType: ''
    returnType: JPanel
    signature: '[EditCurvePanel].getBSplinePanel(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[EditCurvePanel].getCurvePanel()'
      Src: EditCurvePanel:510,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:511,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:511,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:512,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:513,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: JPanel
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 516
    functionName: '[EditCurvePanel].getCardinalSplinePanel()'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].<init>(FlowLayout)'
    - '[JPanel].add(JLabel)'
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - '[EditCurvePanel].getCurvePanel()'
    - '[FlowLayout].<init>(EditCurvePanel)'
    - '[JPanel].add(JTextField)'
    linkageType: ''
    returnType: JPanel
    signature: '[EditCurvePanel].getCardinalSplinePanel()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[EditCurvePanel].getCurvePanel()'
      Src: EditCurvePanel:519,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:520,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:520,1
    - Dst: '[JPanel].add(JCheckBox)'
      Src: EditCurvePanel:521,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: JPanel
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: '[EditCurvePanel].getCubicBSplinePanel()'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].<init>(FlowLayout)'
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - '[EditCurvePanel].getCurvePanel()'
    - '[FlowLayout].<init>(EditCurvePanel)'
    - '[JPanel].add(JCheckBox)'
    linkageType: ''
    returnType: JPanel
    signature: '[EditCurvePanel].getCubicBSplinePanel()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[EditCurvePanel].getCurvePanel()'
      Src: EditCurvePanel:527,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:528,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:528,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:529,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:530,1
    - Dst: '[JPanel].add(JLabel)'
      Src: EditCurvePanel:531,1
    - Dst: '[JPanel].add(JTextField)'
      Src: EditCurvePanel:532,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:533,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:533,1
    - Dst: '[JPanel].add(JCheckBox)'
      Src: EditCurvePanel:534,1
    - Dst: '[JPanel].add(JCheckBox)'
      Src: EditCurvePanel:535,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:536,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:536,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:537,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:538,1
    - Dst: '[BorderLayout].<init>()'
      Src: EditCurvePanel:539,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: EditCurvePanel:539,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:540,1
    - Dst: '[JPanel].add(UnsortedValueVectorPanel,EditCurvePanel)'
      Src: EditCurvePanel:541,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: JPanel
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 544
    functionName: '[EditCurvePanel].getLagrangeCurvePanel()'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].<init>(FlowLayout)'
    - '[JPanel].add(JLabel)'
    - '[JPanel].<init>(BorderLayout)'
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - '[EditCurvePanel].getCurvePanel()'
    - '[FlowLayout].<init>(EditCurvePanel)'
    - '[BorderLayout].<init>()'
    - '[JPanel].add(JTextField)'
    - '[JPanel].add(UnsortedValueVectorPanel,EditCurvePanel)'
    - '[JPanel].add(JCheckBox)'
    linkageType: ''
    returnType: JPanel
    signature: '[EditCurvePanel].getLagrangeCurvePanel()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[EditCurvePanel].getCurvePanel()'
      Src: EditCurvePanel:547,1
    - Dst: '[FlowLayout].<init>(EditCurvePanel)'
      Src: EditCurvePanel:548,1
    - Dst: '[JPanel].<init>(FlowLayout)'
      Src: EditCurvePanel:548,1
    - Dst: '[JPanel].add(JCheckBox)'
      Src: EditCurvePanel:549,1
    - Dst: '[JPanel].add(JPanel,EditCurvePanel)'
      Src: EditCurvePanel:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - JList
      - java.util.Vector
      - JButton
      - JButton
      - JLabel
      - JTextField
      - JCheckBox
      - JLabel
      - JLabel
      - JTextField
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JLabel
      - JComboBox
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - UnsortedValueVectorPanel
      - UnsortedValueVectorPanel
      - JLabel
      - JTextField
      - JLabel
      - JTextField
      - JCheckBox
      - JCheckBox
      - JCheckBox
      - JDialog
      - JList
      - JButton
      - JButton
      - JPanel
      - JPanel
      - ControlPath
      - JPanel
      - JPanel
      - JButton
      - JButton
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      - ListSelectionListener
      - ValueVectorListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: JPanel
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 552
    functionName: '[EditCurvePanel].getNaturalCubicSplinePanel()'
    functionSourceFile: /src/curvesapi/demo/EditCurvePanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].<init>(FlowLayout)'
    - '[JPanel].add(JPanel,EditCurvePanel)'
    - '[EditCurvePanel].getCurvePanel()'
    - '[FlowLayout].<init>(EditCurvePanel)'
    - '[JPanel].add(JCheckBox)'
    linkageType: ''
    returnType: JPanel
    signature: '[EditCurvePanel].getNaturalCubicSplinePanel()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[java.util.Vector].<init>()'
      Src: UnsortedValueVectorPanel:48,1
    - Dst: '[Rectangle].<init>(int,int,int,int)'
      Src: UnsortedValueVectorPanel:56,1
    - Dst: '[Rectangle2D.Double].<init>(int,int,int,int)'
      Src: UnsortedValueVectorPanel:60,1
    - Dst: '[UnsortedValueVectorPanel.Control].<init>()'
      Src: UnsortedValueVectorPanel:93,1
    - Dst: '[UnsortedValueVectorPanel].addMouseListener(UnsortedValueVectorPanel.Control)'
      Src: UnsortedValueVectorPanel:94,1
    - Dst: '[UnsortedValueVectorPanel].addMouseMotionListener(UnsortedValueVectorPanel.Control)'
      Src: UnsortedValueVectorPanel:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: UnsortedValueVectorPanel
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - canInsertAndRemove
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: '[UnsortedValueVectorPanel].<init>(boolean)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 2
    functionsReached:
    - '[UnsortedValueVectorPanel].addMouseListener(UnsortedValueVectorPanel.Control)'
    - '[UnsortedValueVectorPanel].addMouseMotionListener(UnsortedValueVectorPanel.Control)'
    - '[Rectangle].<init>(int,int,int,int)'
    - '[Rectangle2D.Double].<init>(int,int,int,int)'
    - '[UnsortedValueVectorPanel.Control].<init>()'
    - '[java.util.Vector].<init>()'
    linkageType: ''
    returnType: UnsortedValueVectorPanel
    signature: '[UnsortedValueVectorPanel].<init>(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: Shape
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: '[UnsortedValueVectorPanel].getKnobShape()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Shape
    signature: '[UnsortedValueVectorPanel].getKnobShape()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[IllegalArgumentException].<init>()'
      Src: UnsortedValueVectorPanel:143,1
    - Dst: '[Shape].getBounds2D()'
      Src: UnsortedValueVectorPanel:144,1
    - Dst: '[UnsortedValueVectorPanel].getWidth()'
      Src: UnsortedValueVectorPanel:145,1
    - Dst: Math.round(UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:145,1
    - Dst: '[UnsortedValueVectorPanel].getHeight()'
      Src: UnsortedValueVectorPanel:146,1
    - Dst: Math.round(UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    JavaMethodInfo:
      argumentGenericTypes:
      - Shape
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - s
    argTypes:
    - Shape
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: '[UnsortedValueVectorPanel].setKnobShape(Shape)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[UnsortedValueVectorPanel].getHeight()'
    - '[Shape].getBounds2D()'
    - Math.round(UnsortedValueVectorPanel)
    - '[UnsortedValueVectorPanel].getWidth()'
    - '[IllegalArgumentException].<init>()'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setKnobShape(Shape)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    JavaMethodInfo:
      argumentGenericTypes:
      - int
      - int
      - int
      - int
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 4
    argNames:
    - top
    - left
    - bottom
    - right
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: '[UnsortedValueVectorPanel].setInsets(int,int,int,int)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setInsets(int,int,int,int)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: double
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: '[UnsortedValueVectorPanel].getMin()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: '[UnsortedValueVectorPanel].getMin()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: double
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: '[UnsortedValueVectorPanel].getMax()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: '[UnsortedValueVectorPanel].getMax()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[IllegalArgumentException].<init>(String)'
      Src: UnsortedValueVectorPanel:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    JavaMethodInfo:
      argumentGenericTypes:
      - double
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: '[UnsortedValueVectorPanel].setRange(double,double)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[IllegalArgumentException].<init>(String)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setRange(double,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - b
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: '[UnsortedValueVectorPanel].setShowValues(boolean)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setShowValues(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: boolean
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: '[UnsortedValueVectorPanel].getShowValues()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: '[UnsortedValueVectorPanel].getShowValues()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[IllegalArgumentException].<init>(String)'
      Src: UnsortedValueVectorPanel:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    JavaMethodInfo:
      argumentGenericTypes:
      - int
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - p
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: '[UnsortedValueVectorPanel].setValuePosition(int)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[IllegalArgumentException].<init>(String)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setValuePosition(int)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[ValueVector].get(int)'
      Src: UnsortedValueVectorPanel:187,1
    - Dst: '[ValueVector].set(UnsortedValueVectorPanel,int)'
      Src: UnsortedValueVectorPanel:190,1
    - Dst: '[UnsortedValueVectorPanel].fireValueChanged(ValueVector,int,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    JavaMethodInfo:
      argumentGenericTypes:
      - int
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: '[UnsortedValueVectorPanel].setValue(int,double)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[UnsortedValueVectorPanel].fireValueChanged(ValueVector,int,UnsortedValueVectorPanel)'
    - '[ValueVector].set(UnsortedValueVectorPanel,int)'
    - '[ValueVector].get(int)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setValue(int,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: int
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: '[UnsortedValueVectorPanel].getValuePosition()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: '[UnsortedValueVectorPanel].getValuePosition()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - int
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: '[UnsortedValueVectorPanel].setNumDigits(int)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setNumDigits(int)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: int
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: '[UnsortedValueVectorPanel].getNumDigits()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: '[UnsortedValueVectorPanel].getNumDigits()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: ValueVector
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: '[UnsortedValueVectorPanel].getValueVector()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ValueVector
    signature: '[UnsortedValueVectorPanel].getValueVector()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - ValueVector
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - kv
    argTypes:
    - ValueVector
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: '[UnsortedValueVectorPanel].setValueVector(ValueVector)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setValueVector(ValueVector)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: Color
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: '[UnsortedValueVectorPanel].getKnobFillColor()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Color
    signature: '[UnsortedValueVectorPanel].getKnobFillColor()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[IllegalArgumentException].<init>(String)'
      Src: UnsortedValueVectorPanel:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    JavaMethodInfo:
      argumentGenericTypes:
      - Color
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - c
    argTypes:
    - Color
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: '[UnsortedValueVectorPanel].setKnobFillColor(Color)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[IllegalArgumentException].<init>(String)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setKnobFillColor(Color)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - b
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: '[UnsortedValueVectorPanel].setDisabled(boolean)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].setDisabled(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: boolean
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: '[UnsortedValueVectorPanel].getDisabled()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: '[UnsortedValueVectorPanel].getDisabled()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[JPanel].paint(Graphics)'
      Src: UnsortedValueVectorPanel:233,1
    - Dst: '[UnsortedValueVectorPanel].getWidth()'
      Src: UnsortedValueVectorPanel:237,1
    - Dst: '[UnsortedValueVectorPanel].getHeight()'
      Src: UnsortedValueVectorPanel:238,1
    - Dst: g.getFont()
      Src: UnsortedValueVectorPanel:242,1
    - Dst: g.getFontRenderContext()
      Src: UnsortedValueVectorPanel:242,1
    - Dst: '[TextLayout].<init>(UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:242,1
    - Dst: '[TextLayout].getAscent()'
      Src: UnsortedValueVectorPanel:243,1
    - Dst: '[TextLayout].getDescent()'
      Src: UnsortedValueVectorPanel:243,1
    - Dst: Math.round(UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:243,1
    - Dst: '[TextLayout].getAdvance()'
      Src: UnsortedValueVectorPanel:244,1
    - Dst: Math.round(UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:244,1
    - Dst: g.drawString(UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:247,1
    - Dst: '[ValueVector].size()'
      Src: UnsortedValueVectorPanel:259,1
    - Dst: g.getFont()
      Src: UnsortedValueVectorPanel:263,1
    - Dst: g.getFontRenderContext()
      Src: UnsortedValueVectorPanel:263,1
    - Dst: '[TextLayout].<init>(UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:263,1
    - Dst: '[TextLayout].getAscent()'
      Src: UnsortedValueVectorPanel:264,1
    - Dst: Math.round(UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:264,1
    - Dst: g.setColor(Color)
      Src: UnsortedValueVectorPanel:279,1
    - Dst: g.setColor(Color)
      Src: UnsortedValueVectorPanel:281,1
    - Dst: g.drawRect(int,UnsortedValueVectorPanel,int,UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:283,1
    - Dst: Math.round(UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:290,1
    - Dst: '[ValueVector].get(UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:292,1
    - Dst: String.valueOf(UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:292,1
    - Dst: '[UnsortedValueVectorPanel].charAt(int)'
      Src: UnsortedValueVectorPanel:294,1
    - Dst: '[UnsortedValueVectorPanel].length()'
      Src: UnsortedValueVectorPanel:295,1
    - Dst: '[UnsortedValueVectorPanel].substring(int,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:296,1
    - Dst: g.getFont()
      Src: UnsortedValueVectorPanel:298,1
    - Dst: g.getFontRenderContext()
      Src: UnsortedValueVectorPanel:298,1
    - Dst: '[TextLayout].<init>(UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:298,1
    - Dst: '[TextLayout].getAdvance()'
      Src: UnsortedValueVectorPanel:299,1
    - Dst: Math.round(UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:299,1
    - Dst: g.setColor(Color)
      Src: UnsortedValueVectorPanel:302,1
    - Dst: g.setColor(Color)
      Src: UnsortedValueVectorPanel:304,1
    - Dst: g.drawString(UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:306,1
    - Dst: g.drawLine(UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:309,1
    - Dst: Math.round(UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:311,1
    - Dst: g.translate(UnsortedValueVectorPanel,UnsortedValueVectorPanel)
      Src: UnsortedValueVectorPanel:319,1
    - Dst: '[Rectangle2D].setRect(UnsortedValueVectorPanel,UnsortedValueVectorPanel,int,int)'
      Src: UnsortedValueVectorPanel:322,1
    - Dst: '[Rectangle2D].contains(int,int)'
      Src: UnsortedValueVectorPanel:323,1
    - Dst: '[ValueVector].get(UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:330,1
    - Dst: '[ValueVector].remove(UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:331,1
    - Dst: '[UnsortedValueVectorPanel].fireValueRemoved(ValueVector,UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:332,1
    - Dst: '[UnsortedValueVectorPanel].setValue(int,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:340,1
    - Dst: g.setColor(Color)
      Src: UnsortedValueVectorPanel:344,1
    - Dst: g.setColor(Color)
      Src: UnsortedValueVectorPanel:346,1
    - Dst: g.fill(Shape)
      Src: UnsortedValueVectorPanel:348,1
    - Dst: g.setColor(Color)
      Src: UnsortedValueVectorPanel:351,1
    - Dst: g.setColor(Color)
      Src: UnsortedValueVectorPanel:353,1
    - Dst: g.draw(Shape)
      Src: UnsortedValueVectorPanel:355,1
    - Dst: g.translate()
      Src: UnsortedValueVectorPanel:357,1
    - Dst: '[ValueVector].size()'
      Src: UnsortedValueVectorPanel:373,1
    - Dst: '[ValueVector].get(UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:374,1
    - Dst: '[ValueVector].get(int)'
      Src: UnsortedValueVectorPanel:374,1
    - Dst: '[ValueVector].size()'
      Src: UnsortedValueVectorPanel:377,1
    - Dst: '[ValueVector].size()'
      Src: UnsortedValueVectorPanel:377,1
    - Dst: '[ValueVector].insert(UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:381,1
    - Dst: '[UnsortedValueVectorPanel].fireValueInserted(ValueVector,UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:382,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 183
    JavaMethodInfo:
      argumentGenericTypes:
      - Graphics
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - _g
    argTypes:
    - Graphics
    constantsTouched: []
    func_position:
      end: 384
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 384
    functionName: '[UnsortedValueVectorPanel].paint(Graphics)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[ValueVector].size()'
    - '[UnsortedValueVectorPanel].setValue(int,UnsortedValueVectorPanel)'
    - '[ValueVector].remove(UnsortedValueVectorPanel)'
    - '[TextLayout].getAdvance()'
    - '[TextLayout].getAscent()'
    - g.getFont()
    - g.drawRect(int,UnsortedValueVectorPanel,int,UnsortedValueVectorPanel)
    - '[Rectangle2D].contains(int,int)'
    - g.getFontRenderContext()
    - g.translate()
    - '[UnsortedValueVectorPanel].substring(int,UnsortedValueVectorPanel)'
    - '[UnsortedValueVectorPanel].getHeight()'
    - '[TextLayout].<init>(UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
    - '[JPanel].paint(Graphics)'
    - '[TextLayout].getDescent()'
    - g.fill(Shape)
    - '[UnsortedValueVectorPanel].fireValueRemoved(ValueVector,UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
    - g.drawLine(UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel)
    - '[Rectangle2D].setRect(UnsortedValueVectorPanel,UnsortedValueVectorPanel,int,int)'
    - '[UnsortedValueVectorPanel].fireValueInserted(ValueVector,UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
    - '[UnsortedValueVectorPanel].length()'
    - '[ValueVector].insert(UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
    - '[ValueVector].get(int)'
    - g.draw(Shape)
    - '[ValueVector].get(UnsortedValueVectorPanel)'
    - '[UnsortedValueVectorPanel].charAt(int)'
    - g.drawString(UnsortedValueVectorPanel,UnsortedValueVectorPanel,UnsortedValueVectorPanel)
    - g.translate(UnsortedValueVectorPanel,UnsortedValueVectorPanel)
    - Math.round(UnsortedValueVectorPanel)
    - String.valueOf(UnsortedValueVectorPanel)
    - '[UnsortedValueVectorPanel].getWidth()'
    - g.setColor(Color)
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].paint(Graphics)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[UnsortedValueVectorPanel].getNumValueVectorListeners()'
      Src: UnsortedValueVectorPanel:387,1
    - Dst: '[UnsortedValueVectorPanel].getValueVectorListener(UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:388,1
    - Dst: '[ValueVectorListener].valueInserted(ValueVector,int,double)'
      Src: UnsortedValueVectorPanel:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    JavaMethodInfo:
      argumentGenericTypes:
      - ValueVector
      - int
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 3
    argNames:
    - v
    - index
    - value
    argTypes:
    - ValueVector
    - int
    - double
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: '[UnsortedValueVectorPanel].fireValueInserted(ValueVector,int,double)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[UnsortedValueVectorPanel].getValueVectorListener(UnsortedValueVectorPanel)'
    - '[UnsortedValueVectorPanel].getNumValueVectorListeners()'
    - '[ValueVectorListener].valueInserted(ValueVector,int,double)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].fireValueInserted(ValueVector,int,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[UnsortedValueVectorPanel].getNumValueVectorListeners()'
      Src: UnsortedValueVectorPanel:392,1
    - Dst: '[UnsortedValueVectorPanel].getValueVectorListener(UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:393,1
    - Dst: '[ValueVectorListener].valueRemoved(ValueVector,int,double)'
      Src: UnsortedValueVectorPanel:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    JavaMethodInfo:
      argumentGenericTypes:
      - ValueVector
      - int
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 3
    argNames:
    - v
    - index
    - value
    argTypes:
    - ValueVector
    - int
    - double
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: '[UnsortedValueVectorPanel].fireValueRemoved(ValueVector,int,double)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[UnsortedValueVectorPanel].getValueVectorListener(UnsortedValueVectorPanel)'
    - '[UnsortedValueVectorPanel].getNumValueVectorListeners()'
    - '[ValueVectorListener].valueRemoved(ValueVector,int,double)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].fireValueRemoved(ValueVector,int,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[UnsortedValueVectorPanel].getNumValueVectorListeners()'
      Src: UnsortedValueVectorPanel:397,1
    - Dst: '[UnsortedValueVectorPanel].getValueVectorListener(UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:398,1
    - Dst: '[ValueVectorListener].valueChanged(ValueVector,int,double)'
      Src: UnsortedValueVectorPanel:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    JavaMethodInfo:
      argumentGenericTypes:
      - ValueVector
      - int
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 3
    argNames:
    - v
    - index
    - oldValue
    argTypes:
    - ValueVector
    - int
    - double
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: '[UnsortedValueVectorPanel].fireValueChanged(ValueVector,int,double)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[UnsortedValueVectorPanel].getValueVectorListener(UnsortedValueVectorPanel)'
    - '[UnsortedValueVectorPanel].getNumValueVectorListeners()'
    - '[ValueVectorListener].valueChanged(ValueVector,int,double)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].fireValueChanged(ValueVector,int,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[IllegalArgumentException].<init>(String)'
      Src: UnsortedValueVectorPanel:403,1
    - Dst: '[java.util.Vector].add(ValueVectorListener)'
      Src: UnsortedValueVectorPanel:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    JavaMethodInfo:
      argumentGenericTypes:
      - ValueVectorListener
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - vvl
    argTypes:
    - ValueVectorListener
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: '[UnsortedValueVectorPanel].addValueVectorListener(ValueVectorListener)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[IllegalArgumentException].<init>(String)'
    - '[java.util.Vector].add(ValueVectorListener)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].addValueVectorListener(ValueVectorListener)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[java.util.Vector].remove(ValueVectorListener)'
      Src: UnsortedValueVectorPanel:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - ValueVectorListener
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - vvl
    argTypes:
    - ValueVectorListener
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: '[UnsortedValueVectorPanel].removeValueVectorListener(ValueVectorListener)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[java.util.Vector].remove(ValueVectorListener)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].removeValueVectorListener(ValueVectorListener)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[java.util.Vector].get(int)'
      Src: UnsortedValueVectorPanel:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    JavaMethodInfo:
      argumentGenericTypes:
      - int
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: ValueVectorListener
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: '[UnsortedValueVectorPanel].getValueVectorListener(int)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[java.util.Vector].get(int)'
    linkageType: ''
    returnType: ValueVectorListener
    signature: '[UnsortedValueVectorPanel].getValueVectorListener(int)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[java.util.Vector].size()'
      Src: UnsortedValueVectorPanel:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: int
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: '[UnsortedValueVectorPanel].getNumValueVectorListeners()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 3
    functionsReached:
    - '[java.util.Vector].size()'
    linkageType: ''
    returnType: int
    signature: '[UnsortedValueVectorPanel].getNumValueVectorListeners()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[BorderLayout].<init>()'
      Src: UnsortedValueVectorPanel:421,1
    - Dst: '[JPanel].<init>(BorderLayout)'
      Src: UnsortedValueVectorPanel:421,1
    - Dst: '[UnsortedValueVectorPanel].<init>(boolean)'
      Src: UnsortedValueVectorPanel:422,1
    - Dst: '[ValueVector].<init>()'
      Src: UnsortedValueVectorPanel:423,1
    - Dst: '[UnsortedValueVectorPanel].setValueVector(ValueVector)'
      Src: UnsortedValueVectorPanel:423,1
    - Dst: '[JPanel].add(UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
      Src: UnsortedValueVectorPanel:424,1
    - Dst: '[JFrame].<init>()'
      Src: UnsortedValueVectorPanel:425,1
    - Dst: '[JFrame].setSize(int,int)'
      Src: UnsortedValueVectorPanel:426,1
    - Dst: '[JFrame].setContentPane(JPanel)'
      Src: UnsortedValueVectorPanel:427,1
    - Dst: '[JFrame].show()'
      Src: UnsortedValueVectorPanel:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    JavaMethodInfo:
      argumentGenericTypes:
      - String[]
      classConcrete: true
      classEnum: false
      classFields:
      - int
      - int
      - ValueVector
      - java.util.Vector
      - boolean
      - int
      - double
      - double
      - Shape
      - int
      - int
      - Rectangle2D
      - boolean
      - int
      - int
      - int
      - int
      - boolean
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - Color
      - int
      - int
      - Color
      - int
      - int
      - int
      - int
      - boolean
      - int
      - boolean
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: true
      superClass: JPanel
    argCount: 1
    argNames:
    - args
    argTypes:
    - String[]
    constantsTouched: []
    func_position:
      end: 429
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 429
    functionName: '[UnsortedValueVectorPanel].main(String[])'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[JPanel].<init>(BorderLayout)'
    - '[BorderLayout].<init>()'
    - '[JFrame].setContentPane(JPanel)'
    - '[ValueVector].<init>()'
    - '[UnsortedValueVectorPanel].<init>(boolean)'
    - '[JFrame].show()'
    - '[UnsortedValueVectorPanel].setValueVector(ValueVector)'
    - '[JPanel].add(UnsortedValueVectorPanel,UnsortedValueVectorPanel)'
    - '[JFrame].<init>()'
    - '[JFrame].setSize(int,int)'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel].main(String[])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: false
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: UnsortedValueVectorPanel.Control
      static: false
      superClass: Object
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: '[UnsortedValueVectorPanel.Control].<init>()'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UnsortedValueVectorPanel.Control
    signature: '[UnsortedValueVectorPanel.Control].<init>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[MouseEvent].getX()'
      Src: UnsortedValueVectorPanel.Control:107,1
    - Dst: '[MouseEvent].getY()'
      Src: UnsortedValueVectorPanel.Control:108,1
    - Dst: '[MouseEvent].getClickCount()'
      Src: UnsortedValueVectorPanel.Control:110,1
    - Dst: '[UnsortedValueVectorPanel.Control].repaint()'
      Src: UnsortedValueVectorPanel.Control:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: false
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: Object
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: '[UnsortedValueVectorPanel.Control].mousePressed(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[MouseEvent].getClickCount()'
    - '[MouseEvent].getY()'
    - '[UnsortedValueVectorPanel.Control].repaint()'
    - '[MouseEvent].getX()'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel.Control].mousePressed(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[UnsortedValueVectorPanel.Control].repaint()'
      Src: UnsortedValueVectorPanel.Control:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: false
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: Object
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: '[UnsortedValueVectorPanel.Control].mouseReleased(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[UnsortedValueVectorPanel.Control].repaint()'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel.Control].mouseReleased(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[MouseEvent].getX()'
      Src: UnsortedValueVectorPanel.Control:127,1
    - Dst: '[MouseEvent].getY()'
      Src: UnsortedValueVectorPanel.Control:128,1
    - Dst: '[UnsortedValueVectorPanel.Control].repaint()'
      Src: UnsortedValueVectorPanel.Control:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: false
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: Object
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: '[UnsortedValueVectorPanel.Control].mouseDragged(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached:
    - '[MouseEvent].getY()'
    - '[UnsortedValueVectorPanel.Control].repaint()'
    - '[MouseEvent].getX()'
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel.Control].mouseDragged(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: false
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: Object
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: '[UnsortedValueVectorPanel.Control].mouseClicked(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel.Control].mouseClicked(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: false
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: Object
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '[UnsortedValueVectorPanel.Control].mouseEntered(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel.Control].mouseEntered(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: false
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: Object
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: '[UnsortedValueVectorPanel.Control].mouseExited(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel.Control].mouseExited(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: false
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: Object
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '[UnsortedValueVectorPanel.Control].mouseMoved(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/UnsortedValueVectorPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[UnsortedValueVectorPanel.Control].mouseMoved(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[ControlPath].<init>()'
      Src: ControlPathPanel:46,1
    - Dst: '[PointFactory].<init>()'
      Src: ControlPathPanel:47,1
    - Dst: '[ShapeMultiPath].<init>()'
      Src: ControlPathPanel:75,1
    - Dst: '[JPanel].<init>()'
      Src: ControlPathPanel:78,1
    - Dst: '[ControlPathPanel].addMouseListener()'
      Src: ControlPathPanel:79,1
    - Dst: '[ControlPathPanel].addMouseMotionListener()'
      Src: ControlPathPanel:80,1
    - Dst: '[ControlPathPanel].setBackground(ControlPathPanel)'
      Src: ControlPathPanel:81,1
    - Dst: '[GroupIterator].<init>(String,int)'
      Src: ControlPathPanel:84,1
    - Dst: '[BSpline].<init>(ControlPath,GroupIterator)'
      Src: ControlPathPanel:84,1
    - Dst: '[ControlPath].addCurve(BSpline)'
      Src: ControlPathPanel:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: ControlPathPanel
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: '[ControlPathPanel].<init>()'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 1
    functionsReached:
    - '[ControlPathPanel].addMouseListener()'
    - '[ControlPathPanel].setBackground(ControlPathPanel)'
    - '[ShapeMultiPath].<init>()'
    - '[ControlPath].addCurve(BSpline)'
    - '[ControlPathPanel].addMouseMotionListener()'
    - '[JPanel].<init>()'
    - '[GroupIterator].<init>(String,int)'
    - '[BSpline].<init>(ControlPath,GroupIterator)'
    - '[PointFactory].<init>()'
    - '[ControlPath].<init>()'
    linkageType: ''
    returnType: ControlPathPanel
    signature: '[ControlPathPanel].<init>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - b
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: '[ControlPathPanel].setShowControlLine(boolean)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].setShowControlLine(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - b
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: '[ControlPathPanel].setShowControlPoints(boolean)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].setShowControlPoints(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: boolean
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: '[ControlPathPanel].getShowControlLine()'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: '[ControlPathPanel].getShowControlLine()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: boolean
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: '[ControlPathPanel].getShowControlPoints()'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: '[ControlPathPanel].getShowControlPoints()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: boolean
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: '[ControlPathPanel].getAntialiasCurves()'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: '[ControlPathPanel].getAntialiasCurves()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - b
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: '[ControlPathPanel].setAntialiasCurves(boolean)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].setAntialiasCurves(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: boolean
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: '[ControlPathPanel].getShowPointNumbers()'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: '[ControlPathPanel].getShowPointNumbers()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - b
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: '[ControlPathPanel].setShowPointNumbers(boolean)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].setShowPointNumbers(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: ControlPath
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: '[ControlPathPanel].getControlPath()'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ControlPath
    signature: '[ControlPathPanel].getControlPath()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - ControlPath
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - cp
    argTypes:
    - ControlPath
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: '[ControlPathPanel].setControlPath(ControlPath)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].setControlPath(ControlPath)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[ShapeMultiPath].getFlatness()'
      Src: ControlPathPanel:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: double
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: '[ControlPathPanel].getFlatness()'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 1
    functionsReached:
    - '[ShapeMultiPath].getFlatness()'
    linkageType: ''
    returnType: double
    signature: '[ControlPathPanel].getFlatness()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[ShapeMultiPath].setFlatness(double)'
      Src: ControlPathPanel:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - f
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: '[ControlPathPanel].setFlatness(double)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached:
    - '[ShapeMultiPath].setFlatness(double)'
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].setFlatness(double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - b
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: '[ControlPathPanel].setShowPointLocations(boolean)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].setShowPointLocations(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: boolean
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: '[ControlPathPanel].getShowPointLocations()'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: '[ControlPathPanel].getShowPointLocations()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - boolean
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - b
    argTypes:
    - boolean
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: '[ControlPathPanel].setShowCurves(boolean)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].setShowCurves(boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: boolean
      static: false
      superClass: JPanel
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: '[ControlPathPanel].getShowCurves()'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: '[ControlPathPanel].getShowCurves()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[MouseEvent].getX()'
      Src: ControlPathPanel:152,1
    - Dst: '[MouseEvent].getY()'
      Src: ControlPathPanel:153,1
    - Dst: '[MouseEvent].getClickCount()'
      Src: ControlPathPanel:155,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:156,1
    - Dst: '[ControlPath].removePoint(int)'
      Src: ControlPathPanel:159,1
    - Dst: '[PointFactory].createPoint(ControlPathPanel,ControlPathPanel)'
      Src: ControlPathPanel:165,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:167,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:168,1
    - Dst: '[ControlPath].addPoint(Point)'
      Src: ControlPathPanel:169,1
    - Dst: '[ControlPath].insertPoint(Point,int)'
      Src: ControlPathPanel:174,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:178,1
    - Dst: '[ControlPath].addPoint(Point)'
      Src: ControlPathPanel:179,1
    - Dst: '[ControlPath].insertPoint(Point,int)'
      Src: ControlPathPanel:183,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:189,1
    - Dst: '[ControlPath].numCurves()'
      Src: ControlPathPanel:190,1
    - Dst: '[ControlPath].getCurve(ControlPathPanel)'
      Src: ControlPathPanel:191,1
    - Dst: '[ControlPathPanel].getGroupIterator()'
      Src: ControlPathPanel:192,1
    - Dst: '[ControlPathPanel].getControlString()'
      Src: ControlPathPanel:193,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:193,1
    - Dst: '[GroupIterator].<init>(ControlPathPanel,ControlPathPanel)'
      Src: ControlPathPanel:193,1
    - Dst: '[ControlPathPanel].setGroupIterator(GroupIterator)'
      Src: ControlPathPanel:193,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:199,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:199,1
    - Dst: '[ControlPathPanel].repaint()'
      Src: ControlPathPanel:205,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 206
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 206
    functionName: '[ControlPathPanel].mousePressed(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached:
    - '[ControlPathPanel].getGroupIterator()'
    - '[ControlPath].numCurves()'
    - '[MouseEvent].getClickCount()'
    - '[PointFactory].createPoint(ControlPathPanel,ControlPathPanel)'
    - '[MouseEvent].getY()'
    - '[ControlPathPanel].repaint()'
    - '[ControlPathPanel].setGroupIterator(GroupIterator)'
    - '[ControlPath].insertPoint(Point,int)'
    - '[ControlPath].getPoint(int)'
    - '[GroupIterator].<init>(ControlPathPanel,ControlPathPanel)'
    - '[ControlPath].removePoint(int)'
    - '[ControlPathPanel].getControlString()'
    - '[ControlPath].getCurve(ControlPathPanel)'
    - '[ControlPath].numPoints()'
    - '[ControlPathPanel].getLocation()'
    - '[ControlPath].addPoint(Point)'
    - '[MouseEvent].getX()'
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].mousePressed(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: '[ControlPathPanel].mouseReleased(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].mouseReleased(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: '[ControlPathPanel].mouseClicked(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].mouseClicked(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: '[ControlPathPanel].mouseEntered(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].mouseEntered(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: '[ControlPathPanel].mouseExited(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].mouseExited(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[MouseEvent].getX()'
      Src: ControlPathPanel:221,1
    - Dst: '[MouseEvent].getY()'
      Src: ControlPathPanel:222,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:224,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:224,1
    - Dst: '[ControlPathPanel].repaint()'
      Src: ControlPathPanel:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: '[ControlPathPanel].mouseDragged(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached:
    - '[ControlPathPanel].repaint()'
    - '[MouseEvent].getY()'
    - '[ControlPath].getPoint(int)'
    - '[ControlPathPanel].getLocation()'
    - '[MouseEvent].getX()'
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].mouseDragged(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[MouseEvent].getX()'
      Src: ControlPathPanel:233,1
    - Dst: '[MouseEvent].getY()'
      Src: ControlPathPanel:234,1
    - Dst: '[ControlPathPanel].findClosestLineSegment(ControlPathPanel,ControlPathPanel)'
      Src: ControlPathPanel:236,1
    - Dst: '[ControlPathPanel].findClosestPoint(ControlPathPanel,ControlPathPanel)'
      Src: ControlPathPanel:237,1
    - Dst: '[ControlPathPanel].repaint()'
      Src: ControlPathPanel:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    JavaMethodInfo:
      argumentGenericTypes:
      - MouseEvent
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - evt
    argTypes:
    - MouseEvent
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: '[ControlPathPanel].mouseMoved(MouseEvent)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached:
    - '[MouseEvent].getY()'
    - '[ControlPathPanel].repaint()'
    - '[ControlPathPanel].findClosestLineSegment(ControlPathPanel,ControlPathPanel)'
    - '[ControlPathPanel].findClosestPoint(ControlPathPanel,ControlPathPanel)'
    - '[MouseEvent].getX()'
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].mouseMoved(MouseEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:244,1
    - Dst: '[ControlPath].getPoint(ControlPathPanel)'
      Src: ControlPathPanel:245,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:245,1
    - Dst: Math.sqrt(ControlPathPanel)
      Src: ControlPathPanel:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    JavaMethodInfo:
      argumentGenericTypes:
      - double
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 258
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 258
    functionName: '[ControlPathPanel].findClosestPoint(double,double)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached:
    - Math.sqrt(ControlPathPanel)
    - '[ControlPathPanel].getLocation()'
    - '[ControlPath].getPoint(ControlPathPanel)'
    - '[ControlPath].numPoints()'
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].findClosestPoint(double,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:261,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:266,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:276,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:277,1
    - Dst: '[ControlPath].getPoint(ControlPathPanel)'
      Src: ControlPathPanel:278,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:279,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:280,1
    - Dst: Geom.ptSegDistSq(double,double,null)
      Src: ControlPathPanel:281,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:288,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:288,1
    - Dst: Geom.getAngle(ControlPathPanel,ControlPathPanel,double,double)
      Src: ControlPathPanel:293,1
    - Dst: Geom.getAngle(ControlPathPanel,ControlPathPanel)
      Src: ControlPathPanel:294,1
    - Dst: Geom.getAngle(ControlPathPanel,ControlPathPanel)
      Src: ControlPathPanel:300,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:313,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:313,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:314,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:314,1
    - Dst: Geom.getAngle(double,double)
      Src: ControlPathPanel:315,1
    - Dst: Geom.getAngle()
      Src: ControlPathPanel:316,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:329,1
    - Dst: '[ControlPath].getPoint(ControlPathPanel)'
      Src: ControlPathPanel:330,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:330,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:331,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:331,1
    - Dst: Geom.getAngle(double,double)
      Src: ControlPathPanel:332,1
    - Dst: Geom.getAngle()
      Src: ControlPathPanel:333,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 100
    JavaMethodInfo:
      argumentGenericTypes:
      - double
      - double
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: false
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 350
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 350
    functionName: '[ControlPathPanel].findClosestLineSegment(double,double)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached:
    - Geom.getAngle(double,double)
    - Geom.getAngle(ControlPathPanel,ControlPathPanel)
    - Geom.ptSegDistSq(double,double,null)
    - Geom.getAngle(ControlPathPanel,ControlPathPanel,double,double)
    - Geom.getAngle()
    - '[ControlPath].getPoint(int)'
    - '[ControlPathPanel].getLocation()'
    - '[ControlPath].numPoints()'
    - '[ControlPath].getPoint(ControlPathPanel)'
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].findClosestLineSegment(double,double)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[JPanel].paint(java.awt.Graphics)'
      Src: ControlPathPanel:353,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:355,1
    - Dst: '[ShapeMultiPath].setNumPoints(int)'
      Src: ControlPathPanel:362,1
    - Dst: '[ControlPath].numCurves()'
      Src: ControlPathPanel:363,1
    - Dst: '[ControlPath].getCurve(ControlPathPanel)'
      Src: ControlPathPanel:364,1
    - Dst: '[ControlPathPanel].appendTo(ShapeMultiPath)'
      Src: ControlPathPanel:364,1
    - Dst: g.setRenderingHint(ControlPathPanel,ControlPathPanel)
      Src: ControlPathPanel:370,1
    - Dst: g.draw(ShapeMultiPath)
      Src: ControlPathPanel:372,1
    - Dst: g.setRenderingHint(ControlPathPanel,ControlPathPanel)
      Src: ControlPathPanel:373,1
    - Dst: '[Line2D.Double].<init>()'
      Src: ControlPathPanel:377,1
    - Dst: g.setColor(java.awt.Color)
      Src: ControlPathPanel:378,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:379,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:381,1
    - Dst: '[ControlPath].getPoint(ControlPathPanel)'
      Src: ControlPathPanel:382,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:383,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:384,1
    - Dst: '[Line2D.Double].setLine()'
      Src: ControlPathPanel:385,1
    - Dst: g.draw(Line2D.Double)
      Src: ControlPathPanel:386,1
    - Dst: g.setColor(java.awt.Color)
      Src: ControlPathPanel:390,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:392,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:392,1
    - Dst: '[Line2D.Double].setLine(double,double)'
      Src: ControlPathPanel:393,1
    - Dst: g.draw(Line2D.Double)
      Src: ControlPathPanel:394,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:398,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:398,1
    - Dst: '[Line2D.Double].setLine(double,double)'
      Src: ControlPathPanel:399,1
    - Dst: g.draw(Line2D.Double)
      Src: ControlPathPanel:400,1
    - Dst: '[Rectangle2D.Double].<init>()'
      Src: ControlPathPanel:406,1
    - Dst: g.setColor(java.awt.Color)
      Src: ControlPathPanel:407,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:409,1
    - Dst: '[ControlPath].getPoint(ControlPathPanel)'
      Src: ControlPathPanel:410,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:411,1
    - Dst: '[Rectangle2D.Double].setRect(ControlPathPanel,ControlPathPanel,int,int)'
      Src: ControlPathPanel:412,1
    - Dst: g.fill(Rectangle2D.Double)
      Src: ControlPathPanel:413,1
    - Dst: g.setColor(java.awt.Color)
      Src: ControlPathPanel:417,1
    - Dst: '[ControlPath].getPoint(int)'
      Src: ControlPathPanel:418,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:418,1
    - Dst: '[Rectangle2D.Double].setRect(ControlPathPanel,ControlPathPanel,int,int)'
      Src: ControlPathPanel:419,1
    - Dst: g.fill(Rectangle2D.Double)
      Src: ControlPathPanel:420,1
    - Dst: g.setColor(java.awt.Color)
      Src: ControlPathPanel:424,1
    - Dst: '[ControlPath].numPoints()'
      Src: ControlPathPanel:426,1
    - Dst: '[ControlPath].getPoint(ControlPathPanel)'
      Src: ControlPathPanel:427,1
    - Dst: '[ControlPathPanel].getLocation()'
      Src: ControlPathPanel:427,1
    - Dst: String.valueOf(ControlPathPanel)
      Src: ControlPathPanel:430,1
    - Dst: g.drawString(ControlPathPanel,int,ControlPathPanel)
      Src: ControlPathPanel:435,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 80
    JavaMethodInfo:
      argumentGenericTypes:
      - java.awt.Graphics
      classConcrete: true
      classEnum: false
      classFields:
      - ControlPath
      - PointFactory
      - int
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - java.awt.Color
      - int
      - boolean
      - int
      - int
      - int
      - double
      - double
      - double
      - double
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - boolean
      - ShapeMultiPath
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - MouseListener
      - MouseMotionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: JPanel
    argCount: 1
    argNames:
    - _g
    argTypes:
    - java.awt.Graphics
    constantsTouched: []
    func_position:
      end: 439
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 439
    functionName: '[ControlPathPanel].paint(java.awt.Graphics)'
    functionSourceFile: /src/curvesapi/demo/ControlPathPanel.java
    functionUses: 0
    functionsReached:
    - '[Rectangle2D.Double].<init>()'
    - '[ControlPath].numCurves()'
    - g.fill(Rectangle2D.Double)
    - '[ControlPath].getPoint(int)'
    - g.drawString(ControlPathPanel,int,ControlPathPanel)
    - '[ControlPath].getCurve(ControlPathPanel)'
    - '[ControlPath].numPoints()'
    - '[ControlPathPanel].getLocation()'
    - '[Rectangle2D.Double].setRect(ControlPathPanel,ControlPathPanel,int,int)'
    - '[Line2D.Double].setLine(double,double)'
    - '[JPanel].paint(java.awt.Graphics)'
    - g.draw(ShapeMultiPath)
    - String.valueOf(ControlPathPanel)
    - '[ShapeMultiPath].setNumPoints(int)'
    - g.setColor(java.awt.Color)
    - '[ControlPath].getPoint(ControlPathPanel)'
    - g.setRenderingHint(ControlPathPanel,ControlPathPanel)
    - '[Line2D.Double].<init>()'
    - '[ControlPathPanel].appendTo(ShapeMultiPath)'
    - g.draw(Line2D.Double)
    - '[Line2D.Double].setLine()'
    linkageType: ''
    returnType: void
    signature: '[ControlPathPanel].paint(java.awt.Graphics)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[DefaultListCellRenderer].<init>()'
      Src: CurveListCellRenderer:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: CurveListCellRenderer
      static: false
      superClass: DefaultListCellRenderer
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: '[CurveListCellRenderer].<init>()'
    functionSourceFile: /src/curvesapi/demo/CurveListCellRenderer.java
    functionUses: 1
    functionsReached:
    - '[DefaultListCellRenderer].<init>()'
    linkageType: ''
    returnType: CurveListCellRenderer
    signature: '[CurveListCellRenderer].<init>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[DefaultListCellRenderer].getListCellRendererComponent(JList,CurveListCellRenderer,int,boolean,boolean)'
      Src: CurveListCellRenderer:64,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    JavaMethodInfo:
      argumentGenericTypes:
      - JList
      - Object
      - int
      - boolean
      - boolean
      classConcrete: true
      classEnum: false
      classFields: []
      classPublic: true
      concrete: true
      exceptions: []
      interfaces: []
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: Component
      static: false
      superClass: DefaultListCellRenderer
    argCount: 5
    argNames:
    - list
    - value
    - index
    - isSelected
    - cellHasFocus
    argTypes:
    - JList
    - Object
    - int
    - boolean
    - boolean
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: '[CurveListCellRenderer].getListCellRendererComponent(JList,Object,int,boolean,boolean)'
    functionSourceFile: /src/curvesapi/demo/CurveListCellRenderer.java
    functionUses: 0
    functionsReached:
    - '[DefaultListCellRenderer].getListCellRendererComponent(JList,CurveListCellRenderer,int,boolean,boolean)'
    linkageType: ''
    returnType: Component
    signature: '[CurveListCellRenderer].getListCellRendererComponent(JList,Object,int,boolean,boolean)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[EditCurvePanel].<init>()'
      Src: CurveDemo:38,1
    - Dst: '[ControlPathPanel].<init>()'
      Src: CurveDemo:39,1
    - Dst: '[JFrame].<init>(String)'
      Src: CurveDemo:40,1
    - Dst: '[JDialog].<init>(JFrame,String)'
      Src: CurveDemo:41,1
    - Dst: '[JMenuItem].<init>(String)'
      Src: CurveDemo:43,1
    - Dst: '[JMenuItem].<init>(String)'
      Src: CurveDemo:44,1
    - Dst: '[ControlPathPanel].getShowControlPoints()'
      Src: CurveDemo:45,1
    - Dst: '[JCheckBoxMenuItem].<init>(String,boolean)'
      Src: CurveDemo:45,1
    - Dst: '[ControlPathPanel].getShowControlLine()'
      Src: CurveDemo:46,1
    - Dst: '[JCheckBoxMenuItem].<init>(String,boolean)'
      Src: CurveDemo:46,1
    - Dst: '[ControlPathPanel].getShowPointNumbers()'
      Src: CurveDemo:47,1
    - Dst: '[JCheckBoxMenuItem].<init>(String,boolean)'
      Src: CurveDemo:47,1
    - Dst: '[ControlPathPanel].getShowPointLocations()'
      Src: CurveDemo:48,1
    - Dst: '[JCheckBoxMenuItem].<init>(String,boolean)'
      Src: CurveDemo:48,1
    - Dst: '[ControlPathPanel].getAntialiasCurves()'
      Src: CurveDemo:49,1
    - Dst: '[JCheckBoxMenuItem].<init>(String,boolean)'
      Src: CurveDemo:49,1
    - Dst: '[ControlPathPanel].getShowCurves()'
      Src: CurveDemo:50,1
    - Dst: '[JCheckBoxMenuItem].<init>(String,boolean)'
      Src: CurveDemo:50,1
    - Dst: Toolkit.getDefaultToolkit()
      Src: CurveDemo:53,1
    - Dst: '[CurveDemo].getScreenSize()'
      Src: CurveDemo:53,1
    - Dst: '[JFrame].setSize(int,int)'
      Src: CurveDemo:54,1
    - Dst: '[WindowAdapter].<init>()'
      Src: CurveDemo:56,1
    - Dst: '[JFrame].addWindowListener(WindowAdapter)'
      Src: CurveDemo:56,1
    - Dst: '[JFrame].setContentPane(ControlPathPanel)'
      Src: CurveDemo:62,1
    - Dst: '[JMenuBar].<init>()'
      Src: CurveDemo:64,1
    - Dst: '[JFrame].setJMenuBar(JMenuBar)'
      Src: CurveDemo:65,1
    - Dst: '[JMenu].<init>(String)'
      Src: CurveDemo:67,1
    - Dst: '[JMenu].add(JCheckBoxMenuItem)'
      Src: CurveDemo:69,1
    - Dst: '[JMenu].add(JCheckBoxMenuItem)'
      Src: CurveDemo:70,1
    - Dst: '[JMenu].add(JCheckBoxMenuItem)'
      Src: CurveDemo:71,1
    - Dst: '[JMenu].add(JCheckBoxMenuItem)'
      Src: CurveDemo:72,1
    - Dst: '[JMenu].add(JCheckBoxMenuItem)'
      Src: CurveDemo:73,1
    - Dst: '[JMenu].add(JCheckBoxMenuItem)'
      Src: CurveDemo:74,1
    - Dst: '[JMenu].add(JMenuItem)'
      Src: CurveDemo:75,1
    - Dst: '[JMenu].add(JMenuItem)'
      Src: CurveDemo:76,1
    - Dst: '[JMenuBar].add(JMenu)'
      Src: CurveDemo:78,1
    - Dst: '[JDialog].setContentPane(EditCurvePanel)'
      Src: CurveDemo:80,1
    - Dst: '[JDialog].setSize(int,int)'
      Src: CurveDemo:81,1
    - Dst: '[JDialog].setLocation(int,int)'
      Src: CurveDemo:82,1
    - Dst: '[JMenuItem].addActionListener()'
      Src: CurveDemo:84,1
    - Dst: '[JMenuItem].addActionListener()'
      Src: CurveDemo:85,1
    - Dst: '[JCheckBoxMenuItem].addActionListener()'
      Src: CurveDemo:86,1
    - Dst: '[JCheckBoxMenuItem].addActionListener()'
      Src: CurveDemo:87,1
    - Dst: '[JCheckBoxMenuItem].addActionListener()'
      Src: CurveDemo:88,1
    - Dst: '[JCheckBoxMenuItem].addActionListener()'
      Src: CurveDemo:89,1
    - Dst: '[JCheckBoxMenuItem].addActionListener()'
      Src: CurveDemo:90,1
    - Dst: '[JCheckBoxMenuItem].addActionListener()'
      Src: CurveDemo:91,1
    - Dst: '[JFrame].show()'
      Src: CurveDemo:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    JavaMethodInfo:
      argumentGenericTypes: []
      classConcrete: true
      classEnum: false
      classFields:
      - EditCurvePanel
      - ControlPathPanel
      - JFrame
      - JDialog
      - JMenuItem
      - JMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: CurveDemo
      static: false
      superClass: Object
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 94
    functionName: '[CurveDemo].<init>()'
    functionSourceFile: /src/curvesapi/demo/CurveDemo.java
    functionUses: 1
    functionsReached:
    - '[CurveDemo].getScreenSize()'
    - '[JFrame].addWindowListener(WindowAdapter)'
    - '[JFrame].setContentPane(ControlPathPanel)'
    - '[JMenuItem].addActionListener()'
    - '[JMenu].add(JMenuItem)'
    - '[JMenuBar].add(JMenu)'
    - '[JMenu].add(JCheckBoxMenuItem)'
    - '[ControlPathPanel].getShowCurves()'
    - '[JMenu].<init>(String)'
    - '[JDialog].setContentPane(EditCurvePanel)'
    - '[JMenuItem].<init>(String)'
    - '[JFrame].<init>(String)'
    - '[JDialog].setSize(int,int)'
    - '[ControlPathPanel].getShowPointLocations()'
    - '[JFrame].show()'
    - '[JCheckBoxMenuItem].addActionListener()'
    - '[EditCurvePanel].<init>()'
    - Toolkit.getDefaultToolkit()
    - '[WindowAdapter].<init>()'
    - '[ControlPathPanel].getShowControlPoints()'
    - '[ControlPathPanel].getShowPointNumbers()'
    - '[ControlPathPanel].<init>()'
    - '[JDialog].setLocation(int,int)'
    - '[JFrame].setJMenuBar(JMenuBar)'
    - '[JCheckBoxMenuItem].<init>(String,boolean)'
    - '[ControlPathPanel].getAntialiasCurves()'
    - '[JDialog].<init>(JFrame,String)'
    - '[JMenuBar].<init>()'
    - '[ControlPathPanel].getShowControlLine()'
    - '[JFrame].setSize(int,int)'
    linkageType: ''
    returnType: CurveDemo
    signature: '[CurveDemo].<init>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[ActionEvent].getSource()'
      Src: CurveDemo:97,1
    - Dst: '[ControlPathPanel].getControlPath()'
      Src: CurveDemo:100,1
    - Dst: '[EditCurvePanel].setControlPath(ControlPath)'
      Src: CurveDemo:100,1
    - Dst: '[EditCurvePanel].setRepaintPanel(ControlPathPanel)'
      Src: CurveDemo:101,1
    - Dst: '[JDialog].show()'
      Src: CurveDemo:102,1
    - Dst: '[JCheckBoxMenuItem].isSelected()'
      Src: CurveDemo:105,1
    - Dst: '[ControlPathPanel].setShowControlPoints(CurveDemo)'
      Src: CurveDemo:105,1
    - Dst: '[JCheckBoxMenuItem].isSelected()'
      Src: CurveDemo:108,1
    - Dst: '[ControlPathPanel].setShowControlLine(CurveDemo)'
      Src: CurveDemo:108,1
    - Dst: '[JCheckBoxMenuItem].isSelected()'
      Src: CurveDemo:111,1
    - Dst: '[ControlPathPanel].setShowPointNumbers(CurveDemo)'
      Src: CurveDemo:111,1
    - Dst: '[JCheckBoxMenuItem].isSelected()'
      Src: CurveDemo:114,1
    - Dst: '[ControlPathPanel].setShowPointLocations(CurveDemo)'
      Src: CurveDemo:114,1
    - Dst: '[JCheckBoxMenuItem].isSelected()'
      Src: CurveDemo:117,1
    - Dst: '[ControlPathPanel].setAntialiasCurves(CurveDemo)'
      Src: CurveDemo:117,1
    - Dst: '[JCheckBoxMenuItem].isSelected()'
      Src: CurveDemo:120,1
    - Dst: '[ControlPathPanel].setShowCurves(CurveDemo)'
      Src: CurveDemo:120,1
    - Dst: '[ControlPathPanel].getFlatness()'
      Src: CurveDemo:123,1
    - Dst: String.valueOf(double)
      Src: CurveDemo:125,1
    - Dst: JOptionPane.showInputDialog(JFrame,String,String,CurveDemo,null,null,CurveDemo)
      Src: CurveDemo:125,1
    - Dst: '[CurveDemo].toString()'
      Src: CurveDemo:129,1
    - Dst: Double.parseDouble(CurveDemo)
      Src: CurveDemo:129,1
    - Dst: '[ControlPathPanel].setFlatness(CurveDemo)'
      Src: CurveDemo:130,1
    - Dst: JOptionPane.showMessageDialog(JFrame,CurveDemo,String,CurveDemo)
      Src: CurveDemo:132,1
    - Dst: '[ControlPathPanel].repaint()'
      Src: CurveDemo:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    JavaMethodInfo:
      argumentGenericTypes:
      - ActionEvent
      classConcrete: true
      classEnum: false
      classFields:
      - EditCurvePanel
      - ControlPathPanel
      - JFrame
      - JDialog
      - JMenuItem
      - JMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: false
      superClass: Object
    argCount: 1
    argNames:
    - evt
    argTypes:
    - ActionEvent
    constantsTouched: []
    func_position:
      end: 138
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 138
    functionName: '[CurveDemo].actionPerformed(ActionEvent)'
    functionSourceFile: /src/curvesapi/demo/CurveDemo.java
    functionUses: 0
    functionsReached:
    - '[ControlPathPanel].getControlPath()'
    - '[ControlPathPanel].setShowControlPoints(CurveDemo)'
    - '[ControlPathPanel].setShowPointNumbers(CurveDemo)'
    - '[JDialog].show()'
    - '[JCheckBoxMenuItem].isSelected()'
    - '[ControlPathPanel].setShowPointLocations(CurveDemo)'
    - Double.parseDouble(CurveDemo)
    - '[ControlPathPanel].setFlatness(CurveDemo)'
    - String.valueOf(double)
    - '[EditCurvePanel].setRepaintPanel(ControlPathPanel)'
    - '[ControlPathPanel].getFlatness()'
    - '[CurveDemo].toString()'
    - '[ControlPathPanel].setShowCurves(CurveDemo)'
    - '[ActionEvent].getSource()'
    - JOptionPane.showInputDialog(JFrame,String,String,CurveDemo,null,null,CurveDemo)
    - JOptionPane.showMessageDialog(JFrame,CurveDemo,String,CurveDemo)
    - '[EditCurvePanel].setControlPath(ControlPath)'
    - '[ControlPathPanel].setShowControlLine(CurveDemo)'
    - '[ControlPathPanel].repaint()'
    - '[ControlPathPanel].setAntialiasCurves(CurveDemo)'
    linkageType: ''
    returnType: void
    signature: '[CurveDemo].actionPerformed(ActionEvent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[CurveDemo].<init>()'
      Src: CurveDemo:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    JavaMethodInfo:
      argumentGenericTypes:
      - String[]
      classConcrete: true
      classEnum: false
      classFields:
      - EditCurvePanel
      - ControlPathPanel
      - JFrame
      - JDialog
      - JMenuItem
      - JMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      - JCheckBoxMenuItem
      classPublic: true
      concrete: true
      exceptions: []
      interfaces:
      - ActionListener
      javaLibraryMethod: false
      needClose: false
      public: true
      returnValueGenericType: void
      static: true
      superClass: Object
    argCount: 1
    argNames:
    - args
    argTypes:
    - String[]
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: '[CurveDemo].main(String[])'
    functionSourceFile: /src/curvesapi/demo/CurveDemo.java
    functionUses: 0
    functionsReached:
    - '[CurveDemo].<init>()'
    linkageType: ''
    returnType: void
    signature: '[CurveDemo].main(String[])'
Fuzzer filename: /src/ParseFuzzer.java
Fuzzing method: '[ParseFuzzer].fuzzerTestOneInput(com.code_intelligence.jazzer.api.FuzzedDataProvider)'
report: name
sources:
- function_names:
  - '[ParseFuzzer].fuzzerTestOneInput(com.code_intelligence.jazzer.api.FuzzedDataProvider)'
  - '[ParseFuzzer].<init>()'
  source_file: /src/ParseFuzzer.java
- function_names:
  - '[PointFactory].createPoint(double,double)'
  - '[PointFactory].<init>()'
  source_file: /src/curvesapi/demo/PointFactory.java
- function_names:
  - '[EditCurvePanel].<init>()'
  - '[EditCurvePanel].setRepaintPanel(JPanel)'
  - '[EditCurvePanel].setControlPath(ControlPath)'
  - '[EditCurvePanel].actionPerformed(ActionEvent)'
  - '[EditCurvePanel].applySettings()'
  - '[EditCurvePanel].createCurve(String)'
  - '[EditCurvePanel].valueChanged(ListSelectionEvent)'
  - '[EditCurvePanel].valueInserted(ValueVector,int,double)'
  - '[EditCurvePanel].valueRemoved(ValueVector,int,double)'
  - '[EditCurvePanel].valueChanged(ValueVector,int,double)'
  - '[EditCurvePanel].getCurvePanel()'
  - '[EditCurvePanel].getBezierCurvePanel()'
  - '[EditCurvePanel].getBSplinePanel(boolean)'
  - '[EditCurvePanel].getCardinalSplinePanel()'
  - '[EditCurvePanel].getCubicBSplinePanel()'
  - '[EditCurvePanel].getLagrangeCurvePanel()'
  - '[EditCurvePanel].getNaturalCubicSplinePanel()'
  source_file: /src/curvesapi/demo/EditCurvePanel.java
- function_names:
  - '[UnsortedValueVectorPanel].<init>(boolean)'
  - '[UnsortedValueVectorPanel].getKnobShape()'
  - '[UnsortedValueVectorPanel].setKnobShape(Shape)'
  - '[UnsortedValueVectorPanel].setInsets(int,int,int,int)'
  - '[UnsortedValueVectorPanel].getMin()'
  - '[UnsortedValueVectorPanel].getMax()'
  - '[UnsortedValueVectorPanel].setRange(double,double)'
  - '[UnsortedValueVectorPanel].setShowValues(boolean)'
  - '[UnsortedValueVectorPanel].getShowValues()'
  - '[UnsortedValueVectorPanel].setValuePosition(int)'
  - '[UnsortedValueVectorPanel].setValue(int,double)'
  - '[UnsortedValueVectorPanel].getValuePosition()'
  - '[UnsortedValueVectorPanel].setNumDigits(int)'
  - '[UnsortedValueVectorPanel].getNumDigits()'
  - '[UnsortedValueVectorPanel].getValueVector()'
  - '[UnsortedValueVectorPanel].setValueVector(ValueVector)'
  - '[UnsortedValueVectorPanel].getKnobFillColor()'
  - '[UnsortedValueVectorPanel].setKnobFillColor(Color)'
  - '[UnsortedValueVectorPanel].setDisabled(boolean)'
  - '[UnsortedValueVectorPanel].getDisabled()'
  - '[UnsortedValueVectorPanel].paint(Graphics)'
  - '[UnsortedValueVectorPanel].fireValueInserted(ValueVector,int,double)'
  - '[UnsortedValueVectorPanel].fireValueRemoved(ValueVector,int,double)'
  - '[UnsortedValueVectorPanel].fireValueChanged(ValueVector,int,double)'
  - '[UnsortedValueVectorPanel].addValueVectorListener(ValueVectorListener)'
  - '[UnsortedValueVectorPanel].removeValueVectorListener(ValueVectorListener)'
  - '[UnsortedValueVectorPanel].getValueVectorListener(int)'
  - '[UnsortedValueVectorPanel].getNumValueVectorListeners()'
  - '[UnsortedValueVectorPanel].main(String[])'
  - '[UnsortedValueVectorPanel.Control].<init>()'
  - '[UnsortedValueVectorPanel.Control].mousePressed(MouseEvent)'
  - '[UnsortedValueVectorPanel.Control].mouseReleased(MouseEvent)'
  - '[UnsortedValueVectorPanel.Control].mouseDragged(MouseEvent)'
  - '[UnsortedValueVectorPanel.Control].mouseClicked(MouseEvent)'
  - '[UnsortedValueVectorPanel.Control].mouseEntered(MouseEvent)'
  - '[UnsortedValueVectorPanel.Control].mouseExited(MouseEvent)'
  - '[UnsortedValueVectorPanel.Control].mouseMoved(MouseEvent)'
  source_file: /src/curvesapi/demo/UnsortedValueVectorPanel.java
- function_names:
  - '[ControlPathPanel].<init>()'
  - '[ControlPathPanel].setShowControlLine(boolean)'
  - '[ControlPathPanel].setShowControlPoints(boolean)'
  - '[ControlPathPanel].getShowControlLine()'
  - '[ControlPathPanel].getShowControlPoints()'
  - '[ControlPathPanel].getAntialiasCurves()'
  - '[ControlPathPanel].setAntialiasCurves(boolean)'
  - '[ControlPathPanel].getShowPointNumbers()'
  - '[ControlPathPanel].setShowPointNumbers(boolean)'
  - '[ControlPathPanel].getControlPath()'
  - '[ControlPathPanel].setControlPath(ControlPath)'
  - '[ControlPathPanel].getFlatness()'
  - '[ControlPathPanel].setFlatness(double)'
  - '[ControlPathPanel].setShowPointLocations(boolean)'
  - '[ControlPathPanel].getShowPointLocations()'
  - '[ControlPathPanel].setShowCurves(boolean)'
  - '[ControlPathPanel].getShowCurves()'
  - '[ControlPathPanel].mousePressed(MouseEvent)'
  - '[ControlPathPanel].mouseReleased(MouseEvent)'
  - '[ControlPathPanel].mouseClicked(MouseEvent)'
  - '[ControlPathPanel].mouseEntered(MouseEvent)'
  - '[ControlPathPanel].mouseExited(MouseEvent)'
  - '[ControlPathPanel].mouseDragged(MouseEvent)'
  - '[ControlPathPanel].mouseMoved(MouseEvent)'
  - '[ControlPathPanel].findClosestPoint(double,double)'
  - '[ControlPathPanel].findClosestLineSegment(double,double)'
  - '[ControlPathPanel].paint(java.awt.Graphics)'
  source_file: /src/curvesapi/demo/ControlPathPanel.java
- function_names:
  - '[CurveListCellRenderer].<init>()'
  - '[CurveListCellRenderer].getListCellRendererComponent(JList,Object,int,boolean,boolean)'
  source_file: /src/curvesapi/demo/CurveListCellRenderer.java
- function_names:
  - '[CurveDemo].<init>()'
  - '[CurveDemo].actionPerformed(ActionEvent)'
  - '[CurveDemo].main(String[])'
  source_file: /src/curvesapi/demo/CurveDemo.java
