package org.eclipse.stem.utility.generators;

/*******************************************************************************
 * Copyright (c) 2009 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

/**
 * 
 * Relevant keys to the Russian dataset. Used during conversion process from the
 * Russian UN format -> Diva format.
 * 
 */
public abstract class RussiaDataFormattingHeader {

	/**
	 * Numeric ID
	 */
	public static final int ID = 0;

	/**
	 * Area
	 */
	public static final int AREA = 1;

	/**
	 * Country name
	 */
	public static final int COUNTRY = 2;

	/**
	 * Location Name 1
	 */
	public static final int NAME1 = 3;

	/**
	 * Location Name 2
	 */
	public static final int NAME2 = 4;

	/**
	 * Location Name 3
	 */
	public static final int NAME3 = 5;

	/**
	 * Population value 1
	 */
	public static final int POP1 = 6;

	/**
	 * Population value 2
	 */
	public static final int POP2 = 7;

}