Java tutorial
/** * Copyright (C) 2011 Ness Computing, Inc. * * 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 com.nesscomputing.mojo.numbers.beans; import static java.lang.String.format; import java.util.Locale; import com.google.common.base.Preconditions; import com.nesscomputing.mojo.numbers.util.Log; public enum IWFCEnum { IGNORE, WARN, FAIL, CREATE; private static final Log LOG = Log.findLog(); public static IWFCEnum forString(final String value) { Preconditions.checkArgument(value != null, "the value can not be null"); return valueOf(IWFCEnum.class, value.toUpperCase(Locale.ENGLISH)); } /** * Reacts on a given thing existing or not existing. * * IGNORE: Do nothing. * WARN: Display a warning message if the thing does not exist, otherwise do nothing. * FAIL: Throws an exception if the thing does not exist. * CREATE: Suggest creation of the thing. * * Returns true if the thing should be create, false otherwise. */ public static boolean checkState(final IWFCEnum iwfc, final boolean exists, final String thing) { if (exists || iwfc == IGNORE) { return false; } else if (iwfc == WARN) { LOG.warn("'%s' does not exist!", thing); return false; } else if (iwfc == FAIL) { throw new IllegalStateException(format("'%s' does not exist!", thing)); } else if (iwfc == CREATE) { LOG.debug("'%s' does not exist, suggesting creation.", thing); return true; } else { return false; } } }