/* ------------------------------------------------------------------------------
 - Copyright (c) 2015 Intecs.
 - All rights reserved. This program and the accompanying materials
 - are made available under the terms of the Eclipse Public License v2.0
 - which accompanies this distribution, and is available at
 - http://www.eclipse.org/legal/epl-v20.html
 -
 - Contributors:
 -    L. Baracchi, laura.baracchi@intecs.it
 ------------------------------------------------------------------------------*/

package org.polarsys.chess.core.util.uml;

/**
 * The Class ValueNFP.
 */
public class ValueNFP {
	
	/** The unit. */
	public String unit = new String();
	
	/** The value. */
	public Double value = 0.0;
}
