method == NavAddress.DATA_CONSTRUCTOR_METHOD) {
GemEntity entity = owner.getPerspective().getWorkspace().getGemEntity(address.toFeatureName().toQualifiedName());
TypeExpr[] typePieces = entity.getTypeExpr().getTypePieces();
String[] typeStrings = new String[typePieces.length];
PolymorphicVarContext polymorphicVarContext = PolymorphicVarContext.make();
for (int i = 0; i < typePieces.length; i++) {
typeStrings[i] = typePieces[i].toString(polymorphicVarContext, namingPolicy);
}
return typeStrings;
} else if (method == NavAddress.INSTANCE_METHOD_METHOD) {
CALFeatureName featureName = address.toFeatureName();
String methodName = featureName.toInstanceMethodName();
ClassInstance instance = owner.getPerspective().getMetaModule(featureName.toModuleName()).getTypeInfo().getClassInstance(featureName.toInstanceIdentifier());
TypeExpr[] typePieces = instance.getInstanceMethodType(methodName).getTypePieces();
String[] typeStrings = new String[typePieces.length];
PolymorphicVarContext polymorphicVarContext = PolymorphicVarContext.make();
for (int i = 0; i < typePieces.length; i++) {
typeStrings[i] = typePieces[i].toString(polymorphicVarContext, namingPolicy);
}
return typeStrings;
} else if (method == NavAddress.COLLECTOR_METHOD) {
CollectorGem collector = owner.getCollector(address.getBase());
if (collector == null || !collector.getCollectingPart().isConnected()) {
return new String[0];
}
List<PartInput> inputs = collector.getTargetInputs();
String[] typeStrings = new String[inputs.size() + 1];
PolymorphicVarContext polymorphicVarContext = PolymorphicVarContext.make();
for (int i = 0, length = typeStrings.length - 1; i < length; i++) {
typeStrings[i] = inputs.get(i).getType().toString(polymorphicVarContext, namingPolicy);
}