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.config; 020 021/** 022 * Indicates what storage backend to use. 023 * 024 * @author pwinckles 025 */ 026public enum Storage { 027 028 OCFL_FILESYSTEM("ocfl-fs"), 029 OCFL_S3("ocfl-s3"); 030 031 private final String value; 032 033 Storage(final String value) { 034 this.value = value; 035 } 036 037 public String getValue() { 038 return value; 039 } 040 041 public static Storage fromString(final String value) { 042 for (final var storage : values()) { 043 if (storage.value.equalsIgnoreCase(value)) { 044 return storage; 045 } 046 } 047 throw new IllegalArgumentException("Unknown storage: " + value); 048 } 049 050 @Override 051 public String toString() { 052 return value; 053 } 054}