org.springframework.data.gemfire.ScopeType Maven / Gradle / Ivy
/*
* Copyright 2010-2013 the original author or authors.
*
* Licensed 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.springframework.data.gemfire;
import org.springframework.util.StringUtils;
import com.gemstone.gemfire.cache.Scope;
/**
* The ScopeType enum is an enumeration of GemFire Scopes.
*
* @author John Blum
* @see com.gemstone.gemfire.cache.Scope
* @since 1.6.0
*/
@SuppressWarnings("unused")
public enum ScopeType {
DISTRIBUTED_ACK(Scope.DISTRIBUTED_ACK),
DISTRIBUTED_NO_ACK(Scope.DISTRIBUTED_NO_ACK),
GLOBAL(Scope.GLOBAL),
LOCAL(Scope.LOCAL);
private final Scope gemfireScope;
/**
* Constructs an instance of the ScopeType initialized with a matching GemFire Scope.
*
* @param gemfireScope the GemFire Scope paired with this enumerated value.
* @see com.gemstone.gemfire.cache.Scope
*/
ScopeType(final Scope gemfireScope) {
this.gemfireScope = gemfireScope;
}
/**
* Null-safe operation to extract the GemFire Scope from the given ScopeType enum value, or null if the provided
* scopeType is null.
*
* @param scopeType the ScopeType enumerated value from which to extract the GemFire Scope.
* @return the paired GemFire Scope from the given ScopeType or null if scopeType is null.
* @see com.gemstone.gemfire.cache.Scope
* @see #getScope()
*/
public static Scope getScope(final ScopeType scopeType) {
return (scopeType != null ? scopeType.getScope() : null);
}
/**
* Returns a ScopeType enumerated value for the given a GemFire Scope.
*
* @param scope the GemFire Scope used to lookup and match the appropriate ScopeType.
* @return a ScopeType for the given GemFire Scope or null if no match was found.
* @see com.gemstone.gemfire.cache.Scope
* @see #getScope()
* @see #values()
*/
public static ScopeType valueOf(final Scope scope) {
for (ScopeType scopeType : values()) {
if (scopeType.getScope().equals(scope)) {
return scopeType;
}
}
return null;
}
/**
* Returns a ScopeType enumerated value given the case-insensitive name of the GemFire Scope.
*
* @param name a String name describing the ScopeType enum value.
* @return a ScopeType for the given case-insensitive, named GemFire Scope.
* @see java.lang.String#equalsIgnoreCase(String)
* @see #values()
* @see #name()
* @see #transform(String)
*/
public static ScopeType valueOfIgnoreCase(String name) {
name = transform(name);
for (ScopeType scopeType : values()) {
if (scopeType.name().equalsIgnoreCase(name)) {
return scopeType;
}
}
return null;
}
/**
* Null-safe operation that transforms a String name having hyphens and whitespace into a String with underscores
* and no whitespace.
*
* @param name the String to transform.
* @return a String value with underscores for hyphens and all leading/trailing whitespace trimmed, or null
* if the given String name is null.
*/
private static String transform(final String name) {
return (StringUtils.hasText(name) ? name.trim().replaceAll("-", "_") : name);
}
/**
* Gets the matching GemFire Scope for this enumerated value.
*
* @return a GemFire Scope for this enumerated value.
* @see com.gemstone.gemfire.cache.Scope
*/
public Scope getScope() {
return gemfireScope;
}
}