Program: 54951
Project: 54951
Buggy source:
/** 
 * Will pop up a dialog to let the user adjust gain settings
 */
private void adjustGain(){
  if (source == null)   return;
  int sourceType=Integer.valueOf(preferences.getString(getString(R.string.pref_sourceType),"String_Node_Str"));
switch (sourceType) {
case FILE_SOURCE:
    Toast.makeText(this,getString(R.string.filesource_doesnt_support_gain),Toast.LENGTH_LONG).show();
  break;
case HACKRF_SOURCE:
final LinearLayout view_hackrf=(LinearLayout)this.getLayoutInflater().inflate(R.layout.hackrf_gain,null);
final SeekBar sb_hackrf_vga=(SeekBar)view_hackrf.findViewById(R.id.sb_hackrf_vga_gain);
final SeekBar sb_hackrf_lna=(SeekBar)view_hackrf.findViewById(R.id.sb_hackrf_lna_gain);
final TextView tv_hackrf_vga=(TextView)view_hackrf.findViewById(R.id.tv_hackrf_vga_gain);
final TextView tv_hackrf_lna=(TextView)view_hackrf.findViewById(R.id.tv_hackrf_lna_gain);
sb_hackrf_vga.setMax(HackrfSource.MAX_VGA_RX_GAIN / HackrfSource.VGA_RX_GAIN_STEP_SIZE);
sb_hackrf_lna.setMax(HackrfSource.MAX_LNA_GAIN / HackrfSource.LNA_GAIN_STEP_SIZE);
sb_hackrf_vga.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
tv_hackrf_vga.setText("String_Node_Str" + progress * HackrfSource.VGA_RX_GAIN_STEP_SIZE);
((HackrfSource)source).setVgaRxGain(progress * HackrfSource.VGA_RX_GAIN_STEP_SIZE);
}
@Override public void onStartTrackingTouch(SeekBar seekBar){
}
@Override public void onStopTrackingTouch(SeekBar seekBar){
}
}
);
sb_hackrf_lna.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
tv_hackrf_lna.setText("String_Node_Str" + progress * HackrfSource.LNA_GAIN_STEP_SIZE);
((HackrfSource)source).setLnaGain(progress * HackrfSource.LNA_GAIN_STEP_SIZE);
}
@Override public void onStartTrackingTouch(SeekBar seekBar){
}
@Override public void onStopTrackingTouch(SeekBar seekBar){
}
}
);
sb_hackrf_vga.setProgress(((HackrfSource)source).getVgaRxGain() / HackrfSource.VGA_RX_GAIN_STEP_SIZE);
sb_hackrf_lna.setProgress(((HackrfSource)source).getLnaGain() / HackrfSource.LNA_GAIN_STEP_SIZE);
AlertDialog hackrfDialog=new AlertDialog.Builder(this).setTitle("String_Node_Str").setView(view_hackrf).setPositiveButton("String_Node_Str",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
SharedPreferences.Editor edit=preferences.edit();
edit.putInt(getString(R.string.pref_hackrf_vgaRxGain),sb_hackrf_vga.getProgress() * HackrfSource.VGA_RX_GAIN_STEP_SIZE);
edit.putInt(getString(R.string.pref_hackrf_lnaGain),sb_hackrf_lna.getProgress() * HackrfSource.LNA_GAIN_STEP_SIZE);
edit.apply();
}
}
).setNegativeButton("String_Node_Str",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
}
}
).create();
hackrfDialog.setOnDismissListener(new DialogInterface.OnDismissListener(){
@Override public void onDismiss(DialogInterface dialog){
int vgaRxGain=preferences.getInt(getString(R.string.pref_hackrf_vgaRxGain),HackrfSource.MAX_VGA_RX_GAIN / 2);
int lnaGain=preferences.getInt(getString(R.string.pref_hackrf_lnaGain),HackrfSource.MAX_LNA_GAIN / 2);
if (((HackrfSource)source).getVgaRxGain() != vgaRxGain) ((HackrfSource)source).setVgaRxGain(vgaRxGain);
if (((HackrfSource)source).getLnaGain() != lnaGain) ((HackrfSource)source).setLnaGain(lnaGain);
}
}
);
hackrfDialog.show();
hackrfDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
break;
case RTLSDR_SOURCE:
final int[] possibleGainValues=((RtlsdrSource)source).getPossibleGainValues();
final int[] possibleIFGainValues=((RtlsdrSource)source).getPossibleIFGainValues();
if (possibleGainValues.length <= 1 && possibleIFGainValues.length <= 1) {
Toast.makeText(MainActivity.this,source.getName() + "String_Node_Str",Toast.LENGTH_LONG).show();
}
final LinearLayout view_rtlsdr=(LinearLayout)this.getLayoutInflater().inflate(R.layout.rtlsdr_gain,null);
final LinearLayout ll_rtlsdr_gain=(LinearLayout)view_rtlsdr.findViewById(R.id.ll_rtlsdr_gain);
final LinearLayout ll_rtlsdr_ifgain=(LinearLayout)view_rtlsdr.findViewById(R.id.ll_rtlsdr_ifgain);
final Switch sw_rtlsdr_manual_gain=(Switch)view_rtlsdr.findViewById(R.id.sw_rtlsdr_manual_gain);
final CheckBox cb_rtlsdr_agc=(CheckBox)view_rtlsdr.findViewById(R.id.cb_rtlsdr_agc);
final SeekBar sb_rtlsdr_gain=(SeekBar)view_rtlsdr.findViewById(R.id.sb_rtlsdr_gain);
final SeekBar sb_rtlsdr_ifGain=(SeekBar)view_rtlsdr.findViewById(R.id.sb_rtlsdr_ifgain);
final TextView tv_rtlsdr_gain=(TextView)view_rtlsdr.findViewById(R.id.tv_rtlsdr_gain);
final TextView tv_rtlsdr_ifGain=(TextView)view_rtlsdr.findViewById(R.id.tv_rtlsdr_ifgain);
sw_rtlsdr_manual_gain.setOnCheckedChangeListener(new Switch.OnCheckedChangeListener(){
@Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
sb_rtlsdr_gain.setEnabled(isChecked);
tv_rtlsdr_gain.setEnabled(isChecked);
sb_rtlsdr_ifGain.setEnabled(isChecked);
tv_rtlsdr_ifGain.setEnabled(isChecked);
((RtlsdrSource)source).setManualGain(isChecked);
if (isChecked) {
((RtlsdrSource)source).setGain(possibleGainValues[sb_rtlsdr_gain.getProgress()]);
((RtlsdrSource)source).setIFGain(possibleIFGainValues[sb_rtlsdr_ifGain.getProgress()]);
}
}
}
);
cb_rtlsdr_agc.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
((RtlsdrSource)source).setAutomaticGainControl(isChecked);
}
}
);
sb_rtlsdr_gain.setMax(possibleGainValues.length - 1);
sb_rtlsdr_ifGain.setMax(possibleIFGainValues.length - 1);
sb_rtlsdr_gain.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
tv_rtlsdr_gain.setText("String_Node_Str" + possibleGainValues[progress]);
((RtlsdrSource)source).setGain(possibleGainValues[progress]);
}
@Override public void onStartTrackingTouch(SeekBar seekBar){
}
@Override public void onStopTrackingTouch(SeekBar seekBar){
}
}
);
sb_rtlsdr_ifGain.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
tv_rtlsdr_ifGain.setText("String_Node_Str" + possibleIFGainValues[progress]);
((RtlsdrSource)source).setIFGain(possibleIFGainValues[progress]);
}
@Override public void onStartTrackingTouch(SeekBar seekBar){
}
@Override public void onStopTrackingTouch(SeekBar seekBar){
}
}
);
int gainIndex=0;
int ifGainIndex=0;
for (int i=0; i < possibleGainValues.length; i++) {
if (((RtlsdrSource)source).getGain() == possibleGainValues[i]) {
gainIndex=i;
break;
}
}
for (int i=0; i < possibleIFGainValues.length; i++) {
if (((RtlsdrSource)source).getIFGain() == possibleIFGainValues[i]) {
ifGainIndex=i;
break;
}
}
sb_rtlsdr_gain.setProgress(gainIndex);
sb_rtlsdr_ifGain.setProgress(ifGainIndex);
tv_rtlsdr_gain.setText("String_Node_Str" + possibleGainValues[gainIndex]);
tv_rtlsdr_ifGain.setText("String_Node_Str" + possibleIFGainValues[ifGainIndex]);
sw_rtlsdr_manual_gain.setChecked(((RtlsdrSource)source).isManualGain());
cb_rtlsdr_agc.setChecked(((RtlsdrSource)source).isAutomaticGainControl());
if (possibleGainValues.length <= 1) ll_rtlsdr_gain.setVisibility(View.GONE);
if (possibleIFGainValues.length <= 1) ll_rtlsdr_ifgain.setVisibility(View.GONE);
if (!sw_rtlsdr_manual_gain.isChecked()) {
sb_rtlsdr_gain.setEnabled(false);
tv_rtlsdr_gain.setEnabled(false);
sb_rtlsdr_ifGain.setEnabled(false);
tv_rtlsdr_ifGain.setEnabled(false);
}
AlertDialog rtlsdrDialog=new AlertDialog.Builder(this).setTitle("String_Node_Str").setView(view_rtlsdr).setPositiveButton("String_Node_Str",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
SharedPreferences.Editor edit=preferences.edit();
edit.putBoolean(getString(R.string.pref_rtlsdr_manual_gain),sw_rtlsdr_manual_gain.isChecked());
edit.putBoolean(getString(R.string.pref_rtlsdr_agc),cb_rtlsdr_agc.isChecked());
edit.putInt(getString(R.string.pref_rtlsdr_gain),possibleGainValues[sb_rtlsdr_gain.getProgress()]);
edit.putInt(getString(R.string.pref_rtlsdr_ifGain),possibleIFGainValues[sb_rtlsdr_ifGain.getProgress()]);
edit.apply();
}
}
).setNegativeButton("String_Node_Str",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
}
}
).create();
rtlsdrDialog.setOnDismissListener(new DialogInterface.OnDismissListener(){
@Override public void onDismiss(DialogInterface dialog){
boolean manualGain=preferences.getBoolean(getString(R.string.pref_rtlsdr_manual_gain),false);
boolean agc=preferences.getBoolean(getString(R.string.pref_rtlsdr_agc),false);
int gain=preferences.getInt(getString(R.string.pref_rtlsdr_gain),0);
int ifGain=preferences.getInt(getString(R.string.pref_rtlsdr_ifGain),0);
((RtlsdrSource)source).setGain(gain);
((RtlsdrSource)source).setIFGain(ifGain);
((RtlsdrSource)source).setManualGain(manualGain);
((RtlsdrSource)source).setAutomaticGainControl(agc);
if (manualGain) {
((RtlsdrSource)source).setGain(gain);
((RtlsdrSource)source).setIFGain(ifGain);
}
}
}
);
rtlsdrDialog.show();
rtlsdrDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
break;
default :
Log.e(LOGTAG,"String_Node_Str" + sourceType);
break;
}
}

