/******************************************************************************
 * Copyright (c) 2005 BEA Systems, Inc.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Konstantin Komissarchik - initial API and implementation
 ******************************************************************************/

package org.eclipse.jst.j2ee.project.facet;

/**
 * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
 */

public final class UtilityFacetInstallConfig 
{
    private String earProjectName;
    
    public UtilityFacetInstallConfig()
    {
        this.earProjectName = null;
    }
    
    public String getEarProjectName()
    {
        return this.earProjectName;
    }
    
    public void setEarProjectName( final String earProjectName )
    {
        this.earProjectName = earProjectName;
    }
    
}
