blob: 92b18a15466680d64af63c46ef4c3aa55f575cb7 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.rya.api.client;
import static java.util.Objects.requireNonNull;
import java.util.Optional;
import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
import edu.umd.cs.findbugs.annotations.NonNull;
import net.jcip.annotations.Immutable;
/**
* Provides access to a set of Rya functions.
*/
@Immutable
@DefaultAnnotation(NonNull.class)
public class RyaClient {
// Administrative functions.
private final Install install;
private final CreatePCJ createPcj;
private final DeletePCJ deletePcj;
private final Optional<CreatePeriodicPCJ> createPeriodicPcj;
private final Optional<DeletePeriodicPCJ> deletePeriodicPcj;
private final Optional<ListIncrementalQueries> listIncrementalQueries;
private final BatchUpdatePCJ bactchUpdatePCJ;
private final GetInstanceDetails getInstanceDetails;
private final InstanceExists instanceExists;
private final ListInstances listInstances;
private final Optional<AddUser> addUser;
private final Optional<RemoveUser> removeUser;
private final Uninstall uninstall;
private final LoadStatements loadStatements;
private final LoadStatementsFile loadStatementsFile;
private final ExecuteSparqlQuery executeSparqlQuery;
/**
* Constructs an instance of {@link RyaClient}.
*/
public RyaClient(
final Install install,
final CreatePCJ createPcj, final DeletePCJ deletePcj,
final Optional<CreatePeriodicPCJ> createPeriodicPcj,
final Optional<DeletePeriodicPCJ> deletePeriodicPcj,
final Optional<ListIncrementalQueries> listIncrementalQueries,
final BatchUpdatePCJ batchUpdatePcj,
final GetInstanceDetails getInstanceDetails,
final InstanceExists instanceExists,
final ListInstances listInstances,
final Optional<AddUser> addUser,
final Optional<RemoveUser> removeUser,
final Uninstall uninstall,
final LoadStatements loadStatements,
final LoadStatementsFile loadStatementsFile,
final ExecuteSparqlQuery executeSparqlQuery) {
this.install = requireNonNull(install);
this.createPcj = requireNonNull(createPcj);
this.deletePcj = requireNonNull(deletePcj);
this.createPeriodicPcj = requireNonNull(createPeriodicPcj);
this.deletePeriodicPcj = requireNonNull(deletePeriodicPcj);
this.listIncrementalQueries = requireNonNull(listIncrementalQueries);
bactchUpdatePCJ = requireNonNull(batchUpdatePcj);
this.getInstanceDetails = requireNonNull(getInstanceDetails);
this.instanceExists = requireNonNull(instanceExists);
this.listInstances = requireNonNull(listInstances);
this.addUser = requireNonNull(addUser);
this.removeUser = requireNonNull(removeUser);
this.uninstall = requireNonNull(uninstall);
this.loadStatements = requireNonNull(loadStatements);
this.loadStatementsFile = requireNonNull(loadStatementsFile);
this.executeSparqlQuery = requireNonNull(executeSparqlQuery);
}
/**
* @return An instance of {@link Install} that is connected to a Rya storage.
*/
public Install getInstall() {
return install;
}
/**
* @return An instance of {@link CreatePCJ} that is connected to a Rya storage
* if the Rya instance supports PCJ indexing.
*/
public CreatePCJ getCreatePCJ() {
return createPcj;
}
/**
* @return An instance of {@link DeletePCJ} that is connected to a Rya storage
* if the Rya instance supports PCJ indexing.
*/
public DeletePCJ getDeletePCJ() {
return deletePcj;
}
/**
* @return An instance of {@link CreatePeridodicPCJ} that is connected to a Rya Periodic Storage
*/
public Optional<CreatePeriodicPCJ> getCreatePeriodicPCJ() {
return createPeriodicPcj;
}
/**
* @return An instance of {@link DeletePeriodicPCJ} that is connected to a Rya Periodic Storage
*/
public Optional<DeletePeriodicPCJ> getDeletePeriodicPCJ() {
return deletePeriodicPcj;
}
/**
* @return An instance of {@link ListIncrementalQueries} for displaying queries that are incrementallly
* maintained by the Rya instance
*/
public Optional<ListIncrementalQueries> getListIncrementalQueries() {
return listIncrementalQueries;
}
/**
* @return An instance of {@link BatchUpdatePCJ} that is connect to a Rya storage
* if the Rya instance supports PCJ indexing.
*/
public BatchUpdatePCJ getBatchUpdatePCJ() {
return bactchUpdatePCJ;
}
/**
* @return An instance of {@link GetInstanceDetails} that is connected to a Rya storage.
*/
public GetInstanceDetails getGetInstanceDetails() {
return getInstanceDetails;
}
/**
* @return An instance of {@link ListInstances} that is connected to a Rya storage.
*/
public ListInstances getListInstances() {
return listInstances;
}
/**
* @return An instance of {@link InstanceExists} that is connected to a Rya storage.
*/
public InstanceExists getInstanceExists() {
return instanceExists;
}
/**
* @return An instance of {@link AddUser} that is connected to a Rya storage.
*/
public Optional<AddUser> getAddUser() {
return addUser;
}
/**
* @return An instance of {@link DeleteUser} that is connected to a Rya storage.
*/
public Optional<RemoveUser> getRemoveUser() {
return removeUser;
}
/**
* @return An instance of {@link Uninstall} that is connected to a Rya storage.
*/
public Uninstall getUninstall() {
return uninstall;
}
/**
* @return An instance of {@link LoadStatements} that is connected to a Rya storage.
*/
public LoadStatements getLoadStatements() {
return loadStatements;
}
/**
* @return An instance of {@link LoadStatementsFile} that is connected to a Rya storage.
*/
public LoadStatementsFile getLoadStatementsFile() {
return loadStatementsFile;
}
/**
* @return An instance of {@link ExecuteSparqlQuery} that is connected to a Rya storage.
*/
public ExecuteSparqlQuery getExecuteSparqlQuery() {
return executeSparqlQuery;
}
}