/******************************************************************************* * Copyright (c) 2009 EclipseSource 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: * EclipseSource - initial API and implementation ******************************************************************************/ package org.eclipse.rap.examples.pages; import java.io.*; import java.util.ArrayList; import java.util.List; public class Elements { private static String[] SERIES_NAMES = new String[] { "Unknown", "Alkali metal", "Alkaline earth metal", "Halogen", "Noble gas", "Lanthanide", "Actinide", "Transition metal", "Poor metal", "Metalloid", "Nonmetal", }; private static String[] SERIES_IDS = new String[] { "Unknown", "AM", "AEM", "H", "NG", "L", "A", "TM", "M", "MO", "NM", }; private static List elements = new ArrayList(); static { ClassLoader classLoader = Elements.class.getClassLoader(); String resourceFileName = "resources/elements.csv"; InputStream stream = classLoader.getResourceAsStream( resourceFileName ); BufferedInputStream bufferedStream = new BufferedInputStream( stream ); BufferedReader reader = new BufferedReader( new InputStreamReader( stream ) ); try { String line; while( ( line = reader.readLine() ) != null ) { String[] parts = line.split( "\t" ); if( parts.length > 0 ) { int number = Integer.parseInt( parts[ 0 ] ); int group = Integer.parseInt( parts[ 1 ] ); int period = Integer.parseInt( parts[ 2 ] ); String symbol = parts[ 3 ]; String name = parts[ 4 ]; int series = readCategory( parts[ 5 ] ); Element element = new Element( number, period, group, series, symbol, name ); elements.add( element ); } } } catch( IOException e ) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { bufferedStream.close(); } catch( IOException e ) { e.printStackTrace(); } } } public static int readCategory( final String string ) { int result = 0; for( int i = 1; i < SERIES_IDS.length && result == 0; i++ ) { if( SERIES_IDS[ i ].equals( string ) ) { result = i; } } return result; } public static List getElements() { return new ArrayList( elements ); } public static class Element { public final int number; public final int period; public final int group; public final int series; public final String symbol; public final String name; Element( final int number, final int period, final int group, final int series, final String symbol, final String name ) { this.number = number; this.period = period; this.group = group; this.series = series; this.symbol = symbol; this.name = name; } public String getSeriesName() { return SERIES_NAMES[ series ]; } } }