<?xml version="1.0" encoding="UTF-8"?>
<root>
  <item name="java.sql.Connection java.sql.PreparedStatement prepareStatement(java.lang.String, int) 1">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.Statement.RETURN_GENERATED_KEYS, java.sql.Statement.NO_GENERATED_KEYS}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.PreparedStatement prepareStatement(java.lang.String, int, int) 1">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.TYPE_SCROLL_SENSITIVE}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.PreparedStatement prepareStatement(java.lang.String, int, int) 2">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.CONCUR_READ_ONLY, java.sql.ResultSet.CONCUR_UPDATABLE}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.PreparedStatement prepareStatement(java.lang.String, int, int, int) 1">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.TYPE_SCROLL_SENSITIVE}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.PreparedStatement prepareStatement(java.lang.String, int, int, int) 2">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.CONCUR_READ_ONLY, java.sql.ResultSet.CONCUR_UPDATABLE}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.PreparedStatement prepareStatement(java.lang.String, int, int, int) 3">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.HOLD_CURSORS_OVER_COMMIT, java.sql.ResultSet.CLOSE_CURSORS_AT_COMMIT}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.Statement createStatement(int, int) 0">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.TYPE_SCROLL_SENSITIVE}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.Statement createStatement(int, int) 1">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.CONCUR_READ_ONLY, java.sql.ResultSet.CONCUR_UPDATABLE}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.Statement createStatement(int, int, int) 0">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.TYPE_SCROLL_SENSITIVE}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.Statement createStatement(int, int, int) 1">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.CONCUR_READ_ONLY, java.sql.ResultSet.CONCUR_UPDATABLE}" />
    </annotation>
  </item>
  <item name="java.sql.Connection java.sql.Statement createStatement(int, int, int) 2">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.HOLD_CURSORS_OVER_COMMIT, java.sql.ResultSet.CLOSE_CURSORS_AT_COMMIT}" />
    </annotation>
  </item>
  <item name="java.sql.Connection void setTransactionIsolation(int) 0">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.Connection.TRANSACTION_NONE, java.sql.Connection.TRANSACTION_READ_UNCOMMITTED, java.sql.Connection.TRANSACTION_READ_COMMITTED, java.sql.Connection.TRANSACTION_REPEATABLE_READ, java.sql.Connection.TRANSACTION_SERIALIZABLE}" />
    </annotation>
  </item>
  <item name="java.sql.Connection int getTransactionIsolation()">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.Connection.TRANSACTION_NONE, java.sql.Connection.TRANSACTION_READ_UNCOMMITTED, java.sql.Connection.TRANSACTION_READ_COMMITTED, java.sql.Connection.TRANSACTION_REPEATABLE_READ, java.sql.Connection.TRANSACTION_SERIALIZABLE}" />
    </annotation>
  </item>
  <item name="java.sql.ResultSet int getFetchDirection()">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.FETCH_FORWARD, java.sql.ResultSet.FETCH_REVERSE, java.sql.ResultSet.FETCH_UNKNOWN}" />
    </annotation>
  </item>
  <item name="java.sql.ResultSet int getType()">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.TYPE_SCROLL_SENSITIVE}" />
    </annotation>
  </item>
  <item name="java.sql.ResultSet int getConcurrency()">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.CONCUR_READ_ONLY, java.sql.ResultSet.CONCUR_UPDATABLE}" />
    </annotation>
  </item>
  <item name="java.sql.ResultSet int getHoldability()">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.HOLD_CURSORS_OVER_COMMIT, java.sql.ResultSet.CLOSE_CURSORS_AT_COMMIT}" />
    </annotation>
  </item>
  <item name="java.sql.ResultSet void setFetchDirection(int) 0">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.FETCH_FORWARD, java.sql.ResultSet.FETCH_REVERSE, java.sql.ResultSet.FETCH_UNKNOWN}" />
    </annotation>
  </item>
  <item name="java.sql.Statement int getResultSetType()">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.TYPE_SCROLL_SENSITIVE}" />
    </annotation>
  </item>
  <item name="java.sql.Statement int getResultSetConcurrency()">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.CONCUR_READ_ONLY, java.sql.ResultSet.CONCUR_UPDATABLE}" />
    </annotation>
  </item>
  <item name="java.sql.Statement int getFetchDirection()">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.FETCH_FORWARD, java.sql.ResultSet.FETCH_REVERSE, java.sql.ResultSet.FETCH_UNKNOWN}" />
    </annotation>
  </item>
  <item name="java.sql.Statement void setFetchDirection(int) 0">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSet.FETCH_FORWARD, java.sql.ResultSet.FETCH_REVERSE, java.sql.ResultSet.FETCH_UNKNOWN}" />
    </annotation>
  </item>
  <item name="java.sql.Statement boolean getMoreResults(int) 0">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.Statement.CLOSE_CURRENT_RESULT, java.sql.Statement.KEEP_CURRENT_RESULT, java.sql.Statement.CLOSE_ALL_RESULTS}" />
    </annotation>
  </item>
  <item name="java.sql.Statement int executeUpdate(java.lang.String, int) 1">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.Statement.RETURN_GENERATED_KEYS, java.sql.Statement.NO_GENERATED_KEYS}" />
    </annotation>
  </item>
  <item name="java.sql.Statement int execute(java.lang.String, int) 1">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.Statement.RETURN_GENERATED_KEYS, java.sql.Statement.NO_GENERATED_KEYS}" />
    </annotation>
  </item>
  <item name="java.sql.ResultSetMetaData int isNullable(int)">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ResultSetMetaData.columnNoNulls, java.sql.ResultSetMetaData.columnNullable, java.sql.ResultSetMetaData.columnNullableUnknown}" />
    </annotation>
  </item>
  <item name="java.sql.ParameterMetaData int getParameterMode(int)">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ParameterMetaData.parameterModeIn, java.sql.ParameterMetaData.parameterModeOut, java.sql.ParameterMetaData.parameterModeInOut, java.sql.ParameterMetaData.parameterModeUnknown}" />
    </annotation>
  </item>
  <item name="java.sql.ParameterMetaData int isNullable(int)">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.ParameterMetaData.parameterNoNulls, java.sql.ParameterMetaData.parameterNullable, java.sql.ParameterMetaData.parameterNullableUnknown}" />
    </annotation>
  </item>
  <item name="java.sql.DatabaseMetaData int getSQLStateType()">
    <annotation name="org.intellij.lang.annotations.MagicConstant">
      <val name="intValues" val="{java.sql.DatabaseMetaData.sqlStateXOpen, java.sql.DatabaseMetaData.sqlStateSQL, java.sql.DatabaseMetaData.sqlStateSQL99}" />
    </annotation>
  </item>
</root>