Fixed version (ground truth):
/** 
 * Will pop up a dialog to let the user adjust gain settings
 */
private void adjustGain(){
  if (source == null)   return;
  int sourceType=Integer.valueOf(preferences.getString(getString(R.string.pref_sourceType),"String_Node_Str"));
switch (sourceType) {
case FILE_SOURCE:
    Toast.makeText(this,getString(R.string.filesource_doesnt_support_gain),Toast.LENGTH_LONG).show();
  break;
case HACKRF_SOURCE:
final LinearLayout view_hackrf=(LinearLayout)this.getLayoutInflater().inflate(R.layout.hackrf_gain,null);
final SeekBar sb_hackrf_vga=(SeekBar)view_hackrf.findViewById(R.id.sb_hackrf_vga_gain);
final SeekBar sb_hackrf_lna=(SeekBar)view_hackrf.findViewById(R.id.sb_hackrf_lna_gain);
final TextView tv_hackrf_vga=(TextView)view_hackrf.findViewById(R.id.tv_hackrf_vga_gain);
final TextView tv_hackrf_lna=(TextView)view_hackrf.findViewById(R.id.tv_hackrf_lna_gain);
sb_hackrf_vga.setMax(HackrfSource.MAX_VGA_RX_GAIN / HackrfSource.VGA_RX_GAIN_STEP_SIZE);
sb_hackrf_lna.setMax(HackrfSource.MAX_LNA_GAIN / HackrfSource.LNA_GAIN_STEP_SIZE);
sb_hackrf_vga.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
tv_hackrf_vga.setText("String_Node_Str" + progress * HackrfSource.VGA_RX_GAIN_STEP_SIZE);
((HackrfSource)source).setVgaRxGain(progress * HackrfSource.VGA_RX_GAIN_STEP_SIZE);
}
@Override public void onStartTrackingTouch(SeekBar seekBar){
}
@Override public void onStopTrackingTouch(SeekBar seekBar){
}
}
);
sb_hackrf_lna.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
tv_hackrf_lna.setText("String_Node_Str" + progress * HackrfSource.LNA_GAIN_STEP_SIZE);
((HackrfSource)source).setLnaGain(progress * HackrfSource.LNA_GAIN_STEP_SIZE);
}
@Override public void onStartTrackingTouch(SeekBar seekBar){
}
@Override public void onStopTrackingTouch(SeekBar seekBar){
}
}
);
sb_hackrf_vga.setProgress(((HackrfSource)source).getVgaRxGain() / HackrfSource.VGA_RX_GAIN_STEP_SIZE);
sb_hackrf_lna.setProgress(((HackrfSource)source).getLnaGain() / HackrfSource.LNA_GAIN_STEP_SIZE);
AlertDialog hackrfDialog=new AlertDialog.Builder(this).setTitle("String_Node_Str").setView(view_hackrf).setPositiveButton("String_Node_Str",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
SharedPreferences.Editor edit=preferences.edit();
edit.putInt(getString(R.string.pref_hackrf_vgaRxGain),sb_hackrf_vga.getProgress() * HackrfSource.VGA_RX_GAIN_STEP_SIZE);
edit.putInt(getString(R.string.pref_hackrf_lnaGain),sb_hackrf_lna.getProgress() * HackrfSource.LNA_GAIN_STEP_SIZE);
edit.apply();
}
}
).setNegativeButton("String_Node_Str",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
}
}
).create();
hackrfDialog.setOnDismissListener(new DialogInterface.OnDismissListener(){
@Override public void onDismiss(DialogInterface dialog){
int vgaRxGain=preferences.getInt(getString(R.string.pref_hackrf_vgaRxGain),HackrfSource.MAX_VGA_RX_GAIN / 2);
int lnaGain=preferences.getInt(getString(R.string.pref_hackrf_lnaGain),HackrfSource.MAX_LNA_GAIN / 2);
if (((HackrfSource)source).getVgaRxGain() != vgaRxGain) ((HackrfSource)source).setVgaRxGain(vgaRxGain);
if (((HackrfSource)source).getLnaGain() != lnaGain) ((HackrfSource)source).setLnaGain(lnaGain);
}
}
);
hackrfDialog.show();
hackrfDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
break;
case RTLSDR_SOURCE:
final int[] possibleGainValues=((RtlsdrSource)source).getPossibleGainValues();
final int[] possibleIFGainValues=((RtlsdrSource)source).getPossibleIFGainValues();
if (possibleGainValues.length <= 1 && possibleIFGainValues.length <= 1) {
Toast.makeText(MainActivity.this,source.getName() + "String_Node_Str",Toast.LENGTH_LONG).show();
}
final LinearLayout view_rtlsdr=(LinearLayout)this.getLayoutInflater().inflate(R.layout.rtlsdr_gain,null);
final LinearLayout ll_rtlsdr_gain=(LinearLayout)view_rtlsdr.findViewById(R.id.ll_rtlsdr_gain);
final LinearLayout ll_rtlsdr_ifgain=(LinearLayout)view_rtlsdr.findViewById(R.id.ll_rtlsdr_ifgain);
final Switch sw_rtlsdr_manual_gain=(Switch)view_rtlsdr.findViewById(R.id.sw_rtlsdr_manual_gain);
final CheckBox cb_rtlsdr_agc=(CheckBox)view_rtlsdr.findViewById(R.id.cb_rtlsdr_agc);
final SeekBar sb_rtlsdr_gain=(SeekBar)view_rtlsdr.findViewById(R.id.sb_rtlsdr_gain);
final SeekBar sb_rtlsdr_ifGain=(SeekBar)view_rtlsdr.findViewById(R.id.sb_rtlsdr_ifgain);
final TextView tv_rtlsdr_gain=(TextView)view_rtlsdr.findViewById(R.id.tv_rtlsdr_gain);
final TextView tv_rtlsdr_ifGain=(TextView)view_rtlsdr.findViewById(R.id.tv_rtlsdr_ifgain);
int gainIndex=0;
int ifGainIndex=0;
for (int i=0; i < possibleGainValues.length; i++) {
if (((RtlsdrSource)source).getGain() == possibleGainValues[i]) {
gainIndex=i;
break;
}
}
for (int i=0; i < possibleIFGainValues.length; i++) {
if (((RtlsdrSource)source).getIFGain() == possibleIFGainValues[i]) {
ifGainIndex=i;
break;
}
}
sb_rtlsdr_gain.setMax(possibleGainValues.length - 1);
sb_rtlsdr_ifGain.setMax(possibleIFGainValues.length - 1);
sb_rtlsdr_gain.setProgress(gainIndex);
sb_rtlsdr_ifGain.setProgress(ifGainIndex);
tv_rtlsdr_gain.setText("String_Node_Str" + possibleGainValues[gainIndex]);
tv_rtlsdr_ifGain.setText("String_Node_Str" + possibleIFGainValues[ifGainIndex]);
sw_rtlsdr_manual_gain.setChecked(((RtlsdrSource)source).isManualGain());
cb_rtlsdr_agc.setChecked(((RtlsdrSource)source).isAutomaticGainControl());
sw_rtlsdr_manual_gain.setOnCheckedChangeListener(new Switch.OnCheckedChangeListener(){
@Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
sb_rtlsdr_gain.setEnabled(isChecked);
tv_rtlsdr_gain.setEnabled(isChecked);
sb_rtlsdr_ifGain.setEnabled(isChecked);
tv_rtlsdr_ifGain.setEnabled(isChecked);
((RtlsdrSource)source).setManualGain(isChecked);
if (isChecked) {
((RtlsdrSource)source).setGain(possibleGainValues[sb_rtlsdr_gain.getProgress()]);
((RtlsdrSource)source).setIFGain(possibleIFGainValues[sb_rtlsdr_ifGain.getProgress()]);
}
}
}
);
cb_rtlsdr_agc.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
((RtlsdrSource)source).setAutomaticGainControl(isChecked);
}
}
);
sb_rtlsdr_gain.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
tv_rtlsdr_gain.setText("String_Node_Str" + possibleGainValues[progress]);
((RtlsdrSource)source).setGain(possibleGainValues[progress]);
}
@Override public void onStartTrackingTouch(SeekBar seekBar){
}
@Override public void onStopTrackingTouch(SeekBar seekBar){
}
}
);
sb_rtlsdr_ifGain.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
tv_rtlsdr_ifGain.setText("String_Node_Str" + possibleIFGainValues[progress]);
((RtlsdrSource)source).setIFGain(possibleIFGainValues[progress]);
}
@Override public void onStartTrackingTouch(SeekBar seekBar){
}
@Override public void onStopTrackingTouch(SeekBar seekBar){
}
}
);
if (possibleGainValues.length <= 1) ll_rtlsdr_gain.setVisibility(View.GONE);
if (possibleIFGainValues.length <= 1) ll_rtlsdr_ifgain.setVisibility(View.GONE);
if (!sw_rtlsdr_manual_gain.isChecked()) {
sb_rtlsdr_gain.setEnabled(false);
tv_rtlsdr_gain.setEnabled(false);
sb_rtlsdr_ifGain.setEnabled(false);
tv_rtlsdr_ifGain.setEnabled(false);
}
AlertDialog rtlsdrDialog=new AlertDialog.Builder(this).setTitle("String_Node_Str").setView(view_rtlsdr).setPositiveButton("String_Node_Str",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
SharedPreferences.Editor edit=preferences.edit();
edit.putBoolean(getString(R.string.pref_rtlsdr_manual_gain),sw_rtlsdr_manual_gain.isChecked());
edit.putBoolean(getString(R.string.pref_rtlsdr_agc),cb_rtlsdr_agc.isChecked());
edit.putInt(getString(R.string.pref_rtlsdr_gain),possibleGainValues[sb_rtlsdr_gain.getProgress()]);
edit.putInt(getString(R.string.pref_rtlsdr_ifGain),possibleIFGainValues[sb_rtlsdr_ifGain.getProgress()]);
edit.apply();
}
}
).setNegativeButton("String_Node_Str",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
}
}
).create();
rtlsdrDialog.setOnDismissListener(new DialogInterface.OnDismissListener(){
@Override public void onDismiss(DialogInterface dialog){
boolean manualGain=preferences.getBoolean(getString(R.string.pref_rtlsdr_manual_gain),false);
boolean agc=preferences.getBoolean(getString(R.string.pref_rtlsdr_agc),false);
int gain=preferences.getInt(getString(R.string.pref_rtlsdr_gain),0);
int ifGain=preferences.getInt(getString(R.string.pref_rtlsdr_ifGain),0);
((RtlsdrSource)source).setGain(gain);
((RtlsdrSource)source).setIFGain(ifGain);
((RtlsdrSource)source).setManualGain(manualGain);
((RtlsdrSource)source).setAutomaticGainControl(agc);
if (manualGain) {
((RtlsdrSource)source).setGain(gain);
((RtlsdrSource)source).setIFGain(ifGain);
}
}
}
);
rtlsdrDialog.show();
rtlsdrDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
break;
default :
Log.e(LOGTAG,"String_Node_Str" + sourceType);
break;
}
}