/*
* Copyright 2006-2014 smartics, Kronseder & Reiner GmbH
*
* 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.redhat.rcm.maven.plugin.buildmetadata.common;
/**
* Defines a property to be selected by the user to include into the build meta
* data properties.
*
* @author <a href="mailto:robert.reiner@smartics.de">Robert Reiner</a>
* @version $Revision:591 $
*/
public final class Property
{
// ********************************* Fields *********************************
// --- constants ------------------------------------------------------------
// --- members --------------------------------------------------------------
/**
* The name of the system property to add to the build meta data properties.
*/
private String name;
/**
* The name of the property to be used in the build meta data properties. This
* allows to change the name of the property.
*/
private String mappedName;
/**
* The value provided for the property. No lookup is performed. Standard Maven
* properties are resolved.
*/
private String value;
/**
* The section the property is added to. If omitted or invalid, the property
* is added to the <code>build.misc</code> section.
* <p>
* Valid section identifiers are:
* </p>
* <ul>
* <li><code>build.scm</code></li>
* <li><code>build.dateAndVersion</code></li>
* <li><code>build.runtime</code></li>
* <li><code>build.java</code></li>
* <li><code>build.maven</code></li>
* </ul>
*/
private String section;
/**
* The label used for reports. If unset, the name of the property is used as a
* label.
*/
private String label;
// ****************************** Initializer *******************************
// ****************************** Constructors ******************************
// ****************************** Inner Classes *****************************
// ********************************* Methods ********************************
// --- init -----------------------------------------------------------------
// --- get&set --------------------------------------------------------------
/**
* Returns the name of the system property to add to the build meta data
* properties.
*
* @return the name of the system property to add to the build meta data
* properties.
*/
public String getName()
{
return name;
}
/**
* Returns the name of the property in the build meta data properties. This
* allows change the name of the property.
*
* @return the name of the property in the build meta data properties. If the
* mapped name is not given, the {@link #getName() name} is returned.
*/
public String getMappedName()
{
return mappedName != null ? mappedName : getName();
}
/**
* Returns the value provided for the property. No lookup is performed.
* Standard Maven properties are resolved.
*
* @return the value provided for the property.
*/
public String getValue()
{
return value;
}
/**
* Returns the section the property is added to. If omitted or invalid, the
* property is added to the <code>build.misc</code> section.
* <p>
* Valid section identifiers are:
* </p>
* <ul>
* <li><code>build.scm</code></li>
* <li><code>build.dateAndVersion</code></li>
* <li><code>build.runtime</code></li>
* <li><code>build.java</code></li>
* <li><code>build.maven</code></li>
* </ul>
*
* @return the section the property is added to.
*/
public String getSection()
{
return section;
}
/**
* Returns the label used for reports. If unset, the name of the property is
* used as a label.
*
* @return the label used for reports.
*/
public String getLabel()
{
return label;
}
// --- business -------------------------------------------------------------
// --- object basics --------------------------------------------------------
}