/*
|
* CDDL HEADER START
|
*
|
* The contents of this file are subject to the terms of the
|
* Common Development and Distribution License, Version 1.0 only
|
* (the "License"). You may not use this file except in compliance
|
* with the License.
|
*
|
* You can obtain a copy of the license at
|
* trunk/opends/resource/legal-notices/CDDLv1_0.txt
|
* or http://forgerock.org/license/CDDLv1.0.html.
|
* See the License for the specific language governing permissions
|
* and limitations under the License.
|
*
|
* When distributing Covered Code, include this CDDL HEADER in each
|
* file and include the License file at
|
* trunk/opends/resource/legal-notices/CDDLv1_0.txt. If applicable,
|
* add the following below this CDDL HEADER, with the fields enclosed
|
* by brackets "[]" replaced with your own identifying information:
|
* Portions Copyright [yyyy] [name of copyright owner]
|
*
|
* CDDL HEADER END
|
*
|
* Copyright 2011 ForgeRock AS
|
*/
|
|
package org.opendj.buildtools.maven;
|
|
|
|
import java.io.File;
|
|
|
|
/**
|
* A message file descriptor passed in from the POM configuration.
|
*/
|
public final class MessageFile
|
{
|
private final int category = -1;
|
|
private final String name = null;
|
|
private final boolean useOrdinals = false;
|
|
|
|
/**
|
* Creates a new message file.
|
*/
|
public MessageFile()
|
{
|
// Default constructor required for injection.
|
}
|
|
|
|
/**
|
* {@inheritDoc}
|
*/
|
@Override
|
public String toString()
|
{
|
return "MessageFile [category=" + category + ", name=" + name + "]";
|
}
|
|
|
|
String getBaseName()
|
{
|
return getPackageName() + "." + getShortName();
|
}
|
|
|
|
/**
|
* The category ID.
|
*
|
* @return The category ID.
|
*/
|
int getCategory()
|
{
|
return category;
|
}
|
|
|
|
String getClassName()
|
{
|
final String shortName = getShortName();
|
final StringBuilder builder = new StringBuilder(shortName.length());
|
builder.append(Character.toUpperCase(shortName.charAt(0)));
|
builder.append(shortName.substring(1));
|
return builder.toString();
|
}
|
|
|
|
/**
|
* The name of the message file relative to the resource directory.
|
*
|
* @return The name of the message file relative to the resource directory.
|
*/
|
String getName()
|
{
|
return name;
|
}
|
|
|
|
File getOutputFile(final File outputDirectory)
|
{
|
final int lastSlash = name.lastIndexOf('/');
|
final String parentPath = name.substring(0, lastSlash);
|
final String path = parentPath.replace('/', File.separatorChar)
|
+ File.separator + getClassName() + ".java";
|
return new File(outputDirectory, path);
|
}
|
|
|
|
String getPackageName()
|
{
|
final int lastSlash = name.lastIndexOf('/');
|
final String parentPath = name.substring(0, lastSlash);
|
return parentPath.replace('/', '.');
|
}
|
|
|
|
String getShortName()
|
{
|
final int lastSlash = name.lastIndexOf('/');
|
final String fileName = name.substring(lastSlash + 1);
|
final int lastDot = fileName.lastIndexOf('.');
|
return fileName.substring(0, lastDot);
|
}
|
|
|
|
File getSourceFile(final File sourceDirectory)
|
{
|
final String path = name.replace('/', File.separatorChar);
|
return new File(sourceDirectory, path);
|
}
|
|
|
|
/**
|
* Returns {@code true} if this message file contains numbered messages.
|
*
|
* @return {@code true} if this message file contains numbered messages.
|
*/
|
boolean useOrdinals()
|
{
|
return useOrdinals;
|
}
|
|
}
|