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 */ 018package org.fcrepo.kernel.impl.operations; 019 020import static org.fcrepo.kernel.api.RdfLexicon.NON_RDF_SOURCE; 021 022import java.io.InputStream; 023import java.net.URI; 024 025import org.fcrepo.kernel.api.Transaction; 026import org.fcrepo.kernel.api.identifiers.FedoraId; 027import org.fcrepo.kernel.api.operations.CreateResourceOperation; 028 029/** 030 * Operation for creating a new non-rdf source 031 * 032 * @author bbpennel 033 */ 034public class CreateNonRdfSourceOperation extends AbstractNonRdfSourceOperation implements CreateResourceOperation { 035 036 private FedoraId parentId; 037 038 /** 039 * Constructor for external content. 040 * 041 * @param rescId the internal identifier. 042 * @param externalContentURI the URI of the external content. 043 * @param externalHandling the type of external content handling (REDIRECT, PROXY) 044 */ 045 protected CreateNonRdfSourceOperation(final Transaction transaction, final FedoraId rescId, 046 final URI externalContentURI, final String externalHandling) { 047 super(transaction, rescId, externalContentURI, externalHandling); 048 } 049 050 /** 051 * Constructor for internal binaries. 052 * 053 * @param transaction the transaction 054 * @param rescId the internal identifier. 055 * @param content the stream of the content. 056 */ 057 protected CreateNonRdfSourceOperation(final Transaction transaction, final FedoraId rescId, 058 final InputStream content) { 059 super(transaction, rescId, content); 060 } 061 062 @Override 063 public String getInteractionModel() { 064 return NON_RDF_SOURCE.toString(); 065 } 066 067 @Override 068 public boolean isArchivalGroup() { 069 return false; 070 } 071 072 @Override 073 public FedoraId getParentId() { 074 return parentId; 075 } 076 077 /** 078 * @param parentId the parentId to set 079 */ 080 public void setParentId(final FedoraId parentId) { 081 this.parentId = parentId; 082 } 083 084}