/*******************************************************************************
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* Contributors:
* Kamesh Sampath - initial implementation
******************************************************************************/
package com.liferay.ide.project.core;
import static com.liferay.ide.sdk.core.ISDKConstants.EXT_PLUGIN_PROJECT_SUFFIX;
import static com.liferay.ide.sdk.core.ISDKConstants.HOOK_PLUGIN_PROJECT_SUFFIX;
import static com.liferay.ide.sdk.core.ISDKConstants.LAYOUTTPL_PLUGIN_PROJECT_SUFFIX;
import static com.liferay.ide.sdk.core.ISDKConstants.PORTLET_PLUGIN_PROJECT_SUFFIX;
import static com.liferay.ide.sdk.core.ISDKConstants.THEME_PLUGIN_PROJECT_SUFFIX;
import static com.liferay.ide.sdk.core.ISDKConstants.WEB_PLUGIN_PROJECT_SUFFIX;
import java.io.File;
/**
* @author <a href="mailto:kamesh.sampath@hotmail.com">Kamesh Sampath</a>
* @author Terry Jia
*/
public class BinaryProjectRecord
{
private String binaryName;
private File binaryFile;
private String displayName;
private String filePath;
private String liferayVersion;
boolean conflicts;
boolean isHook;
boolean isTheme;
boolean isPortlet;
boolean isLayoutTpl;
boolean isExt;
boolean isWeb;
public BinaryProjectRecord( File binaryFile )
{
this.binaryFile = binaryFile;
setNames();
}
private void setNames()
{
if( binaryFile != null )
{
binaryName = binaryFile.getName();
filePath = binaryFile.getAbsolutePath();
setPluginProperties();
}
}
private void setPluginProperties()
{
if( binaryName != null )
{
int index = -1;
if( binaryName.contains( HOOK_PLUGIN_PROJECT_SUFFIX ) )
{
index = binaryName.indexOf( HOOK_PLUGIN_PROJECT_SUFFIX );
isHook = index != -1 ? true : false;
}
else if( binaryName.contains( THEME_PLUGIN_PROJECT_SUFFIX ) )
{
index = binaryName.indexOf( THEME_PLUGIN_PROJECT_SUFFIX );
isTheme = index != -1 ? true : false;
}
else if( binaryName.contains( PORTLET_PLUGIN_PROJECT_SUFFIX ) )
{
index = binaryName.indexOf( PORTLET_PLUGIN_PROJECT_SUFFIX );
isPortlet = index != -1 ? true : false;
}
else if( binaryName.contains( LAYOUTTPL_PLUGIN_PROJECT_SUFFIX ) )
{
index = binaryName.indexOf( LAYOUTTPL_PLUGIN_PROJECT_SUFFIX );
isLayoutTpl = index != -1 ? true : false;
}
else if( binaryName.contains( EXT_PLUGIN_PROJECT_SUFFIX ) )
{
index = binaryName.indexOf( EXT_PLUGIN_PROJECT_SUFFIX );
isExt = index != -1 ? true : false;
}
else if( binaryName.contains( WEB_PLUGIN_PROJECT_SUFFIX ) )
{
index = binaryName.indexOf( WEB_PLUGIN_PROJECT_SUFFIX );
isWeb = index != -1 ? true : false;
}
if( index != -1 )
{
displayName = binaryName.substring( 0, index );
}
index = binaryName.lastIndexOf( "-" ); //$NON-NLS-1$
if( index != -1 )
{
liferayVersion = binaryName.substring( index + 1, binaryName.lastIndexOf( "." ) ); //$NON-NLS-1$
}
}
}
/**
* @return the filePath
*/
public String getFilePath()
{
return filePath;
}
/**
* @param filePath
* the filePath to set
*/
public void setFilePath( String label )
{
this.filePath = label;
}
/**
* @return the binaryName
*/
public String getBinaryName()
{
return binaryName;
}
/**
* @param binaryName
* the binaryName to set
*/
public void setBinaryName( String binaryName )
{
this.binaryName = binaryName;
}
/**
* @return the binaryFile
*/
public File getBinaryFile()
{
return binaryFile;
}
/**
* @param binaryFile
* the binaryFile to set
*/
public void setBinaryFile( File binaryFile )
{
this.binaryFile = binaryFile;
}
/**
* @return the displayName
*/
public String getDisplayName()
{
return displayName;
}
/**
* @param displayName
* the displayName to set
*/
public void setDisplayName( String liferayPluginName )
{
this.displayName = liferayPluginName;
}
/**
* @return the conflicts
*/
public boolean isConflicts()
{
return conflicts;
}
/**
* @param conflicts
* the conflicts to set
*/
public void setConflicts( boolean hasConflicts )
{
this.conflicts = hasConflicts;
}
/**
* @return the liferayVersion
*/
public String getLiferayVersion()
{
return liferayVersion;
}
/**
* @return the isHook
*/
public boolean isHook()
{
return isHook;
}
/**
* @return the isTheme
*/
public boolean isTheme()
{
return isTheme;
}
/**
* @return the isPortlet
*/
public boolean isPortlet()
{
return isPortlet;
}
/**
* @return the isLayoutTpl
*/
public boolean isLayoutTpl()
{
return isLayoutTpl;
}
/**
* @return the isWeb
*/
public boolean isWeb()
{
return isWeb;
}
public String getLiferayPluginName()
{
if( isHook )
{
return getDisplayName() + HOOK_PLUGIN_PROJECT_SUFFIX;
}
else if( isLayoutTpl )
{
return getDisplayName() + LAYOUTTPL_PLUGIN_PROJECT_SUFFIX;
}
else if( isPortlet )
{
return getDisplayName() + PORTLET_PLUGIN_PROJECT_SUFFIX;
}
else if( isTheme )
{
return getDisplayName() + THEME_PLUGIN_PROJECT_SUFFIX;
}
else if( isExt )
{
return getDisplayName() + EXT_PLUGIN_PROJECT_SUFFIX;
}
else if( isWeb )
{
return getDisplayName() + WEB_PLUGIN_PROJECT_SUFFIX;
}
return null;
}
public boolean isExt()
{
return isExt;
}
}