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 java.time.Instant;
021
022import org.fcrepo.kernel.api.RdfStream;
023import org.fcrepo.kernel.api.Transaction;
024import org.fcrepo.kernel.api.identifiers.FedoraId;
025import org.fcrepo.kernel.api.operations.RdfSourceOperation;
026
027/**
028 * Abstract operation for interacting with an rdf source
029 *
030 * @author bbpennel
031 */
032public abstract class AbstractRdfSourceOperation extends AbstractResourceOperation implements RdfSourceOperation {
033
034    protected RdfStream triples;
035
036    protected String lastModifiedBy;
037
038    protected String createdBy;
039
040    protected Instant lastModifiedDate;
041
042    protected Instant createdDate;
043
044    protected AbstractRdfSourceOperation(final Transaction transaction, final FedoraId rescId,
045                                         final RdfStream triples) {
046        super(transaction, rescId);
047        this.triples = triples;
048    }
049
050    @Override
051    public RdfStream getTriples() {
052        return triples;
053    }
054
055    @Override
056    public String getLastModifiedBy() {
057        return lastModifiedBy;
058    }
059
060    @Override
061    public String getCreatedBy() {
062        return createdBy;
063    }
064
065    @Override
066    public Instant getLastModifiedDate() {
067        return lastModifiedDate;
068    }
069
070    @Override
071    public Instant getCreatedDate() {
072        return createdDate;
073    }
074
075    /**
076     * @param lastModifiedBy the lastModifiedBy to set
077     */
078    protected void setLastModifiedBy(final String lastModifiedBy) {
079        this.lastModifiedBy = lastModifiedBy;
080    }
081
082    /**
083     * @param createdBy the createdBy to set
084     */
085    protected void setCreatedBy(final String createdBy) {
086        this.createdBy = createdBy;
087    }
088
089    /**
090     * @param lastModifiedDate the lastModifiedDate to set
091     */
092    protected void setLastModifiedDate(final Instant lastModifiedDate) {
093        this.lastModifiedDate = lastModifiedDate;
094    }
095
096    /**
097     * @param createdDate the createdDate to set
098     */
099    protected void setCreatedDate(final Instant createdDate) {
100        this.createdDate = createdDate;
101    }
102
103}