/* * Copyright (c) 1998-2011 Caucho Technology -- all rights reserved * * This file is part of Resin(R) Open Source * * Each copy or derived work must preserve the copyright notice and this * notice unmodified. * * Resin Open Source is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Resin Open Source 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, or any warranty * of NON-INFRINGEMENT. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with Resin Open Source; if not, write to the * * Free Software Foundation, Inc. * 59 Temple Place, Suite 330 * Boston, MA 02111-1307 USA * * @author Scott Ferguson */ package javax.jcr; import java.util.HashMap; public final class PropertyType { public static final int STRING = 1; public static final int BINARY = 2; public static final int LONG = 3; public static final int DOUBLE = 4; public static final int DATE = 5; public static final int BOOLEAN = 6; public static final int NAME = 7; public static final int PATH = 8; public static final int REFERENCE = 9; public static final int UNDEFINED = 0; public static final String TYPENAME_STRING = "String"; public static final String TYPENAME_BINARY = "Binary"; public static final String TYPENAME_LONG = "Long"; public static final String TYPENAME_DOUBLE = "Double"; public static final String TYPENAME_DATE = "Date"; public static final String TYPENAME_BOOLEAN = "Boolean"; public static final String TYPENAME_NAME = "Name"; public static final String TYPENAME_PATH = "Path"; public static final String TYPENAME_REFERENCE = "Reference"; public static final String TYPENAME_UNDEFINED = "undefined"; private static final HashMap _nameMap = new HashMap(); private PropertyType() { } public static String nameFromValue(int type) { switch (type) { case STRING: return TYPENAME_STRING; case BINARY: return TYPENAME_BINARY; case LONG: return TYPENAME_LONG; case DOUBLE: return TYPENAME_DOUBLE; case DATE: return TYPENAME_DATE; case BOOLEAN: return TYPENAME_BOOLEAN; case NAME: return TYPENAME_NAME; case PATH: return TYPENAME_PATH; case REFERENCE: return TYPENAME_REFERENCE; case UNDEFINED: return TYPENAME_UNDEFINED; default: throw new IllegalArgumentException(type + " is an unknown PropertyType"); } } /** * Returns the numeric constant value of the type with the specified name. * * @param name the name of the property type * @return the numeric constant value * @throws IllegalArgumentException if <code>name</code> * is not a valid property type name. */ public static int valueFromName(String name) { Integer value = (Integer) _nameMap.get(name); if (value != null) return value.intValue(); else throw new IllegalArgumentException(name + " is an unknown PropertyType"); } static { _nameMap.put(TYPENAME_STRING, new Integer(STRING)); _nameMap.put(TYPENAME_BINARY, new Integer(BINARY)); _nameMap.put(TYPENAME_LONG, new Integer(LONG)); _nameMap.put(TYPENAME_DOUBLE, new Integer(DOUBLE)); _nameMap.put(TYPENAME_DATE, new Integer(DATE)); _nameMap.put(TYPENAME_BOOLEAN, new Integer(BOOLEAN)); _nameMap.put(TYPENAME_NAME, new Integer(NAME)); _nameMap.put(TYPENAME_PATH, new Integer(PATH)); _nameMap.put(TYPENAME_REFERENCE, new Integer(REFERENCE)); _nameMap.put(TYPENAME_UNDEFINED, new Integer(UNDEFINED)); } }