/**
*
* TURTLE PLAYER
*
* Licensed under MIT & GPL
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
* OR OTHER DEALINGS IN THE SOFTWARE.
*
* More Information @ www.turtle-player.co.uk
*
* @author Simon Honegger (Hoene84)
*/
package com.turtleplayer.model;
import com.turtleplayer.util.Shorty;
import java.io.File;
public class FSobject implements Instance
{
private final String name;
private final String path;
public FSobject(String path,
String name)
{
this.name = Shorty.avoidNull(name);
this.path = Shorty.avoidNull(path);
}
public FSobject(String path)
{
int index = path.lastIndexOf("/")+1;
this.name = Shorty.avoidNull(path.substring(index, path.length()));
this.path = Shorty.avoidNull(path.substring(0, index));
}
/**
* @return ex: dir or file
*/
public String getName()
{
return name;
}
/**
* @return ex: /dir1/dir or /dir/file
*/
public String getFullPath()
{
return getPath() + getName();
}
public File getAsFile()
{
return new File(getFullPath());
}
public File getPathAsFile()
{
return new File(path);
}
/**
* @return ex: /dir1/dir/
*/
public String getPath()
{
return path;
}
public <R> R accept(InstanceVisitor<R> visitor)
{
return visitor.visit(this);
}
@Override
public boolean equals(Object o)
{
if (this == o) return true;
if (!(o instanceof FSobject)) return false;
FSobject FSobject = (FSobject) o;
if (!name.equals(FSobject.name)) return false;
if (!path.equals(FSobject.path)) return false;
return true;
}
@Override
public int hashCode()
{
int result = name.hashCode();
result = 31 * result + path.hashCode();
return result;
}
}