
com.sap.cds.reflect.impl.CdsActionBuilder Maven / Gradle / Ivy
/**************************************************************************
* (C) 2020-2023 SAP SE or an SAP affiliate company. All rights reserved. *
**************************************************************************/
package com.sap.cds.reflect.impl;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import com.sap.cds.reflect.CdsAction;
import com.sap.cds.reflect.CdsAnnotation;
import com.sap.cds.reflect.CdsBoundAction;
import com.sap.cds.reflect.CdsParameter;
import com.sap.cds.reflect.CdsType;
public class CdsActionBuilder extends CdsOperationBuilder {
CdsActionBuilder(boolean isBound, List> annotations, String qualifiedName, String name, String doc) {
super(isBound, annotations, qualifiedName, name, doc);
}
@Override
protected CdsAction createBound(String doc, List parameters, CdsType returnType, CdsParameter bindingParameter) {
return new CdsBoundActionImpl(annotations, qualifiedName, getName(), doc, parameters, returnType, bindingParameter);
}
@Override
protected CdsAction createUnbound(String doc, List parameters, CdsType returnType) {
return new CdsActionImpl(annotations, qualifiedName, getName(), doc, parameters, returnType);
}
private static class CdsActionImpl extends CdsOperationImpl implements CdsAction {
private CdsActionImpl(Collection> annotations, String qualifiedName, String name, String doc, List parameters, CdsType returnType) {
super(annotations, qualifiedName, name, doc, parameters, returnType);
}
@Override
public Optional returnType() {
return Optional.ofNullable(returnType);
}
}
private static class CdsBoundActionImpl extends CdsActionImpl implements CdsBoundAction {
private final CdsParameter bindingParameter;
private CdsBoundActionImpl(Collection> annotations, String qualifiedName, String name, String doc, List parameters, CdsType returnType, CdsParameter bindingParameter) {
super(annotations, qualifiedName, name, doc, parameters, returnType);
this.bindingParameter = bindingParameter;
}
@Override
public CdsParameter getBindingParameter() {
return bindingParameter;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy