Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Information] How to differentiate methods calls in java code while method overloading in same class #5478

Open
Vardhamansankar opened this issue Sep 29, 2023 · 0 comments

Comments

@Vardhamansankar
Copy link

Hello team,
I want to extract the different method calls in the same class file when that method is overloaded.
I am attaching the code example below for the reference,

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;

import oracle.jdbc.OracleConnection;
import oracle.jdbc.pool.OracleDataSource;


public class MethodOverloadExample {

@Override
	public List<IpTeam> searchTeam(IpTeam ipTeam, int maxResult)throws DataAccessException {
		Session session = getSessionFactory().getCurrentSession();
		List<IpTeam> ipTeamList = new ArrayList<IpTeam>();
		StringBuffer sql = new StringBuffer();
		sql.append(" SELECT ");
		sql.append(" A.TEAM_ID,A.TEAM_NAME,A.TEAM_DESC,A.TIER2_TEAM,A.UPDATE_BY,A.UPDATE_DATE,NVL(B.TOTAL_MEMBER,0) TOTAL_MEMBER ");
		sql.append(" FROM IP_TEAM A, ");
		sql.append(" (SELECT  TEAM_ID,  TEAM_NAME,COUNT(1) TOTAL_MEMBER ");
		sql.append(" FROM IP_USER ");
		sql.append(" WHERE TEAM_ID IS NOT NULL ");
		sql.append(" GROUP BY TEAM_ID, TEAM_NAME) B ");
		sql.append(" WHERE A.TEAM_ID = B.TEAM_ID(+) ");
		if(!"".equals(ipTeam.getTeamName()) && ipTeam.getTeamName()!=null){
		sql.append(" AND upper(A.TEAM_NAME) LIKE '%"+ipTeam.getTeamName().toUpperCase()+"%' ");
		}
		sql.append(" ORDER BY A.TEAM_ID ");

		List dataList =  session.createSQLQuery(sql.toString()).list();
		Iterator iter = dataList.iterator();
		IpTeam objIpTeam;
		while(iter.hasNext()) {
			Object[] obj = (Object[])iter.next();
			objIpTeam = new IpTeam();
			objIpTeam.setTeamId((String)obj[0]);
			objIpTeam.setTeamName((String)obj[1]);
			objIpTeam.setTeamDesc((String)obj[2]);
			objIpTeam.setTier2Team((String)obj[3]);
			objIpTeam.setLastUpdBy((String)obj[4]);
			objIpTeam.setLastUpd((Date)obj[5]);
			objIpTeam.setTotalMember((BigDecimal)obj[6]);

			ipTeamList.add(objIpTeam);
		}

	return ipTeamList;
}

@Override
public List<IpTeam> searchTeam(IpTeam ipTeam)throws DataAccessException {
	Session session = getSessionFactory().getCurrentSession();
	List<IpTeam> ipTeamList = new ArrayList<IpTeam>();
	StringBuffer sql = new StringBuffer();
	sql.append(" SELECT ");
	sql.append(" A.TEAM_ID,A.TEAM_NAME,A.TEAM_DESC,A.TIER2_TEAM,A.UPDATE_BY,A.UPDATE_DATE,NVL(B.TOTAL_MEMBER,0) TOTAL_MEMBER ");
	sql.append(" FROM IP_TEAM A, ");
	sql.append(" (SELECT  TEAM_ID,  TEAM_NAME,COUNT(1) TOTAL_MEMBER ");
	sql.append(" FROM IP_USER ");
	sql.append(" WHERE TEAM_ID IS NOT NULL ");
	sql.append(" GROUP BY TEAM_ID, TEAM_NAME) B ");
	sql.append(" WHERE A.TEAM_ID = B.TEAM_ID(+) ");
	sql.append(" ORDER BY A.TEAM_ID ");
        
		List dataList =  session.createSQLQuery(sql.toString()).list();
		Iterator iter = dataList.iterator();
		IpTeam objIpTeam;
		while(iter.hasNext()) {
			Object[] obj = (Object[])iter.next();
			objIpTeam = new IpTeam();
			objIpTeam.setTeamId((String)obj[0]);
			objIpTeam.setTeamName((String)obj[1]);
			objIpTeam.setTeamDesc((String)obj[2]);
			objIpTeam.setTier2Team((String)obj[3]);
			objIpTeam.setLastUpdBy((String)obj[4]);
			objIpTeam.setLastUpd((Date)obj[5]);
			objIpTeam.setTotalMember((BigDecimal)obj[6]);

			ipTeamList.add(objIpTeam);
		}

	return ipTeamList;
}
}

Let's say I have code like this and I am calling searchTeam() method with each different set of arguments, I want to know how I can differentiate using spoon based on the CtMethod parameters list or the return data type. Basically, I want to handle a scenario using Spoon when there is a method call happening in the same class and if the method is overloaded, how can I handle this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant