All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dragome.forms.bindings.reflect.ComputedPath Maven / Gradle / Ivy

The newest version!
package com.dragome.forms.bindings.reflect;

import com.dragome.forms.bindings.client.bean.Path;

/**
 * Created by IntelliJ IDEA.
 * User: andrew
 * Date: Jun 25, 2010
 * Time: 9:48:32 AM
 * To change this template use File | Settings | File Templates.
 */
public class ComputedPath implements Path
{
	private String parentPath;
	private String propertyName;
	private String fullPath;

	public ComputedPath(String path)
	{
		if (path == null)
		{
			throw new NullPointerException("path is null");
		}

		// todo, should really make this a regex.
		if (path.isEmpty())
		{
			throw new IllegalArgumentException("path is empty");
		}

		if (path.startsWith("."))
		{
			throw new IllegalArgumentException("path cant' start with '.'");
		}
		if (path.endsWith("."))
		{
			throw new IllegalArgumentException("path cant' end with '.'");
		}

		this.fullPath= path;
		int lastDot= path.lastIndexOf('.');
		parentPath= lastDot < 0 ? null : path.substring(0, lastDot);
		propertyName= lastDot < 0 ? path : path.substring(lastDot + 1);
	}

	public String getParentPath()
	{
		return parentPath;
	}

	public String getPropertyName()
	{
		return propertyName;
	}

	public String getFullPath()
	{
		return fullPath;
	}

	public boolean isTopLevel()
	{
		return parentPath == null;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy