/* * EuroCarbDB, a framework for carbohydrate bioinformatics * * Copyright (c) 2006-2009, Eurocarb project, or third-party contributors as * indicated by the @author tags or express copyright attribution * statements applied by the authors. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * A copy of this license accompanies this distribution in the file LICENSE.txt. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * Last commit: $Rev: 1210 $ by $Author: glycoslave $ on $Date:: 2009-06-12 #$ */ /** * */ package org.eurocarbdb.resourcesdb.glycoconjugate_derived; /** * @author rene, thomas * */ public enum LinkageType { H_LOSE('h'), DEOXY('d'), H_AT_OH('o'), NONMONOSACCHARID('n'), S_CONFIG('s'), R_CONFIG('r'); private char m_cSymbol; private LinkageType(char a_cSymbol) { this.m_cSymbol = a_cSymbol; } public char getType() { return this.m_cSymbol; } public String getName() { return this.name(); } public static LinkageType forName( char a_cName ) throws GlycoconjugateException { for(LinkageType lt : LinkageType.values() ) { if(a_cName == lt.m_cSymbol) { return lt; } } throw new GlycoconjugateException("Invalid value for a linkagetype: '" + a_cName + "'"); } public static LinkageType forName(String name) throws GlycoconjugateException { if(name != null && name.length() > 0) { for(LinkageType lt : LinkageType.values()) { if(name.length() == 1 && name.charAt(0) == lt.m_cSymbol) { return lt; } if(name.equalsIgnoreCase(lt.name())) { return lt; } } } throw new GlycoconjugateException("Invalid value for a linkagetype: \"" + name + "\""); } }