001 /* 002 * Copyright 2002 - 2007 JEuclid, http://jeuclid.sf.net 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017 /* $Id: OperatorAttribute.java,v 88b901bf20fb 2008/06/07 14:12:27 maxberger $ */ 018 019 package net.sourceforge.jeuclid.elements.support.operatordict; 020 021 import java.util.Locale; 022 023 import net.sourceforge.jeuclid.Constants; 024 025 /** 026 * @version $Revision: 88b901bf20fb $ 027 */ 028 /** 029 * @version $Revision: 88b901bf20fb $ 030 */ 031 public enum OperatorAttribute { 032 033 /** */ 034 FORM(OperatorDictionary.FORM_INFIX), 035 /** */ 036 FENCE(Constants.FALSE), 037 /** */ 038 SEPARATOR(Constants.FALSE), 039 /** */ 040 LSPACE(OperatorDictionary.NAME_THICKMATHSPACE), 041 /** */ 042 RSPACE(OperatorDictionary.NAME_THICKMATHSPACE), 043 /** */ 044 STRETCHY(Constants.FALSE), 045 /** */ 046 SYMMETRIC(Constants.TRUE), 047 /** */ 048 MAXSIZE(OperatorDictionary.NAME_INFINITY), 049 /** */ 050 MINSIZE("1"), 051 /** */ 052 LARGEOP(Constants.FALSE), 053 /** */ 054 MOVABLELIMITS(Constants.FALSE), 055 /** */ 056 ACCENT(Constants.FALSE); 057 058 private final String defaultValue; 059 060 private OperatorAttribute(final String defValue) { 061 this.defaultValue = defValue; 062 } 063 064 /** 065 * @return the default value for this operator attribute. 066 */ 067 public String getDefaultValue() { 068 return this.defaultValue; 069 } 070 071 /** 072 * Parses a String into an OperatorAttribute. 073 * 074 * @param attr 075 * the String to parse 076 * @return an operatorAttibute if possible 077 * @throws UnknownAttributeException 078 * if the string does not represent a valid attribute. 079 */ 080 public static OperatorAttribute parseOperatorAttribute(final String attr) 081 throws UnknownAttributeException { 082 try { 083 return OperatorAttribute.valueOf(attr.toUpperCase(Locale.US)); 084 } catch (final IllegalArgumentException iae) { 085 throw new UnknownAttributeException(attr, iae); 086 } 087 } 088 089 }