// Some of the supplied argument names might be null, but that's OK because
// the input metadata will automatically use a default name if it's given a null value.
// NOTE: We want any gems created with names from code or from metadata to consider those names
// as NOT being user saved names. This works fine here as a new input name object will be
// created with an initial name of whatever we supply.
FunctionalAgentMetadata metadata = gemEntity.getMetadata(GemCutter.getLocaleFromPreferences());
ArgumentMetadata[] argMetadata = metadata.getArguments();
int numNamedArgs = gemEntity.getNNamedArguments();
CALDocComment caldoc = gemEntity.getFunctionalAgent().getCALDocComment();
for (int i = 0, numInputs = getNInputs(); i < numInputs; i++) {
PartInput inputPart = getInputPart(i);