00001 /* 00002 * OpenMobileIS - a free Java(TM) Framework for mobile applications Java(TM) 00003 * Copyright (C) 2004-2006 Philippe Delrieu 00004 * All rights reserved. 00005 * Contact: pdelrieu@openmobileis.org 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00020 * USA 00021 * 00022 * Author : Philippe Delrieu 00023 * 00024 * Modifications : 00025 * 2004 Creation P.Delrieu 00026 * 2004 Modified by Romain Beaugrand 00027 * 00028 */ 00029 package org.openmobileis.database.fastobjectdb.db.util; 00030 00031 import java.lang.reflect.*; 00032 00039 public class FODBUtils { 00040 static final int VAR = 1; 00041 static final int METHOD = 2; 00042 00043 public static AccessibleObject getMember(Class objType, String memberName) { 00044 int memberType = VAR; // default value. We'll test it and confirm or change it. 00045 00046 if (memberName.indexOf("()") == memberName.length() - 2) { 00047 memberType = METHOD; 00048 memberName = memberName.substring(0, memberName.length() - 2); 00049 } 00050 00051 if (memberType == METHOD) { 00052 Method method = null; 00053 try { 00054 method = objType.getMethod(memberName, null); 00055 return method; 00056 } catch (NoSuchMethodException ex) { 00057 return null; 00058 } 00059 } else { // memberType == VAR 00060 Field field = null; 00061 try { 00062 field = objType.getField(memberName); 00063 return field; 00064 } catch (NoSuchFieldException ex) { 00065 return null; 00066 } 00067 } 00068 00069 // This point is never reached. 00070 } 00071 }