final List<ObjectTreeNode> childNodes = new ArrayList<ObjectTreeNode>(); final IDatabaseObjectInfo parentDbinfo = parentNode.getDatabaseObjectInfo(); final ISQLConnection conn = session.getSQLConnection(); final SQLDatabaseMetaData md = session.getSQLConnection().getSQLMetaData(); final String catalogName = parentDbinfo.getCatalogName(); final String schemaName = parentDbinfo.getSchemaName(); final ObjFilterMatcher filterMatcher = new ObjFilterMatcher(session.getProperties()); String sql = SQL; if (isOS400) { sql = OS_400_SQL; } final PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = null; try { pstmt.setString(1, schemaName); pstmt.setString(2, filterMatcher.getSqlLikeMatchString()); rs = pstmt.executeQuery(); while (rs.next()) { IDatabaseObjectInfo si = new DatabaseObjectInfo(catalogName, schemaName, rs.getString(1), DatabaseObjectType.UDF, md); if(filterMatcher.matches(si.getSimpleName())) { childNodes.add(new ObjectTreeNode(session, si)); } } } finally { SQLUtilities.closeResultSet(rs); SQLUtilities.closeStatement(pstmt); } return childNodes;
final List<ObjectTreeNode> childNodes = new ArrayList<ObjectTreeNode>(); final IDatabaseObjectInfo parentDbinfo = parentNode.getDatabaseObjectInfo(); final ISQLConnection conn = session.getSQLConnection(); final SQLDatabaseMetaData md = session.getSQLConnection().getSQLMetaData(); final String catalogName = parentDbinfo.getCatalogName(); final String schemaName = parentDbinfo.getSchemaName(); final ObjFilterMatcher filterMatcher = new ObjFilterMatcher(session.getProperties()); String sql = SQL; if (isOS400) { sql = OS_400_SQL; } final PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = null; try { pstmt.setString(1, schemaName); pstmt.setString(2, filterMatcher.getSqlLikeMatchString()); rs = pstmt.executeQuery(); while (rs.next()) { IDatabaseObjectInfo si = new DatabaseObjectInfo(catalogName, schemaName, rs.getString(1), DatabaseObjectType.SEQUENCE, md); if(filterMatcher.matches(si.getSimpleName())) { childNodes.add(new ObjectTreeNode(session, si)); } } } finally { SQLUtilities.closeResultSet(rs); SQLUtilities.closeStatement(pstmt); } return childNodes;
Clone fragments detected by clone detection tool
File path: /sql12/plugins/db2/src/net/sourceforge/squirrel_sql/plugins/db2/exp/UDFParentExpander.java File path: /sql12/plugins/db2/src/net/sourceforge/squirrel_sql/plugins/db2/exp/SequenceParentExpander.java
Method name: List createChildren(ISession, ObjectTreeNode) Method name: List createChildren(ISession, ObjectTreeNode)
Number of AST nodes: 21 Number of AST nodes: 21
1
final List<ObjectTreeNode> childNodes = new ArrayList<ObjectTreeNode>();
1
final List<ObjectTreeNode> childNodes = new ArrayList<ObjectTreeNode>();
2
		final IDatabaseObjectInfo parentDbinfo = parentNode.getDatabaseObjectInfo();
2
		final IDatabaseObjectInfo parentDbinfo = parentNode.getDatabaseObjectInfo();
3
		final ISQLConnection conn = session.getSQLConnection();
3
		final ISQLConnection conn = session.getSQLConnection();
4
		final SQLDatabaseMetaData md = session.getSQLConnection().getSQLMetaData();
4
		final SQLDatabaseMetaData md = session.getSQLConnection().getSQLMetaData();
5
		final String catalogName = parentDbinfo.getCatalogName();
5
		final String catalogName = parentDbinfo.getCatalogName();
6
		final String schemaName = parentDbinfo.getSchemaName();
6
		final String schemaName = parentDbinfo.getSchemaName();
7
      final ObjFilterMatcher filterMatcher = new ObjFilterMatcher(session.getProperties());
7
      final ObjFilterMatcher filterMatcher = new ObjFilterMatcher(session.getProperties());
8
      String sql = SQL;
8
        String sql = SQL;
9
		if (isOS400) {
9
        if (isOS400) {
10
		    sql = OS_400_SQL;
10
            sql = OS_400_SQL;
11
		}
11
        }
12
		final PreparedStatement pstmt = conn.prepareStatement(sql);
12
		final PreparedStatement pstmt = conn.prepareStatement(sql);
13
        ResultSet rs = null;
13
        ResultSet rs = null;
14
		try
14
		try
