All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sap.cds.reflect.impl.CdsActionBuilder Maven / Gradle / Ivy

There is a newer version: 3.8.0
Show newest version
/**************************************************************************
 * (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