001    /**
002     * Copyright 2010-2012 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.common.util.execute;
017    
018    import org.slf4j.Logger;
019    import org.slf4j.LoggerFactory;
020    import org.springframework.util.Assert;
021    
022    /**
023     * Execute the <code>executable</code> supplied to this bean
024     */
025    public class ExecutableExecutable implements Executable {
026    
027            private static final Logger logger = LoggerFactory.getLogger(ExecutableExecutable.class);
028    
029            Executable executable;
030            boolean skip;
031    
032            @Override
033            public void execute() {
034                    if (skip) {
035                            logger.info("Skipping execution - {}", executable.getClass());
036                            return;
037                    }
038                    Assert.notNull(executable);
039                    executable.execute();
040            }
041    
042            public Executable getExecutable() {
043                    return executable;
044            }
045    
046            public void setExecutable(Executable executable) {
047                    this.executable = executable;
048            }
049    
050            public boolean isSkip() {
051                    return skip;
052            }
053    
054            public void setSkip(boolean skip) {
055                    this.skip = skip;
056            }
057    }