15
		{
15
		{
16
			pstmt.setString(1, schemaName);
16
			pstmt.setString(1, schemaName);
17
			pstmt.setString(2, filterMatcher.getSqlLikeMatchString());
17
			pstmt.setString(2, filterMatcher.getSqlLikeMatchString());
18
			rs = pstmt.executeQuery();
18
			rs = pstmt.executeQuery();
19
				while (rs.next())
19
            while (rs.next())
20
				{
21
					
20
            {
22
IDatabaseObjectInfo si = new DatabaseObjectInfo(catalogName,
21
               IDatabaseObjectInfo si = new DatabaseObjectInfo(catalogName,
23
												schemaName, rs.getString(1),
24
												
22
                                    schemaName, rs.getString(1),
25
DatabaseObjectType.UDF, md);
23
                                    DatabaseObjectType.SEQUENCE, md);
26
               if(filterMatcher.matches(si.getSimpleName()))
24
               if(filterMatcher.matches(si.getSimpleName()))
27
               {
25
               {
28
                  childNodes.add(new ObjectTreeNode(session, si));
26
                  childNodes.add(new ObjectTreeNode(session, si));
29
               }
27
               }
30
            }
28
            }
31
		}
29
		}
32
		finally
30
		finally
33
		{
31
		{
34
		    SQLUtilities.closeResultSet(rs);
32
		    SQLUtilities.closeResultSet(rs);
35
            SQLUtilities.closeStatement(pstmt);
33
            SQLUtilities.closeStatement(pstmt);
36
		}
34
		}
37
		return childNodes;
35
		return childNodes;
Summary
Number of common nesting structure subtrees1
Number of refactorable cases1
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.6
Clones locationClones are in different classes
Number of node comparisons112
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements21
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)15.2
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    final List<ObjectTreeNode> childNodes = new ArrayList<ObjectTreeNode>();
    1
    final List<ObjectTreeNode> childNodes = new ArrayList<ObjectTreeNode>();
    2
    final IDatabaseObjectInfo parentDbinfo = parentNode.getDatabaseObjectInfo();
    2
    final IDatabaseObjectInfo parentDbinfo = parentNode.getDatabaseObjectInfo();
    3
    final ISQLConnection conn = session.getSQLConnection();
    3
    final ISQLConnection conn = session.getSQLConnection();
    4
    final SQLDatabaseMetaData md = session.getSQLConnection().getSQLMetaData();
    4
    final SQLDatabaseMetaData md = session.getSQLConnection().getSQLMetaData();
    5
    final String catalogName = parentDbinfo.getCatalogName();
    5
    final String catalogName = parentDbinfo.getCatalogName();
    6
    final String schemaName = parentDbinfo.getSchemaName();
    6
    final String schemaName = parentDbinfo.getSchemaName();
    7
    final ObjFilterMatcher filterMatcher = new ObjFilterMatcher(session.getProperties());
    7
    final ObjFilterMatcher filterMatcher = new ObjFilterMatcher(session.getProperties());
    8
    String sql = SQL;
    8
    String sql = SQL;
    9
    if (isOS400)
    9
    if (isOS400)
    10
    sql = OS_400_SQL;
    10
    sql = OS_400_SQL;
    11
    final PreparedStatement pstmt = conn.prepareStatement(sql);
    11
    final PreparedStatement pstmt = conn.prepareStatement(sql);
    12
    ResultSet rs = null;
    12
    ResultSet rs = null;
    13
    try
    13
    try
    14
    pstmt.setString(1, schemaName);
    14
    pstmt.setString(1, schemaName);
    15
    pstmt.setString(2, filterMatcher.getSqlLikeMatchString());
    15
    pstmt.setString(2, filterMatcher.getSqlLikeMatchString());
    16
    rs = pstmt.executeQuery();
    16
    rs = pstmt.executeQuery();
    17
    while (rs.next())
    17
    while (rs.next())
    18
    IDatabaseObjectInfo si = new DatabaseObjectInfo(catalogName, schemaName, rs.getString(1), DatabaseObjectType.UDF, md);
    18
    IDatabaseObjectInfo si = new DatabaseObjectInfo(catalogName, schemaName, rs.getString(1), DatabaseObjectType.UDF, md);
    18
    IDatabaseObjectInfo si = new DatabaseObjectInfo(catalogName, schemaName, rs.getString(1), DatabaseObjectType.SEQUENCE, md);
    Differences
    Expression1Expression2Difference
    UDFSEQUENCEVARIABLE_NAME_MISMATCH
    18
    IDatabaseObjectInfo si = new DatabaseObjectInfo(catalogName, schemaName, rs.getString(1), DatabaseObjectType.SEQUENCE, md);
    19
    if (filterMatcher.matches(si.getSimpleName()))
    19
    if (filterMatcher.matches(si.getSimpleName()))
    20
    childNodes.add(new ObjectTreeNode(session, si));
    20
    childNodes.add(new ObjectTreeNode(session, si));
    21
    return childNodes;
    21
    return childNodes;
    Precondition Violations (0)
    Row Violation