package org.jboss.windup.rules.apps.java.reporting.freemarker.filepath;
import org.jboss.windup.graph.model.resource.FileModel;
import org.jboss.windup.graph.model.resource.ReportResourceFileModel;
import org.jboss.windup.rules.apps.java.model.JavaClassFileModel;
import org.jboss.windup.rules.apps.java.model.JavaSourceFileModel;
/**
* Returns a pretty path for the provided file. If the File appears to represent a Java File, this will attempt to determine the associated Java Class
* and return the name formatted as a package and class (eg, com.package.Foo).
* <p>
* Called as follows:
* <p>
* getPrettyPathForFile(fileModel)
*
* @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a>
*/
public class GetPrettyPathForFile extends AbstractGetPrettyPathForFile
{
public String getPath(JavaClassFileModel jcfm)
{
return jcfm.getJavaClass().getQualifiedName();
}
public String getPath(ReportResourceFileModel model)
{
return "resources/" + model.getPrettyPath();
}
public String getPath(FileModel model)
{
return model.getPrettyPathWithinProject();
}
public String getPath(JavaSourceFileModel javaSourceModel)
{
String filename = javaSourceModel.getFileName();
String packageName = javaSourceModel.getPackageName();
if (filename.endsWith(".java"))
{
filename = filename.substring(0, filename.length() - 5);
}
return packageName == null || packageName.equals("") ? filename : packageName + "." + filename;
}
}