package org.gcube.data.access.storagehub.handlers.items.builders; import java.util.Objects; import javax.jcr.Session; import org.gcube.common.storagehub.model.exceptions.InvalidCallParameters; public abstract class ItemsParameterBuilder { T parameters; protected ItemsParameterBuilder(T parameters) { super(); this.parameters = parameters; } public ItemsParameterBuilder on(String parentId) { parameters.parentId = parentId; return this; } public ItemsParameterBuilder author(String author) { parameters.user = author; return this; } public ItemsParameterBuilder with(Session session){ parameters.session = session; return this; } public T build() throws InvalidCallParameters { if (!(parameters.isValid() && Objects.nonNull(parameters.parentId))) throw new InvalidCallParameters("invalid call"); return parameters; } }