aspect Navigation { // --- program --- eq RagConnect.getChild().program() = getProgram(); eq MRagConnect.getChild().program() = getRagConnect().program(); // --- ragconnect --- inh RagConnect ASTNode.ragconnect(); eq RagConnect.getChild().ragconnect() = this; eq MRagConnect.getChild().ragconnect() = getRagConnect(); // --- containedFile eq Grammar.getChild().containedFile() = null; eq RagConnect.getChild().containedFile() = null; eq MRagConnect.getChild().containedFile() = null; // --- containedFileName --- eq Grammar.getChild().containedFileName() = null; // should be in PP eq RagConnect.getChild().containedFileName() = getFileName(); eq MRagConnect.getChild().containedFileName() = null; // --- isTokenEndpointDefinition --- syn boolean EndpointDefinition.isTokenEndpointDefinition() = false; eq TokenEndpointDefinition.isTokenEndpointDefinition() = true; // --- asTokenEndpointDefinition --- syn TokenEndpointDefinition EndpointDefinition.asTokenEndpointDefinition() = null; eq TokenEndpointDefinition.asTokenEndpointDefinition() = this; // --- isSendTokenEndpointDefinition --- syn boolean EndpointDefinition.isSendTokenEndpointDefinition() = false; eq SendTokenEndpointDefinition.isSendTokenEndpointDefinition() = true; // --- asSendTokenEndpointDefinition --- syn SendTokenEndpointDefinition EndpointDefinition.asSendTokenEndpointDefinition() = null; eq SendTokenEndpointDefinition.asSendTokenEndpointDefinition() = this; // --- isReceiveTokenEndpointDefinition --- syn boolean EndpointDefinition.isReceiveTokenEndpointDefinition() = false; eq ReceiveTokenEndpointDefinition.isReceiveTokenEndpointDefinition() = true; // --- asReceiveTokenEndpointDefinition --- syn ReceiveTokenEndpointDefinition EndpointDefinition.asReceiveTokenEndpointDefinition() = null; eq ReceiveTokenEndpointDefinition.asReceiveTokenEndpointDefinition() = this; // --- targetEndpointDefinition --- syn SendTokenEndpointDefinition DependencyDefinition.targetEndpointDefinition() { // resolve definition in here, as we do not need resolveMethod in any other place (yet) for (EndpointDefinition endpointDefinition : ragconnect().getEndpointDefinitionList()) { if (endpointDefinition.isSendTokenEndpointDefinition() && endpointDefinition.asSendTokenEndpointDefinition().getToken().equals(this.getTarget())) { return endpointDefinition.asSendTokenEndpointDefinition(); } } return null; } // --- effectiveJavaTypeUse (should be in preprocessor) --- syn lazy JavaTypeUse TokenComponent.effectiveJavaTypeUse() = hasJavaTypeUse() ? getJavaTypeUse() : new SimpleJavaTypeUse("String"); // --- isDefaultMappingDefinition --- syn boolean MappingDefinition.isDefaultMappingDefinition() = false; eq DefaultMappingDefinition.isDefaultMappingDefinition() = true; // --- mragconnect --- inh MRagConnect MHandler.mragconnect(); eq MRagConnect.getHandler().mragconnect() = this; // --- rootTypeComponents --- syn JastAddList MHandler.rootTypeComponents() = mragconnect().getRootTypeComponents(); }