001/* 002 * Licensed to DuraSpace under one or more contributor license agreements. 003 * See the NOTICE file distributed with this work for additional information 004 * regarding copyright ownership. 005 * 006 * DuraSpace licenses this file to you under the Apache License, 007 * Version 2.0 (the "License"); you may not use this file except in 008 * compliance with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 019package org.fcrepo.kernel.impl.operations; 020 021import org.fcrepo.kernel.api.identifiers.FedoraId; 022import org.fcrepo.kernel.api.operations.CreateVersionResourceOperationBuilder; 023import org.fcrepo.kernel.api.operations.ResourceOperation; 024import org.fcrepo.kernel.api.operations.ResourceOperationBuilder; 025 026/** 027 * Default impl of {@link CreateVersionResourceOperationBuilder} 028 * 029 * @author pwinckles 030 */ 031public class CreateVersionResourceOperationBuilderImpl implements CreateVersionResourceOperationBuilder { 032 033 private final FedoraId resourceId; 034 private String userPrincipal; 035 036 /** 037 * Create a new builder 038 * 039 * @param resourceId the resource id 040 */ 041 public CreateVersionResourceOperationBuilderImpl(final FedoraId resourceId) { 042 this.resourceId = resourceId; 043 } 044 045 @Override 046 public ResourceOperationBuilder userPrincipal(final String userPrincipal) { 047 this.userPrincipal = userPrincipal; 048 return this; 049 } 050 051 @Override 052 public ResourceOperation build() { 053 final var operation = new CreateVersionResourceOperationImpl(resourceId); 054 operation.setUserPrincipal(userPrincipal); 055 return operation; 056 } 057 058}