001/**
002 * Copyright 2005-2014 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 */
016package org.kuali.rice.krad.uif.lifecycle.finalize;
017
018import org.kuali.rice.krad.uif.component.Component;
019import org.kuali.rice.krad.uif.lifecycle.FinalizeComponentPhase;
020import org.kuali.rice.krad.uif.lifecycle.ViewLifecyclePhase;
021import org.kuali.rice.krad.uif.lifecycle.ViewLifecycleTaskBase;
022import org.kuali.rice.krad.uif.util.LifecycleElement;
023
024/**
025 * Perform default finalize behavior defined for the component.
026 * 
027 * @author Kuali Rice Team (rice.collab@kuali.org)
028 */
029public class ComponentDefaultFinalizeTask extends ViewLifecycleTaskBase<Component> {
030
031    /**
032     * Constructor.
033     * 
034     * @param phase The finalize phase for the component.
035     */
036    public ComponentDefaultFinalizeTask(ViewLifecyclePhase phase) {
037        super(phase, Component.class);
038    }
039
040    /**
041     * {@inheritDoc}
042     */
043    @Override
044    public FinalizeComponentPhase getElementState() {
045        return (FinalizeComponentPhase) super.getElementState();
046    }
047
048    /**
049     * {@inheritDoc}
050     */
051    @SuppressWarnings("deprecation")
052    @Override
053    protected void performLifecycleTask() {
054        FinalizeComponentPhase phase = getElementState();
055        phase.getElement().performFinalize(phase.getModel(), phase.getParent());
056    }
057
058}