Introspection Failure

I get an error every time I launch the Adapter Configuration tool to check my custom adapter. It says:


�Introspection Failed(053) Could not load operation template �CGA.adapter.PreposToSOGA17Operation� :
(054) No parameter �PreposToSOGA17OperationOptionsTab.inField� in class.

This error occurs when creating the Group that should display the parameters:
adapterdescriptor.createGroup(CGAAdapterMgr.msg(“PreposToSOGA17OperationOptionsTab.desc”),
new String[] {“PreposToSOGA17OperationOptionsTab.inField”,
“PreposToSOGA17OperationOptionsTab.outField” });


I dont know what to do since there is such a parameter in the class:

public class PreposToSOGA17OperationOptionsTab {
private String inField;
private String outField;

public PreposToSOGA17OperationOptionsTab() {
	inField = null;
	outField = null;
}


}


does anyone know about this problem ?
thanks in advance.

It’s kind of hard for me to tell exactly how your adapter is built but from the looks of it you’re putting some of your operation template controls (tabs) in a separate class. Then in your operation template you’re creating an instance of that class. I’m going under the assumption that this is the case, so:

Your declaration of the class should look like this:

PreposToSOGA17OperationOptionsTab myTab = new PreposToSOGA17OperationOptionsTab();

then you group creation statement should look like this:

adapterdescriptor.createGroup(CGAAdapterMgr.msg(“PreposToSOGA17OperationOptionsTab.desc”),
new String[] {“myTab.inField”,
“myTab.outField” });

The real key being that when creating the group, you reference the name of the INSTANCE of the class NOT the actual class.

thank you very much for your quick reply!

well, you are right, sorry I was not clear:
my custom operation -class PreposToSOGA17Operation- is calling a separate class. In fact, it already
goes like this :

public class PreposToSOGA17Operation extends CTOperation
implements AdapterScript11, AdapterDescriptorFiller, AdapterScriptLifecycle {

public PreposToSOGA17Operation() {
    OptionsTab = new PreposToSOGA17OperationOptionsTab();       // that's the myTab you're talking about
}

public void fillAdapterDescriptor(AdapterDescriptor adapterdescriptor)
    throws AdapterException    {
    OptionsTab.fillAdapterDescriptor(adapterdescriptor, "OptionsTab.");
    adapterdescriptor.setDescriptions(CTOperation.getBundle());
}

private PreposToSOGA17OperationOptionsTab OptionsTab;

}// End of Operation class


public class PreposToSOGA17OperationOptionsTab {

private String inField;
private String outField;

public PreposToSOGA17OperationOptionsTab()    {
	inField = null;
	outField = null;
}

public void fillAdapterDescriptor(AdapterDescriptor adapterdescriptor, String s)
    throws AdapterException    {

    adapterdescriptor.createGroup(CGAAdapterMgr.msg("PreposToSOGA17OperationOptionsTab.desc"), new String[] {
        s + "inField", s + "outField"});
    adapterdescriptor.setMinStringLength(s + "inField", 1);
    adapterdescriptor.setMinStringLength(s + "outField", 1);

adapterdescriptor.setNamespace(s + "inField", adapterdescriptor.INPUT_FIELD_NAMES, null);
    adapterdescriptor.setNamespace(s + "outField", adapterdescriptor.OUTPUT_FIELD_NAMES, null);
}

public String getInField()    {
    return this.inField;
}

} // End of OptionsTab class