Skip to content
Snippets Groups Projects

Resolve "Feature: Send enpoint for non-terminal using implicit NTA"

10 files
+ 107
103
Compare changes
  • Side-by-side
  • Inline
Files
10
@@ -8,10 +8,35 @@ aspect NewStuff {
syn String RagConnect.observerInstanceFieldName() = internalRagConnectPrefix() + "ObserverInstance";
syn String RagConnect.observerInstanceSingletonMethodName() = internalRagConnectPrefix() + "Observer";
syn String RagConnect.observerInstanceResetMethodName() = internalRagConnectPrefix() + "resetObserver";
syn String RagConnect.touchedTerminalsMethodName() = internalRagConnectPrefix() + "touchedTerminals";
syn String TypeComponent.touchedTerminalsMethodName() = ragconnect().touchedTerminalsMethodName();
syn java.util.List<Component> TypeDecl.tokenComponents() {
return filteredComponents(Component::isTokenComponent);
}
syn java.util.List<Component> TypeDecl.normalComponents() {
return filteredComponents(comp -> comp.isTypeComponent() && !comp.isListComponent());
}
syn java.util.List<Component> TypeDecl.listComponents() {
return filteredComponents(Component::isListComponent);
}
private java.util.List<Component> TypeDecl.filteredComponents(java.util.function.Predicate<Component> filter) {
java.util.List<Component> result = new java.util.ArrayList<>();
for (Component comp : getComponentList()) {
if (filter.test(comp)) {
result.add(comp);
}
}
return result;
}
syn List<TypeDecl> RagConnect.allTypeDecls() {
return getProgram().typeDecls().stream()
.sorted(java.util.Comparator.comparing(TypeDecl::getName))
.collect(java.util.stream.Collectors.toList());
}
// send.mustache
syn boolean EndpointDefinition.needForwardingNTA() = getEndpointTarget().needForwardingNTA();
syn String EndpointDefinition.forwardingNTA_Name() = getEndpointTarget().forwardingNTA_Name();
syn String EndpointDefinition.forwardingNTA_Type() = getEndpointTarget().forwardingNTA_Type(getIndexBasedListAccess());
syn String EndpointDefinition.forwardingNTA_Type() = getEndpointTarget().forwardingNTA_Type();
syn boolean EndpointTarget.needForwardingNTA() = false;
eq TypeEndpointTarget.needForwardingNTA() = containingEndpointDefinition().getSend() && !getType().getNTA();
@@ -19,8 +44,9 @@ aspect NewStuff {
syn String EndpointTarget.forwardingNTA_Name() = null;
eq TypeEndpointTarget.forwardingNTA_Name() = ragconnect().internalRagConnectPrefix() + getType().getName();
syn String EndpointTarget.forwardingNTA_Type(boolean indexBasedListAccess) = null;
eq TypeEndpointTarget.forwardingNTA_Type(boolean indexBasedListAccess) = getType().forwardingNTA_Type(indexBasedListAccess);
syn String EndpointTarget.forwardingNTA_Type() = null;
eq TypeEndpointTarget.forwardingNTA_Type() = getType().forwardingNTA_Type(
containingEndpointDefinition().getIndexBasedListAccess());
syn String TypeComponent.forwardingNTA_Type(boolean indexBasedListAccess);
eq NormalComponent.forwardingNTA_Type(boolean indexBasedListAccess) = getTypeDecl().getName();
@@ -372,15 +398,15 @@ aspect MustacheReceiveAndSendAndHandleUri {
eq TokenEndpointTarget.entityName() = getToken().getName();
eq TypeEndpointTarget.getterMethodName() = getterMethodeNameHelper(true);
eq TypeEndpointTarget.getterMethodCall() = getterMethodName() + (containingEndpointDefinition().indexedList() ? "(index)" : "()") + (typeIsOpt() ? ".getChild(0)" : "");
eq TypeEndpointTarget.getterMethodCall() = getterMethodName() + (containingEndpointDefinition().indexedList() && !containingEndpointDefinition().getWithAdd() ? "(index)" : "()") + (typeIsOpt() ? ".getChild(0)" : "");
eq TypeEndpointTarget.realGetterMethodName() = getterMethodeNameHelper(false);
eq TypeEndpointTarget.realGetterMethodCall() = realGetterMethodName() + (containingEndpointDefinition().indexedSend() ? "(index)" : "()") + (typeIsOpt() ? ".getChild(0)" : "");
eq TypeEndpointTarget.realGetterMethodCall() = realGetterMethodName() + (containingEndpointDefinition().indexedSend() ? "(index)" : "()");
eq TypeEndpointTarget.parentTypeName() = getType().containingTypeDecl().getName();
eq TypeEndpointTarget.entityName() = getType().getName() + (typeIsList() && !containingEndpointDefinition().getIndexBasedListAccess() ? "List" : "");
private String TypeEndpointTarget.getterMethodeNameHelper(boolean useForwarding) {
return (useForwarding && needForwardingNTA() ? forwardingNTA_Name() :
"get" + getType().getName() + (typeIsList() && !containingEndpointDefinition().getIndexBasedListAccess() ? "List" : "") + (typeIsOpt() ? "Opt" : ""));
"get" + getType().getName() + (typeIsList() && (!containingEndpointDefinition().getIndexBasedListAccess() || containingEndpointDefinition().getWithAdd()) ? "List" : "") + (typeIsOpt() ? "Opt" : ""));
}
eq ContextFreeTypeEndpointTarget.getterMethodName() = null;
Loading