use of org.whole.lang.workflows.reflect.WorkflowsEntityDescriptorEnum.InvokeJavaClassMethod in project whole by wholeplatform.
the class WorkflowsUIContentAssistVisitor method allSignatures.
protected boolean allSignatures(IEntity entity) {
if (!WorkflowsUtils.isSignatureInJavaActivity(entity))
return false;
IEntity parent = entity.wGetParent();
boolean isMethod = !Matcher.match(CreateJavaClassInstance, parent);
boolean isStatic = Matcher.match(InvokeJavaClassMethod, parent);
IEntity classNameEntity = parent.wGet(className);
if (!Matcher.matchImpl(StringLiteral, classNameEntity))
return false;
String className = classNameEntity.wStringValue();
Class<?> declaringClass = null;
try {
declaringClass = JavaReflectUtils.forName(className, getClassLoader());
} catch (IllegalArgumentException e) {
return false;
}
ActionsUIEntityFactory aef = ActionsUIEntityFactory.instance;
GroupAction signaturesGroup = aef.createGroupAction();
signaturesGroup.setFillStrategy(aef.createHierarchical(aef.createDistinctPrefix(), aef.createSize(20)));
signaturesGroup.getText().setValue("workflows.signatures");
Actions actions = aef.createActions(0);
WorkflowsEntityFactory wef = WorkflowsEntityFactory.instance;
if (isMethod) {
for (Method method : declaringClass.getMethods()) if (isStatic == Modifier.isStatic(method.getModifiers())) {
JavaSignature signature = JavaReflectUtils.fromMethod(method);
StringLiteral literal = wef.createStringLiteral(JavaReflectUtils.unparse(signature));
actions.wAdd(aef.createReplaceDifferentTemplateAction(literal, WorkflowsUtils.unparseCompact(signature), calculateImageDescriptor(parent)));
}
} else {
for (Constructor<?> constructor : declaringClass.getConstructors()) {
JavaSignature signature = JavaReflectUtils.fromConstructor(constructor);
StringLiteral literal = wef.createStringLiteral(JavaReflectUtils.unparse(signature));
actions.wAdd(aef.createReplaceDifferentTemplateAction(literal, WorkflowsUtils.unparseCompact(signature), calculateImageDescriptor(parent)));
}
}
signaturesGroup.setActions(actions);
return EntityUtils.isResolver(entity) ? mergeResult(StringLiteral, signaturesGroup) : mergeResult(signaturesGroup);
}
Aggregations