package org.eclipse.stem.utility.generators;

/*******************************************************************************
 * Copyright (c) 2006 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
 *******************************************************************************/

/**
 * STEM II Data Migration/Generation Utilities : A holder for constants related
 * to Lex1data objects
 * 
 */
public class Lex1Data {

	/**
	 * Symbolic constants describing an Lex1Data Object.
	 */

	/**
	 * Total number of symbolic constants for lex 1 data objects.
	 */
	public static final int CONSTANTS = 4;

	/**
	 * index of this element in lexicographically sorted sequence.
	 */
	public static final int INDEX = 0;

	/**
	 * descriptor
	 */
	public static final int DESC = 1;

	/**
	 * Alpha 2 code
	 */
	public static final int ALPHA2 = 2;

	/**
	 * Administration 1 name
	 */
	public static final int ADMIN1 = 3;

}
